温馨提示×

ubuntu sftp怎样限速传输

小樊
40
2026-10-14 02:43:22
栏目: 智能运维

在 Ubuntu 上限制 SFTP 传输速度,常见有以下几种方式,按「是否改服务端」和「使用场景」分类说明。


一、服务端限速(推荐,影响所有 SFTP 用户)

方法 1:使用 OpenSSH + tc / trickle(不推荐复杂)

OpenSSH 本身 不支持直接限速,需要借助外部工具。


方法 2:使用 ProFTPD(支持 SFTP + 限速)✅ 推荐

如果你可以换 SFTP 服务软件:

sudo apt install proftpd

配置 /etc/proftpd/proftpd.conf:

<IfModule mod_sftp.c>
  SFTPEngine on
  Port 2222
  SFTPLog /var/log/sftp.log
  HostKey /etc/ssh/ssh_host_rsa_key
  HostKey /etc/ssh/ssh_host_ecdsa_key

  <Limit ALL>
    TransferRate SOFTWARE 1000  # 下载 1MB/s
    TransferRate STOR 1000      # 上传 1MB/s
  </Limit>
</IfModule>

重启:

sudo systemctl restart proftpd

✅ 支持 按用户 / 目录 / 速度


二、客户端限速(不影响服务器)

方法 3:使用 sftp + pv(简单实用)✅ 推荐

sudo apt install pv

上传限速(例如 1MB/s):

pv -L 1m file.txt | sftp user@host:/remote/path/

下载限速:

ssh user@host "cat /remote/file.txt" | pv -L 1m > file.txt

方法 4:使用 rsync 限速(很多 SFTP 用户实际用 rsync)

rsync -avz --bwlimit=1000 -e ssh file user@host:/path/

--bwlimit=1000 表示 KB/s


三、系统级限速(高级)

方法 5:使用 tc(流量控制)

sudo tc qdisc add dev eth0 root tbf rate 1mbit burst 32kbit latency 400ms

⚠️ 影响整个网卡,不区分端口


四、总结推荐

场景 推荐方案
服务器统一限速 ProFTPD
单用户临时限速 pv / rsync
不想改服务 rsync --bwlimit
运维级控制 tc

如果你愿意,可以告诉我:

  • 是 服务器限速 还是 客户端限速
  • 使用 OpenSSH 还是其他 SFTP 服务
  • 想限 上传 / 下载 / 双向

我可以直接给你一套可复制的配置。

0 踩