温馨提示×

centos sftp速度慢怎么解决

小樊
41
2026-09-15 02:22:56
栏目: 智能运维

在 CentOS 上 SFTP 传输速度慢,通常不是 SFTP 本身的问题,而是网络、SSH 配置、磁盘或系统参数导致的。下面按常见原因 → 解决方法给你一个排查与优化清单。


一、先确认瓶颈在哪里

1️⃣ 网络是否正常

ping 目标IP
iperf3 -c 目标IP
  • 如果 iperf3 速度本身就慢 → 网络问题(带宽、丢包、跨运营商)
  • 如果 iperf3 快,但 SFTP 慢 → SSH/SFTP 配置问题

二、SSH / SFTP 优化配置(最有效)

✅ 1. 修改 SSH 配置(服务端)

编辑:

vi /etc/ssh/sshd_config

建议修改或添加:

# 使用更快的加密算法
Ciphers aes128-ctr,aes192-ctr,aes256-ctr

# 禁用慢的算法(如 3des)
# 不要使用 arcfour(已不安全)

# 允许更多并发
MaxSessions 50
MaxStartups 50

# 心跳保活
TCPKeepAlive yes
ClientAliveInterval 60
ClientAliveCountMax 3

重启 SSH:

systemctl restart sshd

✅ 2. 使用更快的 SFTP 客户端参数

如果你用的是 sftp 命令:

sftp -o Cipher=aes128-ctr user@host

如果用 scp

scp -c aes128-ctr file user@host:/path

三、磁盘 IO 问题(非常常见)

1️⃣ 查看磁盘是否瓶颈

iostat -x 1

iotop
  • %util 接近 100% → 磁盘慢
  • 机械盘 / 低性能云盘 → 限速明显

✅ 解决:

  • 换 SSD
  • 避免同时大量写盘
  • 使用 rsync 替代 SFTP(增量传输)

四、禁用 DNS 反向解析(很常见)

SSH 登录慢也会影响 SFTP:

vi /etc/ssh/sshd_config
UseDNS no

重启:

systemctl restart sshd

五、系统参数优化(高延迟网络)

1️⃣ 调整 TCP 窗口

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

生效:

sysctl -p

六、SFTP 替代方案(更快)

✅ rsync(强烈推荐)

rsync -avz --progress file user@host:/path
  • 支持断点
  • 增量传输
  • 速度通常明显优于 SFTP

✅ lftp(并行)

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

七、云服务器特别注意

  • 云厂商默认 公网带宽限速
  • SFTP 是 单线程
  • 大文件建议:
    • 压缩后传
    • 分片并行
    • 用对象存储(OSS/S3)

八、快速自查清单 ✅

✅ 网络快不快(iperf3)
✅ SSH 算法是否快
✅ DNS 是否关闭
✅ 磁盘是否瓶颈
✅ 是否用 rsync


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

  • CentOS 版本
  • 物理机 / 云服务器
  • 内网还是公网
  • 单文件还是大量小文件

我可以直接给你最优配置方案

0