由于我的互联网流量超出我自己的使用能力,而且我还有未使用的免费路由器,所以我正在考虑为邻居们创建一个免费热点。不幸的是,我的流量有限,所以我想对它的日使用量进行一些限制。我将在路由器上安装 dd-wrt 或 openwrt 来实现这一点,但上次我试图在 Linux 下计算流量使用量时,我不得不为 netfilter 编写自己的 ulog 过滤器,现在我想避免这样做。那么,有没有一种产品可以用来实现我的目标,即在达到限制时断开一天的所有连接(或将它们调整到 32kbps)?
答案1
看起来,使用现代 iptables 限制流量是相当容易的任务。
满足模块配额:
iptables -A OUTPUT -p tcp --dport 80 -m quota --quota 1024 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 80 -j DROP
这将接受 1K 的数据,然后断开所有连接:)--quota
不断减少计数器,当它达到 0 时规则不再匹配,因此下一个规则启动并阻止所有内容。
您甚至可以看到剩余的流量
# iptables -L OUTPUT -v
Chain OUTPUT (policy ACCEPT 3640 packets, 1753K bytes)
pkts bytes target prot opt in out source destination
1 40 ACCEPT tcp -- any any anywhere anywhere tcp dpt:http quota: 984 bytes
0 0 DROP tcp -- any any anywhere anywhere tcp dpt:http
过了一会儿
# iptables -L OUTPUT -v
Chain OUTPUT (policy ACCEPT 3814 packets, 1773K bytes)
pkts bytes target prot opt in out source destination
8 996 ACCEPT tcp -- any any anywhere anywhere tcp dpt:http quota: 0 bytes
9 504 DROP tcp -- any any anywhere anywhere tcp dpt:http
看起来如果我可以在 OpenWRT 上安装这个模块,限制流量将是一件容易的事。
答案2
Gargoyle 是一款类似 WRT 的固件,可以计算配额并限制每个 IP 的配额。以下是链接。
我希望Tomato和DD-WRT也能开发同样的功能。
答案3
为了控制交通,iptablesWRT
可以在您正在考虑的两个安装之一上运行。
这里有一个 openwrt 论坛主题参考,供大家参考——流量整形 QOS 指南;
二更多的 链接。
答案4
如果您有一台通常始终处于开启状态的计算机,您可以将其用作网关,并在那里测量统计数据。
编辑:
由于网关选项不可行,您是否曾尝试过番茄固件?它有很多功能,可能比您需要的还要多。据我所知,有多种方法可以在特定时间禁用无线,并限制速度。还有几个 QoS 选项。我最喜欢的 Tomato 功能是您可以创建 cron 作业,这些作业可让您轻松缩短用户的访问时间。您还可以使用 cron 定期检查使用的带宽,并根据已使用的带宽减慢连接速度或完全停止连接。