如何配置FTP服务器带宽限制
导读:配置FTP服务器带宽限制 一、vsftpd 配置 适用系统:Ubuntu/Debian/CentOS 等常见发行版 核心思路:在配置文件 /etc/vsftpd.conf 中设置以字节/秒为单位的速率参数,然后重启服务 配置示例# 匿名用...
配置FTP服务器带宽限制
一、vsftpd 配置
- 适用系统:Ubuntu/Debian/CentOS 等常见发行版
- 核心思路:在配置文件 /etc/vsftpd.conf 中设置以字节/秒为单位的速率参数,然后重启服务
- 配置示例
# 匿名用户:下载与上传各 100 KB/s anon_max_rate=102400 # 本地用户:下载与上传各 500 KB/s local_max_rate=512000 # 如启用匿名上传,确保开关打开 anon_upload_enable=YES local_upload_enable=YES - 生效与验证
- 重启服务:
sudo systemctl restart vsftpd - 验证要点:速率单位为字节/秒;对控制连接与数据连接均生效;建议用客户端进行上传/下载实测核对速率
- 重启服务:
二、ProFTPD 配置
- 模块方式一(推荐):使用 mod_bandwidth
- 配置示例
< IfModule mod_bandwidth.c> BandwidthModule On DefaultUserLimit 102400 # 默认每用户 100 KB/s DefaultGroupLimit 102400 < /IfModule> - 生效:
sudo systemctl restart proftpd
- 配置示例
- 模块方式二:使用 mod_ratelimit
- 配置示例
< IfModule mod_ratelimit.c> RateLimitEngine on RateLimitInterval 1 RateLimitBurst 4096 RateLimitUnits KB/s < /IfModule> - 生效:
sudo systemctl restart proftpd
- 配置示例
- 说明
- 上述示例为全局限速;可按需将限制细化到用户/组/虚拟主机/目录等粒度
- 确保相应模块(如 mod_bandwidth 或 mod_ratelimit)已启用或已加载到 ProFTPD
三、按用户或目录设置不同限速
- ProFTPD 细粒度示例(基于用户与目录)
< Directory /var/ftp/public> < Limit RATE> Bandwidth 204800 # 该目录 200 KB/s < /Limit> < /Directory> < User ftpuser> < Limit RATE> Bandwidth 51200 # 指定用户 50 KB/s < /Limit> < /User>- 生效:
sudo systemctl restart proftpd
- 生效:
- vsftpd 常见做法:通过为不同本地用户设置不同的系统级资源限制(如 ulimit/cgroup)或在虚拟用户配置中分别指定速率,实现差异化限速
四、系统级限速工具 trickle(备选)
- 适用场景:无法修改 FTP 服务配置,或需对特定进程做临时限速
- 安装与用法
- 安装:
sudo apt-get install trickle或sudo yum install trickle - 示例:限制某 FTP 进程下载 100 KB/s、上传 50 KB/s
trickle -s -d 100 -u 50 ftpd -n < 其他参数>
- 安装:
- 注意
- trickle 通过用户态LD_PRELOAD实现,可能与部分服务/环境不兼容;更适合测试或临时使用
五、验证与排错要点
- 单位换算:1 KB/s = 1024 B/s;vsftpd 的速率参数为字节/秒
- 生效验证:修改后务必重启服务并用客户端实测;观察上传/下载是否接近设定值
- 日志与监控:开启并检查 FTP 服务日志与系统监控,确认限速生效且无异常报错
- 模块检查(ProFTPD):确认 mod_bandwidth/mod_ratelimit 已启用;变更粒度(用户/组/目录)后重载服务
- 测试建议:先在测试环境验证,再推广到生产,避免影响业务
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 如何配置FTP服务器带宽限制
本文地址: https://pptw.com/jishu/765444.html
