在 Linux 下对 SFTP 进行限速,常见做法有几种,按使用场景给你总结一下:
sftp 命令自带限速(客户端限速)✅ 最简单如果你是用 OpenSSH 的 sftp 客户端,可以用 -l 参数:
sftp -l 1000 user@host
-l 单位是 Kbit/s上传/下载都会受限。
✅ 适合:临时限速、手动操作
scp / rsync 限速(SFTP 同类工具)scp -l 1000 file user@host:/path
rsync -avz --bwlimit=125 file user@host:/path
--bwlimit 单位是 KB/s✅ 适合:脚本、自动化同步
pam_limit + tc(复杂,不推荐)一般不用。
OpenSSH + ForceCommand + trickle(推荐)✅yum install trickle # CentOS
apt install trickle # Ubuntu
Match User sftpuser
ForceCommand trickle -u 125 -d 125 sftp-server
-u:上传限速(KB/s)-d:下载限速(KB/s)重启 SSH:
systemctl restart sshd
✅ 适合:限制某个 SFTP 用户
rssh 或 MySecureShell(专业 SFTP 服务器)apt install mysecureshell
配置示例:
LimitDown 1000
LimitUp 1000
✅ 适合:多用户 SFTP 服务器
适合整台服务器或 IP 限速,不推荐普通 SFTP 场景。
| 场景 | 推荐方式 |
|---|---|
| 临时手动 | sftp -l |
| 脚本同步 | rsync --bwlimit |
| 单用户 SFTP | trickle + ForceCommand |
| 企业 SFTP | MySecureShell |
如果你能告诉我:
我可以给你一份可直接用的配置。