温馨提示×

linux sftp限速吗

小樊
34
2026-09-02 00:48:45
栏目: 智能运维

简短回答:SFTP 本身(OpenSSH 的 sftp-server)默认是不限速的,但可以通过多种方式进行限速

下面按常见场景说明。


一、SFTP 默认是否限速?

不限位。

OpenSSH 的 SFTP(基于 SSH)在默认配置下:

  • 使用服务器和客户端之间的最大可用带宽
  • 没有内建的、简单的“speed limit”参数(不像 vsftpd 有 max_rate

二、如何给 SFTP 限速(常见方案)

✅ 方案 1:使用 scp / sftp 客户端限速(仅限客户端)

如果你控制的是客户端,可以用:

scp 限速

scp -l 1000 file user@host:/path
  • -l 单位是 Kbit/s
  • 1000 = 约 125 KB/s

sftp 客户端(OpenSSH)本身不支持限速

但可以用 pv

pv -L 1m file | sftp user@host

✅ 方案 2:服务器端用 iptables / tc 限速(最通用)

SFTP 服务器上限制 SSH 端口(默认 22):

使用 tc(流量控制)

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

(示例:限制整体出口 1 Mbps)


✅ 方案 3:限制单个用户(推荐)

如果是 SFTP-only 用户,可以用:

方法 A:使用 ForceCommand + pv

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

方法 B:使用 systemd 限制

[Service]
IOBandwidthMax=/path 1M

✅ 方案 4:换用支持限速的 FTP 服务

如果你不是必须用 SFTP

  • vsftpd:支持 max_rate
  • proftpd:支持 TransferRate

三、总结

方式 是否支持 说明
SFTP 默认 不限速
客户端 scp 简单
服务器端 tc
单用户限制 推荐
vsftpd 更简单

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

  • 你是 服务器还是客户端
  • 用的是 OpenSSH 还是其他 SFTP 服务
  • 想限制 单用户 / 总带宽 / 上传还是下载

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

0