可以,Ubuntu 上的 SFTP 是可以限速的,但要看你用的是哪种 SFTP 服务方式。常见场景和做法如下:
Ubuntu 默认用 OpenSSH Server 提供 SFTP,原生的 sftp-server 本身不支持限速。
rssh / scponly(不推荐,已过时)基本不再维护,不推荐。
proftpd + mod_sftp(支持限速)如果你愿意换 SFTP 服务:
sudo apt install proftpd
在配置中:
<IfModule mod_sftp.c>
SFTPEngine on
SFTPLog /var/log/sftp.log
Port 22
SFTPBandwidth 100000 # 限速 100KB/s(单位是 bytes/s)
</IfModule>
✅ 支持:
ssh + sftp-server + tc / trickle(系统级限速)trickle(用户态限速,最简单)sudo apt install trickle
服务器端限制 SFTP 用户:
修改 /etc/ssh/sshd_config:
Subsystem sftp /usr/bin/trickle -s -u 100 -d 100 /usr/lib/openssh/sftp-server
-u 100:上传 100 KB/s-d 100:下载 100 KB/s重启 SSH:
sudo systemctl restart ssh
⚠️ 注意:
scp 无效(scponly 不走 sftp-server)tc(网络层限速,最强大)适合整个 IP / 端口限速。
# 限制 22 端口为 1Mbit
sudo tc qdisc add dev eth0 root tbf rate 1mbit burst 32kbit latency 400ms
适合:
sftp -l 100 user@host
-l 100 = 100 Kbit/s
设置 → 传输 → 速度限制
| 需求 | 推荐方案 |
|---|---|
| 简单、快速 | trickle |
| 按用户限速 | proftpd + mod_sftp |
| 整个服务器 | tc |
| 只限制客户端 | sftp -l |
如果你愿意,可以告诉我:
我可以直接给你一份可用配置。