温馨提示×

linux sftp限速如何做

小樊
56
2026-10-07 22:15:19
栏目: 智能运维

在 Linux 下对 SFTP 进行限速,常见做法有几种,按使用场景给你总结一下:


一、使用 sftp 命令自带限速(客户端限速)✅ 最简单

如果你是用 OpenSSH 的 sftp 客户端,可以用 -l 参数:

sftp -l 1000 user@host
  • -l 单位是 Kbit/s
  • 上面表示限速 1000 Kbit/s ≈ 125 KB/s

上传/下载都会受限。

✅ 适合:临时限速、手动操作


二、使用 scp / rsync 限速(SFTP 同类工具)

scp

scp -l 1000 file user@host:/path

rsync(推荐)

rsync -avz --bwlimit=125 file user@host:/path
  • --bwlimit 单位是 KB/s

✅ 适合:脚本、自动化同步


三、服务器端限制 SFTP 速度(重点)⭐

方法 1:使用 pam_limit + tc(复杂,不推荐)

一般不用。


方法 2:用 OpenSSH + ForceCommand + trickle(推荐)✅

1️⃣ 安装 trickle

yum install trickle      # CentOS
apt install trickle      # Ubuntu

2️⃣ 修改 sshd_config

Match User sftpuser
    ForceCommand trickle -u 125 -d 125 sftp-server
  • -u:上传限速(KB/s)
  • -d:下载限速(KB/s)

重启 SSH:

systemctl restart sshd

✅ 适合:限制某个 SFTP 用户


方法 3:使用 rssh 或 MySecureShell(专业 SFTP 服务器)

MySecureShell(推荐用于企业)

apt install mysecureshell

配置示例:

LimitDown 1000
LimitUp 1000

✅ 适合:多用户 SFTP 服务器


四、系统级限速(iptables + tc)

适合整台服务器或 IP 限速,不推荐普通 SFTP 场景。


五、推荐方案总结

场景 推荐方式
临时手动 sftp -l
脚本同步 rsync --bwlimit
单用户 SFTP trickle + ForceCommand
企业 SFTP MySecureShell

如果你能告诉我:

  • 是 客户端 还是 服务器端
  • 限速 用户 / IP / 全局
  • 使用的 Linux 发行版

我可以给你一份可直接用的配置。

0 踩