减慢通过Linux路由器传递的单个连接?


8

我们有一台Linux服务器充当我们办公室的路由器/防火墙。有时,有人会上传占用我们所有带宽的大文件。我不想实施任何复杂的规则或流量整形,但是我想知道是否有一种方法可以当场降低单个连接的速度?我找到了tcpnice,但是它并没有减慢测试过程中的传输速度。

Answers:


6

如果流量整形不能同时对Shell和活动上传进行适当的流量整形(我认为可以,但不确定),则可以:

a)在两个端口上运行ssh-您可以优先处理一个用于文件传输的端口和一个用于交互工作的端口。

b)限制ssh的总速率-唯一的问题是,如果您填充了链接的上载容量,并且如果将ssh的速率限制为50kbps(这将迫使用户使用其他某种协议进行较大的文件传输),则ssh可以很好地交互工作)

c)如果可以的话,优先考虑源地址上的流量

同样,流量整形应该使流量更加平衡,以使单个连接不会垄断整个链路。

编辑:这是一个使用bash脚本的示例。它提到ssh确实将TOS设置为交互式到交互式,因此我认为Wondershaper可以利用这一点。

如果您除了Wondershaper之外还需要其他选择,请确保您查看Shorewallpyshape

Shorewall相当成熟,在灵活性,功能性和简单性之间取得了很好的平衡。


4

Wondershaper可以创造奇迹,并且设置起来非常容易。除此之外,您可以找到一些userland程序来执行此操作。在Linux中,有Trickle,可能有Windows的等效项。

但是实际上,您希望流量整形,人们会忘记运行该程序,等等。仅将上传限制为稍微小于您的全部容量,可能会带来很多好处。


1
流量整形的主要问题是AFAIK无需等待,就可以将通过SFTP / SCP上传的文件与交互式SSH会话区分开。我想确定交互式SSH会话的优先级,但是这样做也将优先考虑我的上传,从而
破坏

2
我相信ssh通过使用TOS TCP / IP标头将交互式使用(ssh)与非交互式(scp / sftp)区别开来,wondershaper会使用它。
Alex

不幸的是,Putty(交互式SSH客户端)和Filezilla(文件传输SFTP客户端)都未设置TOS TCP / IP标志。因此,我的防火墙无法区分它们。
davr 2010年

Wondershaper也已经8岁了……似乎是互联网时代的永恒。
davr 2010年

2

看看iptables(8)联机帮助页中的connrate。您可以通过将其放入适当的tc类或drop或tarpit或任何适合您的方法来匹配连接速率,并降低已上载太快的连接的速度。


1

您是否考虑过设置反向Squid代理并设置延迟池?您也可以使用iptables的limit指令来执行此操作。

我对您的请求的一个问题是,您似乎想开始限制已经建立的连接的传输速率,这将非常困难,因为我能想到的所有事情都将要开始在连接器上运行。新的连接,并将保留现有的连接。

我必须同意alex的观点,即您可能需要某种流量整形器,您要查看的是每秒数据包,因为交互式外壳程序的值将比普通文件传输的值小得多。

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.