温馨提示×

CentOS SFTP如何限速

小樊
35
2026-07-20 10:24:14
栏目: 智能运维

在 CentOS 上给 SFTP 限速,常见有几种做法,下面按推荐程度给你说明。


✅ 方法一:使用 proftpd(最灵活、推荐)

proftpd 原生支持 SFTP,并且可以直接限制传输速度

1. 安装 proftpd(带 mod_sftp)

yum install -y proftpd proftpd-sftp

2. 配置 SFTP + 限速

编辑配置文件:

vim /etc/proftpd.conf

示例配置:

LoadModule mod_sftp.c

<VirtualHost 0.0.0.0>
    Port 2222
    SFTPEngine on
    SFTPLog /var/log/proftpd/sftp.log

    SFTPHostKey /etc/ssh/ssh_host_rsa_key
    SFTPHostKey /etc/ssh/ssh_host_ecdsa_key

    MaxClients 10

    # 限速(单位:bytes/s)
    TransferRate RETR 102400     # 下载 100KB/s
    TransferRate STOR 102400     # 上传 100KB/s
</VirtualHost>

3. 重启服务

systemctl restart proftpd

优点

  • 限速非常稳定
  • 可按用户 / IP / 目录限速
  • 企业常用方案

✅ 方法二:使用 vsftpd(仅限 FTP,不是 SFTP)

⚠️ 注意:vsftpd 不支持 SFTP(SSH 协议)
它只支持 FTP + TLS,如果你用 SFTP 就不适用。

如果你用的是 FTP,可这样限速:

anon_max_rate=102400
local_max_rate=102400

✅ 方法三:使用 trickle(用户态限速,慎用)

适用于临时限制 SFTP 命令(不推荐生产环境)。

yum install -y trickle
trickle -d 100 -u 100 sftp user@host

⚠️ 缺点

  • 只能限制客户端
  • 对 sshd 本身无效
  • 不稳定

✅ 方法四:iptables / tc(系统级限速,复杂)

可通过 tc(流量控制) 限制端口速率:

tc class add dev eth0 parent 1: classid 1:1 htb rate 1mbit

✅ 非常底层
❌ 配置复杂,维护成本高


✅ 最佳实践建议

场景 推荐方案
企业 SFTP 限速 ✅ proftpd
已有 SSH,想简单 ❌ 不适合
临时限制 trickle
高级网络控制 tc

❓你当前情况

你可以告诉我:

  1. 用的是什么:OpenSSH / vsftpd / proftpd
  2. 想限制的是:单个用户 / 整个服务器
  3. 上传还是下载限速?

我可以给你精确到可直接用的配置文件

0