CentOS SFTP傳輸速度優化方法
修改/etc/ssh/sshd_config
文件,將Subsystem配置為內部SFTP服務(internal-sftp
),避免調用外部sftp-server
進程的開銷。例如:
Subsystem sftp internal-sftp
Match Group sftpusers # 限制特定用戶組
ChrootDirectory %h # 啟用chroot限制用戶訪問目錄
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
此配置能減少進程間通信消耗,提升傳輸效率。
在sshd_config
中為SFTP子系統添加壓縮參數(-l COMPRESS
),減少數據傳輸量。例如:
Subsystem sftp /usr/lib/openssh/sftp-server -l COMPRESS
壓縮適用于文本、日志等可壓縮文件,能顯著降低網絡負載(但對已壓縮文件如ZIP、MP4效果有限)。
MaxSessions
(單用戶最大并發會話數,默認10)和MaxStartups
(未認證連接數上限,默認10)參數,避免過多連接占用服務器資源。例如:MaxSessions 50
MaxStartups 50:30:100 # 允許最多50個并發連接,超過30個時隨機拒絕30%的新連接
ClientAliveInterval
(服務器向客戶端發送心跳的時間間隔,默認0,即不發送)和ClientAliveCountMax
(心跳超時次數,默認3)參數,及時清理閑置連接。例如:ClientAliveInterval 60 # 每60秒發送一次心跳
ClientAliveCountMax 3 # 3次心跳無響應則斷開連接
這些設置能釋放閑置資源,提升有效連接的傳輸效率。
aes128-ctr
、chacha20-poly1305@openssh.com
),在sshd_config
中添加:Ciphers aes128-ctr,chacha20-poly1305@openssh.com
避免使用慢算法(如3des
),平衡安全性與速度。GSSAPIBufferSize
(GSSAPI認證緩沖區,默認16384)和RekeyLimit
(密鑰重協商數據量上限,默認1G),減少密鑰重協商次數。例如:GSSAPIBufferSize 32768
RekeyLimit 2G
這些參數能降低加密操作的頻率,提升傳輸效率。確保服務器與客戶端之間的網絡帶寬充足(如使用千兆以太網、光纖),避免帶寬成為傳輸瓶頸??赏ㄟ^iperf3
工具測試實際帶寬。
ping
、mtr
工具檢測延遲和丟包率,及時聯系ISP解決網絡問題。推薦使用ext4
(穩定)或XFS
(高性能,適合大文件傳輸)文件系統。例如,格式化磁盤為XFS:
mkfs.xfs /dev/sdb1
mount /dev/sdb1 /data -o defaults,noatime,nodiratime
在/etc/fstab
中為文件系統添加noatime
(不更新文件訪問時間)和nodiratime
(不更新目錄訪問時間)選項,減少不必要的磁盤I/O操作。例如:
/dev/sdb1 /data xfs defaults,noatime,nodiratime 0 0
修改后執行mount -o remount /data
使設置生效。
tar -czvf files.tar.gz *.txt
),再傳輸壓縮包,減少傳輸次數和連接開銷;lftp
、FileZilla
),開啟多個并發連接同時傳輸文件。例如,lftp
使用-e "set ftp:parallel-transfer-count 4;"
命令開啟4個并發連接。禁用密碼認證(PasswordAuthentication no
),使用SSH密鑰對(PubkeyAuthentication yes
)登錄,避免每次傳輸時的密碼驗證過程,提升認證速度和安全性。
定期運行sudo yum update -y
更新CentOS系統和OpenSSH等軟件包,獲取性能改進和安全修復。
編輯/etc/sysctl.conf
文件,優化TCP性能參數:
net.ipv4.ip_local_port_range = 1024 65535 # 擴大本地端口范圍
net.core.somaxconn = 1024 # 增加SYN隊列長度
net.core.netdev_max_backlog = 1024 # 增加設備隊列長度
net.ipv4.tcp_max_syn_backlog = 1024 # 增加SYN半連接隊列長度
net.ipv4.tcp_syncookies = 1 # 開啟SYN Cookie防止SYN Flood
應用更改:sudo sysctl -p
。
使用htop
(監控CPU/內存)、vmstat
(監控系統資源)、iostat
(監控磁盤I/O)等工具定期檢查服務器性能,定位瓶頸;開啟SSH詳細日志(LogLevel VERBOSE
),分析登錄和傳輸過程中的問題。