![网关流量整形以阻止窃取者](https://linux22.com/image/563817/%E7%BD%91%E5%85%B3%E6%B5%81%E9%87%8F%E6%95%B4%E5%BD%A2%E4%BB%A5%E9%98%BB%E6%AD%A2%E7%AA%83%E5%8F%96%E8%80%85.png)
我对流量整形还不熟悉,但我需要快速简单的整形。我家有使用 wifi 的免费互联网服务。所有 www 流量都已路由到透明代理。我们的连接速度为 10mbps,我们通常的客户端大约有 100-130 个。内部接口是 eth1,外部接口是 eth0。
问题是人们开始滥用我们的服务,使用多个连接下载客户端下载很多东西,从而阻塞了我们的带宽并给其他用户带来了麻烦。http 数据可以正常流动,因为有些数据来自我们的代理,但 https 在连接上存在问题。有时我看到一个 IP 地址打开了 40 个连接来同时下载 10 个文件。我曾尝试在 squid 上设置 acl maxconn 4,但 maxconn 在 Firefox 上存在问题,时不时出现最大连接已达到错误。所以,目前当我看到一些人开始这样做时,我所能做的就是禁止该用户。
因此,我认为我应该静态地将所有客户端限制为每 IP 最大 64kbps,无论它们建立多少连接,但只有 youtube 电影的 360p 电影应该可以正常运行。我计划对 youtube 以外的内容使用 2mbps,对 youtube 使用 8mbps。
这是我当前的脚本
tc qdisc add dev eth0 handle 1: root htb default 11
tc class add dev eth0 parent 1: classid 1:1 htb rate 10mbit
tc class add dev eth0 parent 1:1 classid 1:10 htb rate 8mbit
tc class add dev eth0 parent 1:1 classid 1:11 htb rate 64kbit burst 1mb ceil 384kbit
tc qdisc add dev eth0 parent 1:10 sfq perturb 10
tc qdisc add dev eth0 parent 1:11 sfq perturb 10
tc filter add dev eth0 protocol ip parent 1:10 match src 142.176.121.192/27 flowid 1:10
tc filter add dev eth0 protocol ip parent 1:10 match src 173.194.0.0/16 flowid 1:10
我似乎无法停止这些多连接客户端。我做错了什么吗?另外,我该如何捕获 YouTube?这些 IP 正确吗?
谢谢