在 CentOS 上 SFTP 传输速度慢,通常不是 SFTP 本身的问题,而是网络、SSH 配置、磁盘或系统参数导致的。下面按常见原因 → 解决方法给你一个排查与优化清单。
ping 目标IP
iperf3 -c 目标IP
iperf3 速度本身就慢 → 网络问题(带宽、丢包、跨运营商)iperf3 快,但 SFTP 慢 → SSH/SFTP 配置问题编辑:
vi /etc/ssh/sshd_config
建议修改或添加:
# 使用更快的加密算法
Ciphers aes128-ctr,aes192-ctr,aes256-ctr
# 禁用慢的算法(如 3des)
# 不要使用 arcfour(已不安全)
# 允许更多并发
MaxSessions 50
MaxStartups 50
# 心跳保活
TCPKeepAlive yes
ClientAliveInterval 60
ClientAliveCountMax 3
重启 SSH:
systemctl restart sshd
如果你用的是 sftp 命令:
sftp -o Cipher=aes128-ctr user@host
如果用 scp:
scp -c aes128-ctr file user@host:/path
iostat -x 1
或
iotop
%util 接近 100% → 磁盘慢✅ 解决:
rsync 替代 SFTP(增量传输)SSH 登录慢也会影响 SFTP:
vi /etc/ssh/sshd_config
UseDNS no
重启:
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
生效:
sysctl -p
rsync -avz --progress file user@host:/path
lftp sftp://user@host
mirror -P 10 /local /remote
✅ 网络快不快(iperf3)
✅ SSH 算法是否快
✅ DNS 是否关闭
✅ 磁盘是否瓶颈
✅ 是否用 rsync
如果你愿意,可以告诉我:
我可以直接给你最优配置方案。