温馨提示×

ubuntu sftp传输慢怎么办

小樊
45
2026-09-05 09:29:04
栏目: 智能运维

在 Ubuntu 上遇到 SFTP 传输速度慢,可以从 网络、SSH 配置、磁盘、客户端方式 几个方面排查和优化。下面按常见原因给你一套实用方案。


一、先确认瓶颈在哪

1. 测试网络带宽

iperf3 -c 服务器IP

或简单测试:

scp 大文件 用户@IP:/tmp/

如果 scp 也慢,说明不是 SFTP 客户端问题。

2. 看是不是磁盘慢

在服务器上:

dd if=/dev/zero of=/tmp/test bs=1M count=500 oflag=direct

如果写速很低,是磁盘问题。


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

✅ 1. 修改 SSH 服务端配置

编辑:

sudo vim /etc/ssh/sshd_config

添加或修改:

# 提高吞吐量
TCPKeepAlive yes
ClientAliveInterval 30

# 禁用不必要的特性
Compression no

# 使用更快的加密算法(Ubuntu 20.04+ 支持)
Ciphers chacha20-poly1305@openssh.com,aes128-gcm@openssh.com,aes256-gcm@openssh.com

重启 SSH:

sudo systemctl restart ssh

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

sftp -o Ciphers=chacha20-poly1305@openssh.com user@ip

或使用 scp

scp -c chacha20-poly1305@openssh.com file user@ip:/path

三、避免 SFTP 的“慢点”

❌ 不要用 FileZilla 默认设置

  • 关闭「传输时同步浏览器」
  • 增加并发连接数(2–4)

✅ 使用命令行或大文件模式

SFTP 对小文件特别慢:

tar czf - dir | ssh user@ip "cd /path && tar xzf -"

四、网络层面优化

1. 调整 TCP 参数(高延迟网络)

sudo sysctl -w net.ipv4.tcp_window_scaling=1
sudo sysctl -w net.core.rmem_max=16777216
sudo sysctl -w net.core.wmem_max=16777216

写入持久化:

sudo vim /etc/sysctl.conf

2. 如果是云服务器

  • 跨地域 → 慢是正常
  • 使用 内网 IP
  • 或使用 对象存储 / rsync

五、替代方案(更快)

✅ rsync(强烈推荐)

rsync -avzP file user@ip:/path

支持断点续传、增量同步。

✅ 大文件建议

  • 先压缩
  • 再传
  • 或分片

六、常见坑总结

问题 解决
小文件特别慢 用 tar 打包
加密慢 换 chacha20
云服务器跨区 用内网/IPv6
磁盘 IO 差 换盘或限速业务

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

  • Ubuntu 版本
  • 本地 / 服务器网络环境
  • 是内网还是公网
  • 单文件还是大量小文件

我可以给你更精准的优化方案

0