温馨提示×

centos vsftp如何限速

小樊
35
2026-09-29 22:08:03
栏目: 智能运维

在 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

二、针对单个用户限速(推荐)

1. 启用用户配置目录

在 vsftpd.conf 中启用:

user_config_dir=/etc/vsftpd/user_conf

创建目录:

mkdir -p /etc/vsftpd/user_conf

2. 为指定用户创建配置文件

例如限制用户 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

四、验证限速是否生效

  1. 使用 FTP 客户端上传/下载
  2. 观察速度是否被限制
  3. 查看日志:
tail -f /var/log/vsftpd.log

五、常见注意事项

  • 限速单位是 bytes/s,不是 bits/s
  • local_max_rate 只对 本地用户 生效
  • 匿名用户用 anon_max_rate
  • SELinux 开启时确保目录权限正确

六、示例总结

场景 配置
所有本地用户 500KB/s local_max_rate=512000
匿名用户 100KB/s anon_max_rate=102400
单用户 200KB/s user_config_dir + 用户文件

如果你需要 CentOS 7 / 8 / Stream 具体版本示例,或者配合 虚拟用户 使用,我可以给你更详细的方案。

0 踩