温馨提示×

CentOS怎样提升SFTP速度

小樊
36
2026-08-18 22:04:00
栏目: 智能运维

在 CentOS 上提升 SFTP 传输速度,可以从 网络、系统参数、SSH/SFTP 配置、磁盘、客户端 多个层面来优化。下面按实用程度给你一套常见且有效的优化方案。


一、优先确认瓶颈在哪里

先判断是 网络、CPU、磁盘 哪个拖慢了速度:

top
iostat -x 1
iftop
  • CPU 高:SSH 加密开销大
  • 磁盘 IO 高:写入慢
  • 带宽跑不满:网络或 SSH 配置问题

二、优化 SSH / SFTP 配置(最关键)

1️⃣ 修改 SSH 配置

编辑:

vim /etc/ssh/sshd_config

推荐参数(重点)

# 使用更快的加密算法
Ciphers aes128-gcm@openssh.com,aes256-gcm@openssh.com,aes128-ctr,aes256-ctr

# 启用压缩(仅低速网络有效,高速网络建议关闭)
Compression no

# 提高吞吐量
ClientAliveInterval 30
ClientAliveCountMax 3

aes-gcm 比 aes-cbc 快很多,尤其是大文件

重启 SSH

systemctl restart sshd

三、调整系统网络参数(高带宽必做)

1️⃣ 修改内核网络参数

vim /etc/sysctl.conf

加入或修改:

net.core.rmem_max = 134217728
net.core.wmem_max = 134217728
net.ipv4.tcp_rmem = 4096 87380 67108864
net.ipv4.tcp_wmem = 4096 65536 67108864
net.ipv4.tcp_congestion_control = cubic
net.ipv4.tcp_sack = 1
net.ipv4.tcp_window_scaling = 1

生效:

sysctl -p

✅ 对 千兆 / 万兆网络 提升明显


四、使用更快的 SFTP 客户端方式

1️⃣ 限制加密算法(客户端指定)

sftp -oCiphers=aes128-gcm@openssh.com user@server

五、避免 SFTP 本身瓶颈

SFTP 不适合的场景

场景 建议
大量小文件 rsync + SSH
超大文件 直传 + 校验
高并发 多连接并行

✅ 推荐替代方案

rsync -avz --progress /data/ user@ip:/data/

或开启多线程:

rsync -avz --progress --parallel=4 user@ip:/data/ /data/

六、磁盘与文件系统优化

1️⃣ 确认磁盘不是瓶颈

iostat -x 1

2️⃣ 如果是机械盘

  • 避免同时大量随机写入
  • 使用 noatime
mount -o remount,noatime /

七、关闭不必要的 SSH 功能(轻微提升)

UseDNS no
GSSAPIAuthentication no

八、CentOS 版本相关建议

系统 建议
CentOS 7 升级 OpenSSH ≥ 7.8
CentOS 8/Stream 默认已较优
CentOS 6 ❌ 建议直接升级

九、快速检查清单 ✅

✅ 使用 aes-gcm
✅ 调整 TCP 缓冲区
✅ 不直接用 SFTP 传大量小文件
✅ 检查磁盘 IO
✅ 关闭 DNS / GSSAPI


十、如果你愿意,我可以帮你:

  • 针对 千兆 / 万兆网络 给具体参数
  • 分析你当前的 sshd_config
  • 对比 SFTP vs rsync vs scp 实测方案

你可以直接贴:

cat /etc/ssh/sshd_config

或说明:

  • 带宽大小
  • 文件类型(大文件 / 小文件)
  • CentOS 版本

0