温馨提示×

linux sftp如何限速

小樊
46
2026-09-05 03:19:52
栏目: 智能运维

在 Linux 下对 SFTP 限速,常见做法有以下几种,按使用场景从简单到专业说明:


一、使用 sftp 命令本身(客户端限速)—— 不推荐

标准 OpenSSH 的 sftp 客户端 不支持限速参数,所以不能直接在 sftp 命令里限速。


二、使用 scp / rsync + 限速(替代方案)

如果你只是传文件,可以用:

1️⃣ scp 限速

scp -l 800 file user@host:/path/
  • -l 单位是 Kbit/s
  • 800 = 100 KB/s

2️⃣ rsync 限速(推荐)

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

✅ 如果可以不用 sftp,这是最简单可靠的方式


三、使用 ssh + pv 限速(sftp 可用)

pv -L 1m file | ssh user@host "cat > /path/file"
  • -L 1m = 限速 1MB/s
  • 适合单文件

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

方法 1:使用 OpenSSH + ForceCommand + pv

/etc/ssh/sshd_config

Match User sftpuser
    ForceCommand pv -L 500k | internal-sftp

⚠️ 实际不推荐,复杂且不稳定


✅ 方法 2(推荐):使用 rssh / MySecureShell

MySecureShell(专业 SFTP 限速)

apt install mysecureshell

配置:

<User sftpuser>
    LimitDown 1000   # KB/s
    LimitUp 500      # KB/s
</User>

✅ 支持:

  • 上传 / 下载限速
  • 用户级控制
  • 稳定可靠

方法 3:使用 tc(Linux 流量控制,系统级)

适合服务器整体限制:

tc qdisc add dev eth0 root tbf rate 1mbit burst 32kbit latency 400ms
  • 控制整个网卡
  • 不区分用户

五、总结推荐

场景 推荐方式
临时传文件 rsync --bwlimit
单文件 pv + ssh
多用户 SFTP MySecureShell
服务器整体 tc

如果你告诉我:

  • 客户端限速 还是 服务器限速
  • 使用 OpenSSH 还是专用 SFTP 服务

我可以给你更精确的配置示例。

0