温馨提示×

ubuntu sftp怎样限速

小樊
40
2026-10-11 04:58:40
栏目: 智能运维

在 Ubuntu 上限制 SFTP 速度,常见有几种方式,取决于你是限制服务器端还是客户端,以及使用的是 OpenSSH SFTP 还是 其他 SFTP 服务。


一、SSH / SFTP 服务端限速(推荐,控制所有用户)

方法 1:使用 openssh-server + tc(系统级限速)

适用于 所有 SFTP / SSH 流量。

# 限制 eth0 出口带宽为 1Mbps
sudo tc qdisc add dev eth0 root tbf rate 1mbit burst 32kbit latency 400ms

查看:

tc qdisc show dev eth0

删除:

sudo tc qdisc del dev eth0 root

✅ 优点:简单粗暴
❌ 缺点:影响所有 SSH 流量


方法 2:使用 pam + limits(不推荐 SFTP)

ulimit 只能限制 CPU / 内存,不能限速网络。


方法 3:使用 ssh + ProxyCommand + pv(高级)

在 客户端 限速(见下)


二、SFTP 客户端限速(最常用)

方法 1:sftp + pv(推荐)

pv 可以限制管道速度。

# 安装
sudo apt install pv

# 下载限速 1MB/s
pv -L 1m file.txt | sftp user@host:/remote/path

# 上传
sftp user@host <<EOF
put <(pv -L 1m localfile) /remote/file
EOF

方法 2:rsync 通过 SSH(最实用)

rsync -avz --bwlimit=1000 localfile user@host:/path/

--bwlimit=1000 = 1000 KB/s

✅ 稳定、可控
✅ 常用于生产环境


方法 3:scp 限速

scp -l 1000 file user@host:/path/

-l 单位是 Kbit/s(不是 KB)


三、限制某个 SFTP 用户(专用 SFTP 账号)

使用 restricted sftp + rsync

  1. 在 /etc/ssh/sshd_config
Match User sftpuser
    ChrootDirectory /sftp
    ForceCommand internal-sftp
  1. 用户只能使用 rsync / scp 并加限速

四、总结建议

场景 推荐方案
自己上传下载限速 rsync --bwlimit
限制服务器总带宽 tc
限制某用户 SFTP + rsync
简单临时 scp -l

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

  • 是 服务器限速 还是 客户端
  • SFTP 是 OpenSSH 还是 ProFTPD / vsftpd
  • 想限制 单用户 / 全部用户

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

0 踩