在 Ubuntu + Apache2 下限速,常见做法有几种。下面按 推荐程度 和 使用场景 给你说明,并附上配置示例。
mod_ratelimit(Apache 自带,最推荐)sudo a2enmod ratelimit
sudo systemctl restart apache2
可以在 虚拟主机 或 .htaccess 中配置。
<Location /downloads>
SetOutputFilter RATE_LIMIT
SetEnv rate-limit 100
</Location>
单位:KB/s
<VirtualHost *:80>
ServerName example.com
DocumentRoot /var/www/html
SetOutputFilter RATE_LIMIT
SetEnv rate-limit 200
</VirtualHost>
✅ 优点:简单
❌ 缺点:无法限制并发连接数
mod_qos(功能强大,推荐进阶)sudo apt install libapache2-mod-qos
sudo a2enmod qos
sudo systemctl restart apache2
<IfModule mod_qos.c>
# 最大并发连接数
QSMaxClients 200
# 单 IP 最大并发
QSClientMaxConnections 5
# 限制请求频率(每秒)
QSConnPerIPLimit 10
</IfModule>
✅ 优点:功能全面
❌ 缺点:配置稍复杂
mod_bw(第三方,老但好用)sudo apt install libapache2-mod-bw
sudo a2enmod bw
sudo systemctl restart apache2
<VirtualHost *:80>
BandWidthModule On
ForceBandWidthModule On
BandWidth all 102400 # 100KB/s
</VirtualHost>
✅ 优点:支持按 IP、目录限速
❌ 缺点:模块较老,维护不活跃
tc(Linux 流量控制)适合 整台服务器,不适合 Apache 精细控制。
tc class add dev eth0 parent 1: classid 1:1 htb rate 1mbit
❌ 不在 Apache 层
❌ 配置复杂
✅ 可用于应急
| 需求 | 推荐方案 |
|---|---|
| 简单限速 | mod_ratelimit |
| 防刷 / 防并发 | mod_qos |
| 老系统 | mod_bw |
| 整机限速 | tc |
# 限速 200KB/s + 单 IP 最多 5 连接
<Location /downloads>
SetOutputFilter RATE_LIMIT
SetEnv rate-limit 200
</Location>
QSClientMaxConnections 5
如果你愿意,可以告诉我:
apache2 -v)我可以帮你写一份 可直接用的完整配置。