温馨提示×

linux sftp为何传输慢

小樊
36
2026-09-23 07:17:20
栏目: 智能运维

Linux 下 SFTP 传输慢通常是多方面原因叠加造成的,下面按最常见 → 较少见给你系统梳理一下,并给出对应排查/优化方法。


一、最常见原因

1️⃣ 网络本身带宽或延迟问题

SFTP 基于 SSH,受网络影响极大:

  • 跨公网 / 跨国
  • 高延迟(RTT 大)
  • 丢包严重

现象

  • scp / sftp 都慢
  • ping 延迟高或丢包

排查

ping 目标IP
mtr 目标IP

解决

  • 换更近的节点
  • 使用专线 / 加速
  • 小文件不要走 SFTP

2️⃣ 加密算法太重(CPU 瓶颈)

SFTP = SSH + 加密
如果服务端/客户端 CPU 弱,会非常慢。

常见瓶颈

  • 老服务器
  • 嵌入式设备
  • 虚拟机 CPU 限频

排查

top
# 看 sshd 是否 CPU 占用高

优化

sftp -oCiphers=aes128-gcm@openssh.com \
     -oMACs=umac-128@openssh.com user@host

或服务器端:

Ciphers aes128-gcm@openssh.com,aes256-gcm@openssh.com

3️⃣ 大量小文件(最容易被忽略)

SFTP 每传输一个文件都要握手

  • 10000 个小文件 ❌
  • 1 个大文件 ✅

现象

  • 总体积不大但极慢

解决

tar czf - dir | ssh user@host "tar xzf -"

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

二、SSH / SFTP 配置问题

4️⃣ 使用了低效的 SFTP 子系统

默认:

Subsystem sftp internal-sftp

✅ 正确
❌ 如果是:

Subsystem sftp /usr/lib/sftp-server

可能慢。


5️⃣ 启用了不必要的安全选项

例如:

  • TCP Wrappers
  • PAM 重逻辑
  • SELinux 审计

检查

getenforce

三、磁盘 IO 瓶颈

6️⃣ 磁盘写入慢

  • 机械盘
  • RAID 重建
  • 云盘 IOPS 限制

排查

iostat -x 1

四、客户端使用方式问题

7️⃣ 使用图形工具(FileZilla 等)

  • 多线程差
  • 协议实现慢

✅ 推荐:

  • sftp 命令
  • rsync
  • lftp
lftp sftp://user@host -e "mirror -R local remote"

五、快速自检清单 ✅

# 1. 网络
ping host
mtr host

# 2. CPU
top

# 3. 小文件?
ls | wc -l

# 4. 测试大文件
dd if=/dev/zero of=test bs=1M count=500
sftp user@host

六、推荐替代方案(更快)

场景 推荐
大文件 scp / rsync
小文件多 tar over ssh
高延迟 rsync
极速 bbcp / aspera

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

  • 内网还是公网
  • 单大文件还是小文件多
  • 服务器端是 物理机 / 云 / 容器

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

0