温馨提示×

linux sftp怎么提速

小樊
49
2026-10-22 13:53:47
栏目: 智能运维

在 Linux 下使用 SFTP 传输慢,通常和网络、加密算法、并发、磁盘 IO、配置参数有关。下面按「最有效 → 可选优化」给你一套实用提速方案。


一、优先检查(最常见瓶颈)

1️⃣ 网络本身是否慢

ping 目标IP
iperf3 -c 目标IP
  • 如果是跨公网 / 国际链路,SFTP 再怎么优化也有限
  • 局域网慢,通常是网卡 / 交换机问题

二、SFTP 客户端提速(推荐)

2️⃣ 使用 sftp 的批量模式(避免一次次握手)

❌ 慢:

sftp user@host
put a.txt
put b.txt

✅ 快:

sftp user@host <<EOF
put *.log
EOF

或一次传目录:

sftp -r user@host:/remote/path /local/path

3️⃣ 使用更快的 SSH 加密算法

SFTP 基于 SSH,加密很吃 CPU。

查看支持的算法

ssh -Q cipher

推荐(速度快):

sftp -c aes128-gcm@openssh.com user@host

或

sftp -c chacha20-poly1305@openssh.com user@host

老机器用 aes128-ctr 也很稳


4️⃣ 关闭 DNS 反解(非常常见)

服务端 /etc/ssh/sshd_config:

UseDNS no

然后:

systemctl restart sshd

三、服务端优化(如果你是管理员)

5️⃣ 调整 SSH 配置

/etc/ssh/sshd_config:

UseDNS no
GSSAPIAuthentication no
MaxSessions 50

6️⃣ 提高 SFTP 吞吐量(TCP 层面)

sysctl -w net.ipv4.tcp_window_scaling=1
sysctl -w net.core.rmem_max=16777216
sysctl -w net.core.wmem_max=16777216

永久生效:

/etc/sysctl.conf

四、大文件 / 大量小文件(重点)

7️⃣ 大量小文件 → 先打包再传(非常重要)

❌ 慢:

sftp put dir/*

✅ 快:

tar czf dir.tgz dir/
sftp put dir.tgz

8️⃣ 大文件 → 用 rsync 替代 SFTP(强烈推荐)

rsync -avzP file user@host:/path/

优点:

  • 断点续传
  • 自动增量
  • 速度通常 > sftp

五、并发提速(高级)

9️⃣ 多连接并行(lftp)

lftp sftp://user@host
set net:max-rate 0
set net:connection-limit 10
mirror -P 10 /remote /local

六、不推荐但能“快”的方式(谨慎)

  • 关闭加密(❌ 不安全)
  • 用 FTP(明文)

✅ 总结(最快组合)

最推荐:

rsync -avzP --rsh="ssh -c aes128-gcm@openssh.com" dir/ user@host:/path/

如果你愿意,可以告诉我:

  • 是 内网还是公网
  • 大文件还是小文件多
  • 用的是 OpenSSH 还是其他 SFTP 服务

我可以给你一套针对性配置。

0 踩