在 Linux 上限制 FTP 服务器速度,常见做法取决于你使用的 FTP 服务软件。下面按 最常用方案 给你说明,并附示例。
vsftpd 限速(推荐)vsftpd 原生支持限速,通过以下参数控制:
编辑配置文件(通常是 /etc/vsftpd.conf):
# 下载速度(单位:字节/秒)
local_max_rate=102400 # 100KB/s
anon_max_rate=51200 # 匿名用户 50KB/s
说明:
local_max_rate:本地用户anon_max_rate:匿名用户使用 用户配置目录:
user_config_dir=/etc/vsftpd/user_conf
然后为每个用户创建配置文件:
mkdir -p /etc/vsftpd/user_conf
例如限制用户 testuser:
vi /etc/vsftpd/user_conf/testuser
内容:
local_max_rate=204800
重启 vsftpd:
systemctl restart vsftpd
编辑 /etc/proftpd/proftpd.conf:
TransferRate RETR 100 # 下载 100KB/s
TransferRate STOR 80 # 上传 80KB/s
<Directory /home/ftp>
TransferRate RETR 200 user testuser
</Directory>
或按组:
TransferRate RETR 150 group ftpusers
重启服务:
systemctl restart proftpd
启动时加参数:
pure-ftpd -T 100 # 上传 100KB/s
pure-ftpd -t 200 # 下载 200KB/s
或同时限制:
pure-ftpd -t 200 -T 100
配置文件方式(取决于发行版):
echo "200" > /etc/pure-ftpd/conf/AnonymousBandwidth
适合 整台服务器 或 IP 限速,不推荐初学者。
示例(限制 eth0 到 1Mbps):
tc qdisc add dev eth0 root tbf rate 1mbit burst 32kbit latency 400ms
⚠️ 配置复杂,重启失效,需配合脚本。
| FTP 服务 | 推荐方式 | 难度 |
|---|---|---|
| vsftpd | local_max_rate |
⭐ |
| ProFTPD | TransferRate |
⭐⭐ |
| Pure-FTPd | 启动参数 / 配置 | ⭐ |
| 系统级 | tc | ⭐⭐⭐⭐ |
✅ 限速是 每个连接,不是每个用户
✅ 多并发连接会突破限制
✅ 速度单位是 字节/秒(B/s),不是 bit
✅ 修改配置后记得重启服务
如果你愿意,可以告诉我:
我可以给你 精确可用的配置示例 ✅