在 CentOS 上提升 SFTP 传输速度,可以从 网络、系统参数、SSH/SFTP 配置、磁盘与硬件 几个方面入手。下面按实用程度给你一套可操作方案。
先判断是 网络、CPU(加密) 还是 磁盘 IO:
# 看 CPU 是否跑满
top
# 看网络带宽
iftop
# 或
nload
# 看磁盘 IO
iostat -x 1
编辑:
vi /etc/ssh/sshd_config
Ciphers aes128-ctr,aes192-ctr,aes256-ctr
MACs hmac-sha2-256,hmac-sha2-512
避免使用
aes256-cbc(慢)
Compression no
noyesSubsystem sftp internal-sftp -l INFO -f AUTH
# 在客户端和服务器都加
TCPKeepAlive yes
改完后:
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
rsync -avz -e ssh /data/ user@host:/backup/
lftp sftp://user@host
mirror -P 10 /remote /local
sftp 命令大文件ip link set eth0 mtu 9000
(不加密,极快)
✅ aes-ctr 加密
✅ 内核 TCP 缓冲调大
✅ rsync / lftp 替代 sftp
✅ 千兆网络 MTU 1500+
✅ CPU 不是瓶颈
如果你愿意,可以告诉我:
我可以给你精准配置模板。