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

Pit*_*tto 3 proxy squid bandwidth-control

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

公平地感谢大家。

小智 7

是的 yoy 可以限制 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  
Run Code Online (Sandbox Code Playgroud)

在更改配置文件后更改鱿鱼运行的运行实例
sudo squid3 -k reconfigure

参考
DelayPools
Bandwidth-Limiting-HOWTO


Sea*_*der 4

您可以使用如下规则来设置整形:

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
Run Code Online (Sandbox Code Playgroud)

然后您可以使用 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
Run Code Online (Sandbox Code Playgroud)

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