温馨提示×

linux sftp速度慢怎么办

小樊
48
2026-09-10 22:50:36
栏目: 智能运维

Linux 下 SFTP 传输速度慢,通常不是“SFTP 本身慢”,而是网络、加密、磁盘、配置或客户端方式的问题。可以按下面顺序排查和优化。


一、先确认“慢在哪里”

1. 对比测试

# SFTP 测试
sftp user@host
> put bigfile

# 对比 scp
scp bigfile user@host:/tmp/

# 对比裸网络
iperf3 -c host
  • 如果 iperf 也慢 → 网络问题
  • 如果 scp 快,sftp 慢 → SFTP 配置/客户端问题
  • 如果 都慢 → 磁盘或链路问题

二、网络层面优化

1. 开启 TCP 优化(服务端 & 客户端)

# 临时
sysctl -w net.ipv4.tcp_window_scaling=1
sysctl -w net.core.rmem_max=16777216
sysctl -w net.core.wmem_max=16777216
sysctl -w net.ipv4.tcp_rmem="4096 87380 16777216"
sysctl -w net.ipv4.tcp_wmem="4096 65536 16777216"

2. 高延迟网络(跨国/云)

  • 使用 SFTP + 大窗口
  • 或改用 Rsync over SSH
rsync -avz -e ssh bigfile user@host:/path/

三、SSH / SFTP 配置优化(重点)

1. 修改 sshd_config(服务端)

vim /etc/ssh/sshd_config
# 提高吞吐量
Ciphers aes128-gcm@openssh.com,aes256-gcm@openssh.com
MACs umac-128-etm@openssh.com
Compression no

# 提高并发
MaxSessions 50

重启:

systemctl restart sshd

2. 客户端连接参数

sftp -o Ciphers=aes128-gcm@openssh.com \
     -o MACs=umac-128-etm@openssh.com \
     user@host

四、磁盘 IO 问题(常被忽略)

SFTP 慢 ≠ 网络慢

检查磁盘

iostat -x 1
  • %util 接近 100% → 磁盘瓶颈
  • 使用 SSD / RAID 可显著提升

五、SFTP 客户端使用方式问题

1. 小文件极多 → 极慢(正常)

SFTP 每个文件都有握手开销

✅ 解决:

tar czf - dir | ssh user@host "cd /path && tar xzf -"

rsync -avz dir/ user@host:/path/

2. 使用图形工具(FileZilla 等)

  • 默认单连接
  • 可开启 并发传输

六、替代方案(更快)

场景 推荐
大文件 scp / rsync
海量小文件 tar over ssh
极速传输 lftp + sftp 多线程
跨云 rclone

lftp 多线程示例

lftp sftp://user@host
mirror -P 10 /local /remote

七、快速自查清单

✅ 是否跨地域
✅ 是否小文件太多
✅ 是否磁盘 IO 满
✅ 是否用了弱加密算法
✅ 是否只用单连接


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

  • 内网还是公网
  • 大文件还是小文件
  • 使用的 客户端(命令/FileZilla/代码)

我可以直接给你一套最优配置。

0