在 CentOS 上提升 SFTP 传输速度,可以从 网络、SSH/SFTP 配置、磁盘、并发方式 几个层面来优化。下面按实用程度给你总结:
编辑:
vi /etc/ssh/sshd_config
建议调整以下参数:
# 启用压缩(局域网可关,公网可开)
Compression no
# 提高加密性能(现代 CPU 推荐)
Ciphers chacha20-poly1305@openssh.com,aes128-gcm@openssh.com,aes256-gcm@openssh.com
# 提高 TCP 性能
TCPKeepAlive yes
# 增大窗口
ClientAliveInterval 60
重启 SSH:
systemctl restart sshd
编辑:
vi /etc/sysctl.conf
添加:
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.ipv4.tcp_rmem = 4096 87380 16777216
net.ipv4.tcp_wmem = 4096 65536 16777216
net.ipv4.tcp_window_scaling = 1
net.ipv4.tcp_timestamps = 1
生效:
sysctl -p
✅ 对 高延迟 / 公网 SFTP 提速明显
sftp -C(压缩)sftp -C user@host
适合:
rsync -avzP file user@centos:/path/
lftp sftp://user@host
mirror -P 10 /local /remote
用:
iostat -x 1
确认是否是磁盘瓶颈。
优化:
❌ 不要在 SFTP 里大量 ls 大目录
❌ 不要单线程传大量小文件
✅ 打包后再传:
tar czf data.tgz dir/
# 测试网络带宽
iperf3 -c server_ip
# 测试 SFTP 实际速度
time scp bigfile user@host:/tmp/
✅ 公网:SSH 优化 + rsync
✅ 大文件:lftp / scp
✅ 小文件多:tar 后再传
✅ 高延迟:必须调 TCP 窗口
如果你愿意,可以告诉我:
我可以给你针对性配置。