如何限制 Linux 接入点每个用户的下载速率?

如何限制 Linux 接入点每个用户的下载速率?

我有一个基于 Linux 的 WiFi 接入点连接到互联网。如何将每个用户的下载速度限制为 200 kbps?

这是一个简单的问题,我可以在 Stack Overflow 中找到许多“错误重复”,但没有答案来回答我的问题:

  • 用户来来去去,因此用户数量及其 IP 是动态的
  • 速率限制针对的是下载,而不是上传
  • 该速率不是针对 IP,而是针对 WiFi 用户(例如,如果一个用户也是路由器或桥接的虚拟机管理程序,则它有多个 IP)
  • 限制是固定的。即使只有一个用户,速度也是 200 kbps(这样就不会有用户在一天内耗尽每月的互联网 GB 预算)。

答案1

这对于典型的低端路由器来说并不实用 - 问题在于“速率不是针对 IP 而是针对 wi-fi 用户 - 桥接虚拟机管理程序是主要问题”。

使用 DD-WRT 之类的东西,您可以为每个用户设置单独的 SSID 和子网,并承担相应的 [带宽浪费] 成本和复杂性,然后在每个 VLAN 接口上进行整形。一种稍微更经济有效的方式可能是在每个设备上强制使用 OpenVPN 或同等产品,然后限制对隧道的出站访问并对其进行整形 - 但这仍然是一个糟糕的解决方案。

另一种可能性是,假设纯 WIFI 设置(ISP 可能会使用这种设置),我们可以使用 WIFI 作为 PPP 的基础载体,即某种 PPPoE 或 L2TP 设置,然后对底层 PPP 连接进行数据包整形。这也要求每个用户在其终端上安装适当的软件。

如果您愿意放弃“桥接虚拟机管理程序”的情况,您可以简单地根据每个 MAC 进行数据包整形,并确保列出了可接受的 MAC - 这可能会受到嗅探 MAC 地址的人的某种程度的滥用。

相关内容