Squid 代理服务器:限制总带宽

Squid 代理服务器:限制总带宽

我们有一个很棒的 squid 代理和 dansguardian 用于过滤,它们都运行得很好。有没有简单的方法来限制总带宽使用量?我想将 squid 用户互联网使用量的最大数量设置为 1200,因为我们的总带宽是 2000,我需要剩余的带宽来确保其他服务(如 voip)能够正常工作,而不会出现与我们连接的“互联网端”的大量下载相关的故障和类似问题。我的意思是总 squid 带宽限制,而不是基于用户的限制。

非常感谢大家。

答案1

您可以使用类似这样的规则来设置形状:

tc qdisc del dev eth0 root

tc qdisc add dev eth0 root handle 1: htb default 1 r2q 160

tc class add dev eth0 parent 1: classid 1:1 htb rate 2000kbit burst 1k
tc class add dev eth0 parent 1:1 classid 1:2 htb rate 2000kbit ceil 2000kbit burst 1k
tc class add dev eth0 parent 1:1 classid 1:3 htb rate 1200kbit ceil 1200kbit burst 1k

tc qdisc add dev eth0 parent 1:2 handle 2: sfq perturb 10
tc qdisc add dev eth0 parent 1:3 handle 3: sfq perturb 10

然后,您可以使用 iptables 将数据包分为以下几类:

iptables -t mangle -A POSTROUTING -o eth0 --set-class 1:2
iptables -t mangle -A POSTROUTING -o eth0 -m tcp -p tcp --dport 80 -j CLASSIFY --set-class 1:3

请注意,设置类的是最后匹配的规则,当一条规则匹配时,它不会短路。我花了一段时间才理解这一点。

答案2

是的,您可以限制 Squid 的总带宽。例如,512 Kbps?
将以下内容添加到/etc/squid3/squid.conf

delay_pools 1  
delay_class 1 1  
delay_access 1 allow all  
delay_parameters 1 64000/64000          # 512 kbits == 64 kbytes per second  

要更改正在运行的 squid 实例,请在更改配置文件后运行以下命令
sudo squid3 -k reconfigure

参考
延时池
带宽限制方法

相关内容