Pab*_*blo 7 iptables networking
我在我的无头 Ubuntu 服务器上运行 Torrent 客户端。还有许多计算机连接到此服务器,用作 Internet 网关/路由器。问题是是否可以将 iptables 配置为将来自 eth1(lan if) 的流量优先于服务器生成的本地流量?类似QOS的东西。。
有多种选择可以实现您的需求。但首先,是的,这是可能的。不过,许多可能性相当复杂。
最简单的选项之一可能是在自己的用户\组下运行 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:限制单个主机或网络掩码的速率
| 归档时间: |
|
| 查看次数: |
3247 次 |
| 最近记录: |