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

我运行的Linux服务器可以被广泛的用户访问,并且(由于我的上游互联网提供商采取了一些策略),我需要限制用户可以转移到一定数量的数据总量。 Linux框是我的提供者的网关。 有没有办法做到这一点?

我有一个工作iptables设置已经到位的框,如果有帮助,我有一些configuration像HTB的东西的经验。 过去我所做的一些设置的问题是,他们将用户限制在一个特定的比特率(比如20kbps),而不是在一个较长的时间段内(例如100MB /天)的总传输量。

@WerkkreW让我走上正轨。 我将要使用的解决scheme是使用鱿鱼和它的delay_poolsfunction。

基本的概念是在squid.conf设置每个主机(3类)延迟池,然后将其设置为每个用户每天允许的最大带宽。 然后,将“填充”率设置为带宽的最大值除以一天的时间,因此每个延迟池将在一天内完全填充。

最后,使用iptables我将透明地将传入的端口80上的请求从我的局域网redirect到squid,而不是直接对它们进行DNAT,以便内部networking上的用户受到带宽限制。

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

我相信你可以用iptables来做你想做的事情,更合适的做法是使用squid (delay-cache?),但是configuration和pipe理可能会很复杂。 但是,用squid来限制每个用户的传输是绝对有可能的。 虽然我从来没有亲自过,所以对于设置它的具体细节我实在无法提供任何build议。

还有一些你可能会看到的工具,但是其中大部分都做了很多其他的过滤,而且function非常全面,如果你想要做的只是限制传输,你可能会认为它们有点臃肿。

  • squidGuard的
  • Dansguardian
  • IPCop的