1. 使用最新版本的OpenSSH
舊版本OpenSSH可能存在性能bug或未優化的傳輸邏輯,升級到最新版本可獲得性能改進和安全增強。在Debian中,通過以下命令更新OpenSSH:
sudo apt update && sudo apt upgrade openssh-server openssh-client
升級后重啟SSH服務使更改生效:sudo systemctl restart sshd
。
2. 優化SSH服務器配置(/etc/ssh/sshd_config)
調整以下關鍵參數可提升SFTP傳輸效率:
Subsystem sftp /usr/lib/openssh/sftp-server
為Subsystem sftp internal-sftp
,減少外部進程調用開銷;Match Group sftp_users
(需提前創建該用戶組)添加ChrootDirectory %h
(將用戶限制在家目錄)、ForceCommand internal-sftp
(強制使用SFTP)、AllowTcpForwarding no
(禁用TCP轉發)、X11Forwarding no
(禁用X11轉發),既提升安全性又減少不必要的資源消耗;MaxSessions 10
(每個用戶的最大并發會話數,根據服務器性能調整)、MaxStartups 10:30:60
(限制未認證連接數,避免過多連接占用資源)。sudo systemctl restart sshd
。3. 啟用SSH密鑰認證
密碼認證需反復加密解密,而密鑰認證更高效且安全。步驟如下:
ssh-keygen -t rsa -b 4096
(默認保存在~/.ssh/id_rsa
);ssh-copy-id username@server_ip
;PasswordAuthentication no
。4. 啟用SFTP壓縮功能
傳輸前壓縮文件可減少數據量,提升傳輸速度。有兩種方式:
zip
/tar
打包文件后傳輸(如zip -r archive.zip /path/to/files
,再通過SFTP上傳);/etc/ssh/sshd_config
中添加Compression yes
(需重啟SSH服務)。5. 使用多線程/并發連接
單線程傳輸易受網絡波動影響,多線程可充分利用帶寬??蛻舳斯ぞ咄扑]:
mirror --parallel=5
命令(--parallel
指定并發數)實現多線程同步。6. 優化網絡配置
/etc/sysctl.conf
,添加以下參數提升TCP性能:net.ipv4.tcp_tw_reuse = 1 # 允許重用TIME-WAIT狀態的連接
fs.file-max = 65536 # 增加系統最大文件描述符數
net.core.rmem_max = 16777216 # 增加接收緩沖區大小
net.core.wmem_max = 16777216 # 增加發送緩沖區大小
應用配置:sudo sysctl -p
。7. 優化磁盤I/O性能
磁盤I/O瓶頸會直接影響傳輸速度,可通過以下方式優化:
iostat -dx 1
命令查看磁盤使用率(%util
)、讀寫速度(tps
、kB_read/s
、kB_wrtn/s
),若%util
接近100%,說明磁盤繁忙;fsck
檢查磁盤錯誤。8. 優化文件傳輸策略
tar -czvf files.tar.gz /path/to/small_files
),減少傳輸次數和連接開銷;