我如何计算有多少流量通过我的路由器?

我如何计算有多少流量通过我的路由器?

由于我的互联网流量超出我自己的使用能力,而且我还有未使用的免费路由器,所以我正在考虑为邻居们创建一个免费热点。不幸的是,我的流量有限,所以我想对它的日使用量进行一些限制。我将在路由器上安装 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 定期检查使用的带宽,并根据已使用的带宽减慢连接速度或完全停止连接。

相关内容