温馨提示×

Ubuntu FTP Server带宽如何限制

小樊
34
2025-12-13 07:40:23
栏目: 智能运维

Ubuntu FTP Server 带宽限制实用指南

一、在 vsftpd 中按用户限速

  • 适用场景:需要对本地用户匿名用户分别限速,配置简单、生效快。
  • 步骤:
    1. 安装并启用服务
      • sudo apt update
      • sudo apt install vsftpd
      • sudo systemctl enable --now vsftpd
    2. 编辑配置文件
      • sudo nano /etc/vsftpd.conf
      • 按需添加或修改(速率单位为字节/秒):
        • 限制本地用户:local_max_rate=1048576 # 约 1 MB/s
        • 限制匿名用户:anon_max_rate=524288 # 约 512 KB/s
    3. 使配置生效
      • sudo systemctl restart vsftpd
  • 说明:上述参数直接作用于 vsftpd 会话,按连接限速,适合精细化控制用户带宽。

二、在 ProFTPD 中按用户或全局限速

  • 适用场景:需要更灵活的限速策略(如按用户、组、虚拟主机或目录)。
  • 步骤:
    1. 安装并启用服务
      • sudo apt update
      • sudo apt install proftpd
      • sudo systemctl enable --now proftpd
    2. 启用模块并配置
      • 确认已加载 mod_bandwidth(Debian/Ubuntu 常见已内置),在 /etc/proftpd/proftpd.conf 中加入:
        • BandwidthModule on DefaultBandwidth **50KB/s**
      • 说明:DefaultBandwidth 为全局默认;可按需增加用户/目录/虚拟主机段进行更细粒度限制。
    3. 使配置生效
      • sudo systemctl restart proftpd
  • 提示:若需按用户/目录定制,可在对应 // 段内设置带宽指令。

三、系统级限速的替代方案

  • 使用 trickle 限制某个进程(适合临时或按进程限速)
    • 安装:sudo apt install trickle
    • 示例:trickle -s -d 1024 -u 512 vsftpd
    • 说明:对指定进程的下载/上传分别限速(单位 KB/s),无需改 FTP 服务配置;注意 trickle 对 setuid/守护进程支持有限。
  • 使用 wondershaper 限制网卡(适合整网卡上下行)
    • 安装:sudo apt install wondershaper
    • 示例:sudo wondershaper eth0 1024 512
    • 说明:对网卡 eth0 的下载/上传限速(单位 Kbps),影响该网卡所有流量,粒度较粗。
  • 使用 tc + iptables(适合按 IP/端口/方向的精细流量整形)
    • 要点:tc 只能直接整形“出方向”流量;对“入方向”需配合 ifb 虚拟网卡做 ingress 重定向后再整形。
    • 示例思路:
      • 出方向:tc qdisc add dev eth0 root handle 1: htb; tc class add dev eth0 parent 1: classid 1:1 htb rate 10mbit; 用 iptables -t mangle 给目标流量打 mark;tc filter add dev eth0 parent 1: handle fw flowid 1:1
      • 入方向:创建 ifb0,将 eth0 的 ingress 流量镜像到 ifb0,再对 ifb0 做 HTB 限速
    • 说明:功能强大但配置复杂,适合需要按源/目的限速或做 QoS 的场景。

四、验证与注意事项

  • 验证方法
    • 使用 ftp/ncftp/lftp 或图形客户端进行大文件传输,观察吞吐是否接近设定值;建议用 iperf3 做基线对比,排除网络本身瓶颈。
  • 单位换算与常见误区
    • vsftpd 的 local_max_rate/anon_max_rate 单位为字节/秒;常见写法如 1048576=1 MB/s524288=512 KB/s
    • 系统级工具单位可能不同:trickle 使用KB/s,wondershaper 使用Kbps,tc/htb 使用bit/s;换算时避免把 KB/sKbps 混淆。
  • 生效与回滚
    • 修改 FTP 服务配置后需重启服务;系统级限速(tc/wondershaper)建议脚本化并持久化,变更前先备份现有规则以便快速回滚。

0