舊版本OpenSSH可能存在性能bug或未優化的傳輸邏輯,升級到最新版本可獲得更好的傳輸效率。通過以下命令更新系統及OpenSSH:
sudo apt update && sudo apt upgrade openssh-server openssh-client -y
新版本通常會改進協議協商、加密算法效率等,間接提升傳輸速度。
密碼認證需要多次握手驗證,而密鑰認證通過公私鑰對驗證,減少了認證時間。配置步驟:
ssh-keygen -t rsa -b 4096
(默認保存到~/.ssh/id_rsa
)。ssh-copy-id sftp_user@server_ip
。/etc/ssh/sshd_config
,禁用密碼認證:PasswordAuthentication no
。sudo systemctl restart sshd
。修改/etc/ssh/sshd_config
中的以下參數,提升并發處理能力:
MaxSessions 100
:設置單個連接允許的最大會話數(默認10,可根據服務器負載調整)。MaxStartups 10:30:60
:設置未認證連接的最大數量(10個立即允許,30個延遲處理,60個拒絕),避免過多未認證連接占用資源。Compression yes
:啟用傳輸壓縮(對文本文件效果明顯,二進制文件如視頻可能增加CPU負擔,需根據文件類型選擇)。sudo systemctl restart sshd
。/etc/sysctl.conf
,添加以下參數調整TCP窗口大小,提升大數據量傳輸效率:net.ipv4.tcp_window_scaling = 1
net.ipv4.tcp_rmem = 4096 87380 6291456
net.ipv4.tcp_wmem = 4096 16384 4194304
應用配置:sudo sysctl -p
。netstat -tulnp
檢查并停止無關服務(如FTP、Telnet),減少網絡端口占用。/etc/fstab
,為SFTP目錄所在分區添加noatime,nodiratime
選項(減少文件訪問時間記錄),例如:/dev/sda1 /sftp ext4 defaults,noatime,nodiratime 0 2
重啟后生效。iostat -dx 1
命令查看磁盤使用率,若%util
接近100%,需升級硬件或優化文件存儲結構(如分散文件到多個分區)。tar -czvf archive.tar.gz /path/to/small_files
),減少傳輸次數和連接開銷。/etc/security/limits.conf
,為SFTP用戶添加以下內容:sftp_user soft nofile 65535
sftp_user hard nofile 65535
避免大量并發連接時出現“Too many open files”錯誤。/etc/sysctl.conf
,添加以下參數提升網絡吞吐量:fs.file-max = 65536
net.core.somaxconn = 1024
net.ipv4.tcp_max_syn_backlog = 2048
應用配置:sudo sysctl -p
。/etc/ssh/sshd_config
中移除ChrootDirectory
配置。/etc/ssh/sshd_config
中設置:X11Forwarding no
AllowTcpForwarding no
減少不必要的進程占用系統資源。