温馨提示×

linux ftpserver怎么限速

小樊
32
2026-07-17 20:47:18
栏目: 智能运维

在 Linux 上给 FTP 服务器限速,常见做法取决于你用的是哪种 FTP 服务器软件。下面按 最常用场景 给你说明,并给出配置示例。


一、vsftpd(最常见)

1️⃣ 限制 单个连接 的速度

编辑配置文件(通常是 /etc/vsftpd.conf):

# 限制上传速度(单位:字节/秒)
local_max_rate=102400     # 100KB/s
anon_max_rate=51200       # 匿名用户 50KB/s

说明:

  • local_max_rate:本地用户
  • anon_max_rate:匿名用户
  • 单位是 字节/秒

重启服务:

systemctl restart vsftpd

2️⃣ 限制 总带宽(所有用户)

vsftpd 本身不支持总带宽限制,但可以用 tc(流量控制) 实现。

示例:限制 FTP(端口 21 + 被动端口)总速度为 1Mbps

tc qdisc add dev eth0 root tbf rate 1mbit burst 32kbit latency 400ms

⚠️ 注意:

  • 这是 网卡级别限速
  • 会影响所有走该网卡的数据
  • 生产环境建议结合 iptables + tc 使用

二、ProFTPD

1️⃣ 限制单个用户/连接速度

编辑 /etc/proftpd/proftpd.conf

<IfModule mod_xfer.c>
  TransferRate RETR 100    # 下载 100KB/s
  TransferRate STOR 80     # 上传 80KB/s
</IfModule>

重启:

systemctl restart proftpd

2️⃣ 按用户限速

<Directory /home/ftp>
  UserLimit 1
  TransferRate RETR 200
</Directory>

三、Pure-FTPd

1️⃣ 启动时限速

pure-ftpd -T 100:200

含义:

  • 上传 100KB/s
  • 下载 200KB/s

2️⃣ 针对用户限速

pure-ftpd -T 100:200 -u 1000

或结合数据库 / 虚拟用户配置。


四、系统级限速(通用方案)

如果你 不管用哪种 FTP 服务器,都可以用:

1️⃣ iptables + tc(推荐)

tc qdisc add dev eth0 root handle 1: htb
tc class add dev eth0 parent 1: classid 1:1 htb rate 1mbit
tc filter add dev eth0 protocol ip parent 1: prio 1 u32 match ip dport 21 0xffff flowid 1:1

2️⃣ 使用 trickle(进程级限速)

trickle -d 100 -u 50 vsftpd

⚠️ 不推荐用于生产环境


五、推荐方案总结

场景 推荐方式
限制单个用户 vsftpd local_max_rate
限制匿名用户 vsftpd anon_max_rate
限制总带宽 tc
企业级 FTP ProFTPD + TransferRate
临时测试 trickle

六、我可以帮你进一步细化

你可以告诉我:

  1. 用的是 vsftpd / ProFTPD / Pure-FTPd?
  2. 想限制 上传 / 下载 / 总带宽?
  3. 单用户 还是 所有用户?
  4. 服务器是 公网 / 内网 / 云服务器?

我可以直接给你 可复制粘贴的完整配置

0