温馨提示×

centos sftp怎样提速

小樊
44
2026-09-27 03:42:55
栏目: 智能运维

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


一、SSH / SFTP 服务端优化(最重要)

1. 修改 sshd 配置

编辑:

vi /etc/ssh/sshd_config

建议修改/新增:

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

# 启用压缩(带宽小、CPU富余时)
# Compression yes

# 提高吞吐量
TCPKeepAlive yes

重启服务:

systemctl restart sshd

⚠️ 压缩在高速网络下反而可能变慢,建议先测试


二、Linux 内核网络参数调优

编辑:

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 = 0

生效:

sysctl -p

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

1. 使用 sftp -C(压缩)

sftp -C user@host

2. 使用 lftp(比原生 sftp 快)

yum install lftp -y
lftp sftp://user@host
> pget -n 10 file

pget -n 10 表示 10 个并发线程


四、并发 / 分片传输(强烈推荐)

SFTP 本身不支持多线程,但你可以:

方案 1:用 rsync + ssh

rsync -avz -e ssh /data/ user@host:/backup/

方案 2:tar + ssh(大目录更快)

tar czf - /data | ssh user@host "cd /backup && tar xzf -"

方案 3:分块 + 多 sftp(脚本控制)

  • 拆文件
  • 多个 sftp 并行
  • 服务端合并

五、磁盘 & 文件系统层面

  • 使用 XFS / ext4
  • 避免 NFS 做 SFTP 目标
  • 服务端磁盘 IO 是瓶颈时:
    iostat -x 1
    

六、网络层检查

ping host
mtr host
iperf3 -s   # 服务端
iperf3 -c host  # 客户端
  • 延迟高 → SFTP 慢是正常
  • 带宽没跑满 → 调 TCP 参数

七、不推荐但可用的“极端方案”

  • 改用 SCP(某些场景更快)
  • 改用 FTP / FTPS
  • 内网用 NFS / rsync daemon

八、快速检测你现在慢在哪

# CPU
top

# 网络
iftop

# 磁盘
iostat -x 1

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

  • CentOS 版本(7 / 8 / Stream)
  • 内网还是公网
  • 单文件还是大量小文件
  • 当前速度大概多少 MB/s

我可以给你针对性配置模板。

0 踩