温馨提示×

debian sftp能限速吗

小樊
35
2026-10-27 02:46:16
栏目: 智能运维

在 Debian 上,SFTP 本身(OpenSSH 的 sftp-server)是支持限速的,但不是在 sftp 命令里直接设,而是通过 SSH 服务端配置或 sftp-server 参数 来实现。

下面给你几种常见、可用的方式(从推荐到补充)。


一、OpenSSH 自带限速(推荐 ✅)

OpenSSH 的 sftp-server 支持两个参数:

  • -l:下载限速(per connection,单位 KB/s)
  • -u:上传限速(per connection,单位 KB/s)

1️⃣ 修改 sshd 配置

编辑:

/etc/ssh/sshd_config

找到或添加:

Subsystem sftp internal-sftp

改为(例如限速 1MB/s):

Subsystem sftp /usr/lib/openssh/sftp-server -l 1024 -u 1024

1024 = 1024 KB/s = 1 MB/s
这是 每个连接 的限速

重启 ssh:

systemctl restart ssh

✅ 优点:

  • 原生支持
  • 不需要额外软件
  • 稳定

❌ 缺点:

  • 不能按用户/目录灵活区分(除非配合 Match)

二、按用户 / 组 / 目录限速(更精细 ✅)

可以用 Match + ForceCommand 实现不同用户不同限速。

示例:对 sftp 用户限速

Match Group sftpusers
    ForceCommand internal-sftp -l 512 -u 512

或指定 sftp-server 路径:

Match User testuser
    ForceCommand /usr/lib/openssh/sftp-server -l 256 -u 256

重启 ssh:

systemctl restart ssh

三、用 tc / trickle(不推荐 SFTP)

trickle(用户态限速)

trickle -u 100 -d 100 sftp user@host

⚠️ 问题:

  • 只对 客户端 有效
  • 服务端无法强制
  • 容易被绕过

tc(系统级)

太重,不适合 SFTP 单独限速。


四、第三方方案(高级)

  • ProFTPD + mod_sftp(支持更强限速)
  • rssh + 限速脚本
  • 容器 / cgroup 网络限速

一般不建议,除非你有特殊需求。


总结 ✅

方式 是否推荐 说明
sftp-server -l -u ⭐⭐⭐⭐ 最简单、官方支持
Match + ForceCommand ⭐⭐⭐⭐ 按用户限速
trickle ⭐ 仅客户端
tc ⭐ 太复杂

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

  • Debian 版本
  • 是 服务端限速 还是 客户端
  • 是否要 按用户 / 目录

我可以直接帮你写一份完整配置。

0 踩