在 CentOS 上给 SFTP 限速,常见有几种做法,下面按推荐程度给你说明。
proftpd(最灵活、推荐)proftpd 原生支持 SFTP,并且可以直接限制传输速度。
yum install -y proftpd proftpd-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>
systemctl restart proftpd
✅ 优点
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
⚠️ 缺点
可通过 tc(流量控制) 限制端口速率:
tc class add dev eth0 parent 1: classid 1:1 htb rate 1mbit
✅ 非常底层
❌ 配置复杂,维护成本高
| 场景 | 推荐方案 |
|---|---|
| 企业 SFTP 限速 | ✅ proftpd |
| 已有 SSH,想简单 | ❌ 不适合 |
| 临时限制 | trickle |
| 高级网络控制 | tc |
你可以告诉我:
我可以给你精确到可直接用的配置文件。