Ubuntu 下 SFTP 传输慢,通常不是“Ubuntu 本身慢”,而是网络、加密、磁盘、配置或客户端某一环拖了后腿。下面按常见原因 → 排查方法 → 解决办法说明。
SFTP 基于 SSH,加密/解密消耗 CPU
✅ 排查:
sftp -v user@host
看是否使用:
chacha20-poly1305aes128-gcmaes256-cbc(慢)✅ 解决:
服务端 /etc/ssh/sshd_config:
Ciphers chacha20-poly1305@openssh.com,aes128-gcm@openssh.com,aes128-ctr
MACs hmac-sha2-256-etm@openssh.com
重启:
sudo systemctl restart ssh
SFTP 是单 TCP 流,对丢包极敏感。
✅ 排查:
ping host
mtr host
iperf3 -c host
✅ 解决:
特别是:
✅ 排查:
iostat -x 1
或
dd if=/dev/zero of=test bs=1M count=500
SFTP:
✅ 解决:
tar czf file.tar.gz dir/
rsyncrsync -avz dir/ user@host:/path/
✅ 推荐:
sftpscprsync✅ 测试:
sftp -4 user@host
如果明显变快:
sudo sysctl -w net.ipv6.conf.all.disable_ipv6=1
SSH 登录时做反向 DNS
✅ 服务端:
UseDNS no
| 现象 | 最可能原因 |
|---|---|
| 大文件慢 | 加密 / 网络 |
| 小文件极慢 | SFTP 协议 |
| 一开始慢 | DNS / IPv6 |
| 服务器 CPU 100% | cipher 太重 |
| 网络满但速度低 | TCP 单流 |
Ubuntu SFTP 慢,90% 是 SSH 加密 + 网络,不是系统问题。
如果你愿意,可以告诉我:
我可以直接给你最优参数配置。