在 CentOS 上搭建 FTP 服务器(常见的是 vsftpd),“限流”通常包含两类需求:
下面以 vsftpd(最常用) 为例说明。
yum install vsftpd -y
systemctl enable vsftpd
systemctl start vsftpd
编辑配置文件:
vi /etc/vsftpd/vsftpd.conf
添加或修改:
# 下载速度限制(字节/秒)
anon_max_rate=102400 # 匿名用户 100KB/s
local_max_rate=512000 # 本地用户 500KB/s
单位:字节/秒(B/s)
vi /etc/vsftpd/vsftpd.conf
确保:
user_config_dir=/etc/vsftpd/user_conf
创建目录:
mkdir -p /etc/vsftpd/user_conf
为用户 test 单独限速:
vi /etc/vsftpd/user_conf/test
内容:
local_max_rate=204800
重启服务:
systemctl restart vsftpd
max_clients=50
max_per_ip=3
anon_max_rate=102400
max_clients=10
如果你是想 在系统层限流(不是 FTP 应用层),可以用 tc 或 iptables 限速,但一般不推荐用于 FTP。
示例(iptables 简单限速):
iptables -A INPUT -p tcp --dport 21 -m limit --limit 10/s -j ACCEPT
如果你用的是 proftpd:
<Limit RATE>
RateKbPS 500
</Limit>
local_max_rate=512000
anon_max_rate=102400
max_clients=100
max_per_ip=2
ftp localhost
或用浏览器/FileZilla 下载测试速度。
如果你能告诉我:
我可以给你更精确的配置。