优先考虑来自 LAN 计算机的流量

Pab*_*blo 7 iptables networking

我在我的无头 Ubuntu 服务器上运行 Torrent 客户端。还有许多计算机连接到此服务器,用作 Internet 网关/路由器。问题是是否可以将 iptables 配置为将来自 eth1(lan if) 的流量优先于服务器生成的本地流量?类似QOS的东西。。

And*_*iær 4

有多种选择可以实现您的需求。但首先,是的,这是可能的。不过,许多可能性相当复杂。

最简单的选项之一可能是在自己的用户\组下运行 torrent 守护程序。然后使用 iptables 用标志标记来自该用户\组的所有流量。然后让 tc 过滤该标志并将其放入低优先级队列中。请查看此wiki底部的想法。

对于您所要求的,您是否只需要两个队列(图1),一个低优先级,一个高优先级。尽管坚持使用更接近此示例的内容可能会更好。您可以根据需要采用该示例,只需删除带有 nat 的部分,并将默认标记设置为低于您将用于守护进程生成的流量的标记值。

因此,对于我的建议,您可以使用类似iptables -A OUTPUT -t mangle -m owner --uid-owner ZZZZ -j MARK --set-mark 6ZZZZ 的用户标识符。

设置标志的另一种方法可能是使用iptables -A OUTPUT -t mangle -m owner --uid-owner ZZZZ -j CLASSIFY --set-class X:Y其中 X 和 Y 是类标识符,ZZZZ 是用户标识符。

图。1:

+---------+
| root 1: |
+---------+
     |
+------------+
| class 1:1  |
+------------+
  |      |    
+----+ +----+ 
|1:10| |1:11| 
+----+ +----+
Run Code Online (Sandbox Code Playgroud)

最好的可能是每个固件标记都有一片叶子。但我现在最好的建议是,阅读并尝试理解上面提到的示例,以适应您的需求。如果您有任何疑问,请添加。

上面提到的示例中,当您想要编写用于标记或分类流量的 iptables 规则时,理解这一部分(图 2 )很重要吗?有关它的简短解释以及外观略有不同的图表,请查看此

图2:

First you have to understand how packet traverse the filters with iptables:

        +------------+                +---------+               +-------------+
Packet -| PREROUTING |--- routing-----| FORWARD |-------+-------| POSTROUTING |- Packets
input   +------------+    decision    +---------+       |       +-------------+    out
                             |                          |
                        +-------+                    +--------+   
                        | INPUT |---- Local process -| OUTPUT |
                        +-------+                    +--------+
Run Code Online (Sandbox Code Playgroud)

这将为您指明正确的方向:

规则、指南和方法

Linux 高级路由和流量控制 HOWTO:限制单个主机或网络掩码的速率

交通控制之旅:现实世界场景

iptables教程1.2.2