温馨提示×

centos sftp传输慢什么原因

小樊
41
2026-09-09 00:24:46
栏目: 智能运维

在 CentOS 上 SFTP 传输速度慢,原因通常不在 SFTP 本身,而在网络、磁盘、加密、配置或系统参数。下面按常见原因 → 排查方法 → 解决建议给你梳理。


一、网络相关问题(最常见)

1. 带宽受限 / 网络抖动

  • 服务器或客户端带宽本身小
  • 跨机房、跨国、云服务器公网带宽限制

排查

ping 目标IP
mtr 目标IP
iperf3 -c 服务器IP

解决

  • 使用内网传输
  • 提升带宽
  • 避开高峰期

2. MTU / 丢包问题

MTU 不匹配会导致大量重传

排查

ping -s 1472 -M do 目标IP

解决

  • 调整 MTU(如 1400)
ip link set eth0 mtu 1400

二、SSH / SFTP 加密开销

3. 加密算法太重(CPU 瓶颈)

SFTP 基于 SSH,加密会消耗 CPU

常见慢算法

  • aes256-gcm
  • chacha20-poly1305(某些老 CPU)

排查

top
# 看 sshd 是否占 CPU 很高

解决 修改 /etc/ssh/sshd_config

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

重启:

systemctl restart sshd

4. 启用压缩反而更慢

Subsystem sftp internal-sftp

如果客户端使用 -C,在高速网络下会更慢

解决

  • 禁用压缩
Compression no

三、磁盘 IO 瓶颈

5. 磁盘读写慢

尤其是:

  • 机械盘
  • 云服务器低 IO 云盘
  • RAID 降级

排查

iostat -x 1
iotop

解决

  • 换 SSD
  • 避免同时大量写入
  • 先打包再传(tar + sftp)

四、SFTP 配置与参数问题

6. SFTP 单线程

SFTP 默认单连接串行传输

解决

  • 使用 lftp / rsync 并行
rsync -avzP file user@host:/path

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

7. TCP 参数未优化

优化内核参数

cat >> /etc/sysctl.conf <<EOF
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
EOF

sysctl -p

五、DNS / 反转解析慢

8. SSH 登录阶段卡

不是传输慢,而是连接慢

解决

UseDNS no
GSSAPIAuthentication no

六、CentOS 特定问题

9. SELinux 影响

在极端情况下影响 IO

排查

getenforce

10. 防火墙 / 安全软件

  • firewalld
  • 云安全组
  • IDS

七、快速定位 checklist(建议你按顺序看)

  1. top → sshd 是否吃 CPU
  2. iostat → 磁盘是否 100%
  3. iperf3 → 网络是否达标
  4. 是否跨公网 / 跨国
  5. 是否小文件特别多
  6. 是否用 rsync 替代 SFTP

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

场景 推荐
大文件 rsync
大量小文件 tar + sftp
并行 lftp
极速 内网 scp / nc

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

  • CentOS 版本
  • 内网还是公网
  • 单文件还是大量小文件
  • top / iostat 截图或输出

我可以直接帮你判断是 网络 / CPU / 磁盘 哪一类问题。

0