限制每个用户使用的总带宽


5

我正在运行可供广泛用户访问的Linux服务器,并且(由于上游Internet提供商制定了一些政策),我需要将用户可以传输的数据总量限制为给定数量。Linux机器是通往我的提供商的网关。有没有办法做到这一点?

iptables如果有帮助,我已经在包装盒上安装了有效的设置,并且我在配置HTB之类的东西方面有一些经验。我过去所做的设置的问题在于,它们将用户限制为特定的比特率(例如20kbps),而不是较长时间段(例如每天100MB)的总传输量。


Linux机器是您通往上游提供商的边界网关吗?
squillman's

正确。编辑以澄清。
Tim的

Answers:


3

@WerkkreW让我步入正轨。我将使用的解决方案是使用squid及其delay_pools功能。

基本概念是在中设置每个主机(第3类)延迟池squid.conf,然后将每个延迟池设置为我希望每个用户每天允许的最大带宽。然后,将“填充”速率设置为最大带宽除以一天的时间,这样每个延迟池将在一天之内完全填充。

最终,iptables我将使用透明方式将端口80上的传入请求从我的LAN重定向到鱿鱼,而不是直接对它们进行DNATing,以便内部网络上的用户受到带宽限制。

再次感谢WerkkreW向我指出正确的方向。


2

我相信您可以使用iptables以及更适当的squid(延迟缓存?)来做您想做的事,但是配置和管理它可能会很复杂。但是,使用乌贼绝对有可能限制每个用户的传输。不过,我从来没有亲自做过,因此我无法就设置它的具体细节提供任何建议。

您可能还会看到其他一些工具,但是其中大多数工具还会执行许多其他过滤操作,并且功能非常强大,如果您要做的只是限价转让,您可能会认为它们有些肿。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.