温馨提示×

ubuntu sftp可以限速吗

小樊
46
2026-09-26 12:17:28
栏目: 智能运维

可以,Ubuntu 上的 SFTP 是可以限速的,但要看你用的是哪种 SFTP 服务方式。常见场景和做法如下:


一、OpenSSH 自带的 SFTP(最常用)

Ubuntu 默认用 OpenSSH Server 提供 SFTP,原生的 sftp-server 本身不支持限速。

✅ 解决方案 1:用 rssh / scponly(不推荐,已过时)

基本不再维护,不推荐。

✅ 解决方案 2:用 proftpd + mod_sftp(支持限速)

如果你愿意换 SFTP 服务:

sudo apt install proftpd

在配置中:

<IfModule mod_sftp.c>
    SFTPEngine on
    SFTPLog /var/log/sftp.log
    Port 22

    SFTPBandwidth 100000   # 限速 100KB/s(单位是 bytes/s)
</IfModule>

✅ 支持:

  • 上传限速
  • 下载限速
  • 按用户/组限速

二、用 ssh + sftp-server + tc / trickle(系统级限速)

✅ 方案 3:用 trickle(用户态限速,最简单)

sudo apt install trickle

服务器端限制 SFTP 用户: 修改 /etc/ssh/sshd_config:

Subsystem sftp /usr/bin/trickle -s -u 100 -d 100 /usr/lib/openssh/sftp-server
  • -u 100:上传 100 KB/s
  • -d 100:下载 100 KB/s

重启 SSH:

sudo systemctl restart ssh

⚠️ 注意:

  • 对所有 SFTP 用户统一限速
  • 对 scp 无效(scponly 不走 sftp-server)

三、用 Linux tc(网络层限速,最强大)

适合整个 IP / 端口限速。

# 限制 22 端口为 1Mbit
sudo tc qdisc add dev eth0 root tbf rate 1mbit burst 32kbit latency 400ms

适合:

  • 服务器整体出口限速
  • 不区分用户

四、客户端限速(如果你控制客户端)

Linux / macOS

sftp -l 100 user@host

-l 100 = 100 Kbit/s

FileZilla

设置 → 传输 → 速度限制

总结建议

需求 推荐方案
简单、快速 trickle
按用户限速 proftpd + mod_sftp
整个服务器 tc
只限制客户端 sftp -l

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

  • 是 服务器限速 还是 客户端
  • 是否要 按用户
  • Ubuntu 版本

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

0 踩