在 CentOS 上使用 vsftpd 进行限速,主要通过修改 vsftpd.conf 配置文件实现。vsftpd 支持全局限速和基于用户/用户组的限速。
编辑 vsftpd 配置文件:
vi /etc/vsftpd/vsftpd.conf
添加或修改以下参数(单位:字节/秒):
# 匿名用户最大速度
anon_max_rate=102400 # 100KB/s
# 本地用户最大速度
local_max_rate=512000 # 500KB/s
保存后重启服务:
systemctl restart vsftpd
在 vsftpd.conf 中启用:
user_config_dir=/etc/vsftpd/user_conf
创建目录:
mkdir -p /etc/vsftpd/user_conf
例如限制用户 ftpuser:
vi /etc/vsftpd/user_conf/ftpuser
内容:
local_max_rate=204800 # 200KB/s
重启 vsftpd:
systemctl restart vsftpd
注意:文件名必须和用户登录名一致。
vsftpd 本身不支持直接按组限速,但可通过以下方式实现:
user_config_dir示例脚本思路:
for u in user1 user2 user3; do
echo "local_max_rate=307200" > /etc/vsftpd/user_conf/$u
done
tail -f /var/log/vsftpd.log
local_max_rate 只对 本地用户 生效anon_max_rate| 场景 | 配置 |
|---|---|
| 所有本地用户 500KB/s | local_max_rate=512000 |
| 匿名用户 100KB/s | anon_max_rate=102400 |
| 单用户 200KB/s | user_config_dir + 用户文件 |
如果你需要 CentOS 7 / 8 / Stream 具体版本示例,或者配合 虚拟用户 使用,我可以给你更详细的方案。