若需在CentOS上限制FileZilla Server的带宽,可通过FileZilla Server自身配置(推荐,直接针对FTP服务)或系统级工具(如tc、trickle,适用于全局或特定进程)实现。以下是具体步骤:
FileZilla Server内置了带宽限制功能,可全局或按用户/组设置上传/下载速度上限,操作简便且针对性强。
登录FileZilla Server管理界面
使用管理员账号登录FileZilla Server(默认端口:14147,若修改过需使用自定义端口)。
进入全局速度限制设置
在左侧导航栏点击Edit(编辑)→ Global Settings(全局设置),展开**Speed Limits(速度限制)**选项。
设置全局带宽限制
保存并重启服务
点击OK保存配置,重启FileZilla Server使设置生效(通过systemctl restart filezilla_server命令)。
注:若需针对特定用户/组设置,可进入Users(用户)→ Groups(组),选择对应组或用户,在Speed Limits tab中单独配置。
若需全局控制FTP流量(如不影响其他服务),可使用tc(Traffic Control,Linux内核自带)或trickle(轻量级进程限速工具)。
tc命令(精准控制FTP流量)tc通过流量整形(Traffic Shaping)限制指定网络接口的带宽,适用于需要精细化管理的场景。
iproute(含tc工具)iproute,若未安装可通过sudo yum install iproute安装。eth0(通过ip a命令确认),限制FTP带宽为1Mbps(下载)/512Kbps(上传):# 清空现有队列规则
sudo tc qdisc del dev eth0 root 2>/dev/null
# 添加HTB根队列(默认类为1:10,带宽1Mbps)
sudo tc qdisc add dev eth0 root handle 1: htb default 10
sudo tc class add dev eth0 parent 1: classid 1:1 htb rate 1mbit ceil 1mbit
sudo tc class add dev eth0 parent 1:1 classid 1:10 htb rate 1mbit ceil 1mbit
# 限制上传带宽(FTP数据端口为20,控制端口为21)
sudo tc qdisc add dev eth0 parent 1:10 handle 10: sfq perturb 10
sudo tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip dport 21 0xffff flowid 1:10 # 控制端口
sudo tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip sport 20 0xffff flowid 1:10 # 数据端口
注:
dport 21匹配FTP控制端口(命令传输),sport 20匹配FTP数据端口(文件传输)。若使用PASV模式,需将dport改为PASV端口范围(如50000:60000)。
trickle工具(限制FileZilla进程带宽)trickle通过动态调整进程的网络发送/接收速率,适用于临时或轻量级限速。
tricklesudo yum install trickle -y
trickle启动FileZilla Server-d 1024)、上传速度为512Kbps(-u 512):sudo trickle -d 1024 -u 512 /usr/sbin/filezilla_server
注:若需开机自启,可将上述命令添加到
/etc/rc.local或创建Systemd服务单元(如/etc/systemd/system/filezilla_trickle.service)。
tc配置需谨慎:错误的队列规则可能导致网络中断,建议在测试环境验证后再应用于生产环境。tc的dport规则改为PASV端口范围(在FileZilla Server的Global Settings→Passive Mode中设置),或在trickle中限制所有FTP数据端口。通过以上方法,可有效限制CentOS上FileZilla Server的带宽使用,优化网络资源分配。