在带有 dhcpd 的 Linux 服务器上,充当 LAN 中所有客户端的 Internet 网关:如何根据 IP/MAC 地址监控 Internet 使用情况,并在超过特定带宽消耗时拒绝 Internet 访问?
答案1
在 Linux 上,您可以通过一些脚本来完成此操作:
- 创建防火墙规则,
iptables
以便每个客户端的所有带宽都通过单独的规则。内核中的防火墙子系统将对特定规则匹配的网络数据包和字节进行计数。如果你跑的话你可以看到计数器iptables -vL
。为了提高性能,您可能也想使用该-n
选项:iptables -vnL
- 编写一个从 cron 运行的脚本,检查每个客户端使用了多少数据。然后,如果超过特定数量,则让脚本修改防火墙,以便客户端无法再访问互联网
请注意,iptables
当防火墙被清除时(即重新启动后或您执行此操作时),计数器会重置iptables -F
。因此,您可能希望让脚本向某些数据库或其他内容陈述其结论。
答案2
您的答案在 Serverfault 上给出,用于限制流量
https://serverfault.com/questions/174010/limit-network-bandwith-for-an-ip
并为了监控流量安装 iftop