温馨提示×

怎样提升 centos sftp 速度

小樊
50
2026-09-02 22:52:22
栏目: 智能运维

在 CentOS 上提升 SFTP 传输速度,可以从 网络、系统参数、SSH/SFTP 配置、磁盘与硬件 几个方面入手。下面按实用程度给你一套可操作方案。


一、优先确认瓶颈在哪

先判断是 网络、CPU(加密) 还是 磁盘 IO:

# 看 CPU 是否跑满
top

# 看网络带宽
iftop
# 或
nload

# 看磁盘 IO
iostat -x 1
  • CPU 高 → 加密算法问题
  • 网络满 → 带宽或延迟问题
  • 磁盘 100% → 磁盘瓶颈

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

编辑:

vi /etc/ssh/sshd_config

1️⃣ 使用更快的加密算法

Ciphers aes128-ctr,aes192-ctr,aes256-ctr
MACs hmac-sha2-256,hmac-sha2-512

避免使用 aes256-cbc(慢)

2️⃣ 开启压缩(仅低速网络有用)

Compression no
  • 内网/千兆:设 no
  • 公网/小带宽:可试 yes

3️⃣ 提高 SFTP 吞吐量

Subsystem sftp internal-sftp -l INFO -f AUTH

4️⃣ 增大 SSH 缓冲区(重要)

# 在客户端和服务器都加
TCPKeepAlive yes

改完后:

systemctl restart sshd

三、系统内核参数优化(高吞吐必做)

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
net.ipv4.tcp_timestamps = 1

生效:

sysctl -p

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

✅ 推荐方式

  • rsync over ssh(比裸 sftp 快)
rsync -avz -e ssh /data/ user@host:/backup/
  • lftp(多线程)
lftp sftp://user@host
mirror -P 10 /remote /local

❌ 不推荐

  • 单线程 sftp 命令大文件
  • 图形化工具(FileZilla 默认配置慢)

五、磁盘与文件系统优化

  • 使用 XFS / ext4
  • 避免 NFS 做 SFTP 后端
  • RAID 卡开启写缓存(有 UPS 前提下)

六、极端场景方案(不推荐常规使用)

1️⃣ 内网大文件 → 用 scp + 高 MTU

ip link set eth0 mtu 9000

2️⃣ 非安全环境 → 用 nc / ftp

(不加密,极快)


七、快速 checklist(抄作业版)

✅ aes-ctr 加密
✅ 内核 TCP 缓冲调大
✅ rsync / lftp 替代 sftp
✅ 千兆网络 MTU 1500+
✅ CPU 不是瓶颈


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

  • CentOS 版本(7 / 8 / Stream)
  • 内网还是公网
  • 单文件还是大量小文件

我可以给你精准配置模板。

0 踩