温馨提示×

centos sftp传输慢为何

小樊
37
2026-09-18 03:23:22
栏目: 智能运维

在 CentOS 上 SFTP 传输速度慢,通常不是 SFTP 本身的问题,而是底层网络、SSH、磁盘或配置导致的。下面按最常见原因 → 排查方法 → 解决建议来说明。


一、最常见原因

1️⃣ SSH 加密开销大(CPU 瓶颈)

SFTP 基于 SSH,所有数据都加密

  • 小文件极多 → CPU 消耗高
  • 老服务器 / 低配 VPS → 明显变慢

排查:

top

传输时看 %CPU 是否接近 100%

解决:

  • 使用更快的加密算法:
sftp -o Ciphers=aes128-gcm@openssh.com ...
  • 服务端 /etc/ssh/sshd_config
Ciphers aes128-gcm@openssh.com,aes256-gcm@openssh.com

2️⃣ 网络带宽 / 延迟问题

  • 跨地域、跨国链路
  • 丢包、 jitter 高

排查:

ping 目标IP
mtr 目标IP
iperf3 -s / -c

解决:

  • 使用 iperf3 测纯网络速度
  • 若 iperf 也慢 → 网络问题,不是 SFTP 问题

3️⃣ 磁盘 IO 慢(常被忽略)

SFTP 写文件受磁盘速度限制

排查:

iostat -x 1

%util 是否 100%

解决:

  • 换 SSD
  • 避免写入 NFS / 低端云盘

4️⃣ SFTP 小文件特别慢(正常现象)

每个文件都有:

  • SSH 握手
  • 权限检查
  • 文件创建

解决:

  • 打包后再传:
tar czf file.tar.gz dir/
  • 或用 rsync
rsync -avz dir/ user@host:/path/

5️⃣ SSH 配置影响性能

以下配置会拖慢速度:

  • UseDNS yes
  • GSSAPIAuthentication yes

优化 /etc/ssh/sshd_config

UseDNS no
GSSAPIAuthentication no

重启:

systemctl restart sshd

6️⃣ 防火墙 / 安全软件干扰

  • SELinux
  • 云厂商安全组
  • 入侵检测(fail2ban、auditd)

排查:

getenforce
systemctl status firewalld

二、快速对比测试(定位问题)

✅ 1. 测网络(排除 SFTP)

iperf3 -c 目标IP

✅ 2. 测 SCP(比 SFTP 轻)

scp bigfile user@host:/tmp/

✅ 3. 测本地磁盘

dd if=/dev/zero of=/tmp/test bs=1M count=1000

三、如果你愿意,我可以更精确帮你

你可以告诉我:

  1. CentOS 版本(7 / 8 / Stream)
  2. 上传慢还是下载慢
  3. 大文件慢还是小文件慢
  4. 服务器是物理机 / 云服务器
  5. 内网还是公网

我可以直接给你针对性的优化方案

0