简短回答:SFTP 本身(OpenSSH 的 sftp-server)默认是不限速的,但可以通过多种方式进行限速。
下面按常见场景说明。
不限位。
OpenSSH 的 SFTP(基于 SSH)在默认配置下:
max_rate)scp / sftp 客户端限速(仅限客户端)如果你控制的是客户端,可以用:
scp -l 1000 file user@host:/path
-l 单位是 Kbit/s但可以用 pv:
pv -L 1m file | sftp user@host
iptables / tc 限速(最通用)在 SFTP 服务器上限制 SSH 端口(默认 22):
tc qdisc add dev eth0 root tbf rate 1mbit burst 32kbit latency 400ms
(示例:限制整体出口 1 Mbps)
如果是 SFTP-only 用户,可以用:
ForceCommand + pvMatch User sftpuser
ForceCommand pv -L 500k | internal-sftp
systemd 限制[Service]
IOBandwidthMax=/path 1M
如果你不是必须用 SFTP:
vsftpd:支持 max_rateproftpd:支持 TransferRate| 方式 | 是否支持 | 说明 |
|---|---|---|
| SFTP 默认 | ❌ | 不限速 |
| 客户端 scp | ✅ | 简单 |
| 服务器端 tc | ✅ | 强 |
| 单用户限制 | ✅ | 推荐 |
| vsftpd | ✅ | 更简单 |
如果你愿意,可以告诉我:
我可以直接给你一份可用配置。