Pom*_*oma 5 networking nat routing iptables port-forwarding
我有一些像这样的端口转发规则
iptables -t nat -A PREROUTING -p tcp --dport 46000 -j DNAT --to-destination 172.16.8.2:46000
iptables -A FORWARD -p tcp -d 172.16.8.2 --dport 46000 -j ACCEPT
Run Code Online (Sandbox Code Playgroud)
我想知道是否有一种方法可以在一行而不是两行中添加新的转发规则,这样我就不必两次输入相同的数据。我的意思是这样的规则:
是否可以?
每个 DNAT \xe2\x80\x93 仅使用一个命令来完成此操作是不可能的,除非......见下文。但可以只输入一次数据。
\n\n让我们为进行 DNAT 转发的连接定义标记范围 1024\xe2\x80\x932047。
\n\nmangle 中每个 DNAT 匹配条件各一行:
\n\niptables -t mangle -A PREROUTING -p tcp --dport 46000 -j MARK --set-mark 0x400\niptables -t mangle -A PREROUTING -p tcp --dport 46001 -j MARK --set-mark 0x401\niptables -t mangle -A PREROUTING -p tcp --dport 46002 -j MARK --set-mark 0x402\nRun Code Online (Sandbox Code Playgroud)\n\nnat 中的每个命令一个:
\n\niptables -t nat -A PREROUTING -m mark --mark 0x400 -j DNAT \\\n --to-destination 172.16.8.2:46000\niptables -t nat -A PREROUTING -m mark --mark 0x401 -j DNAT \\\n --to-destination 172.16.8.2:46001\niptables -t nat -A PREROUTING -m mark --mark 0x402 -j DNAT \\\n --to-destination 172.16.8.2:46002\nRun Code Online (Sandbox Code Playgroud)\n\n一条命令可用于过滤器中的所有内容:
\n\niptables -A FORWARD -m mark --mark 0x400/0x400 -j ACCEPT\nRun Code Online (Sandbox Code Playgroud)\n\n-j DNATBTW:如果不更改,则无需指定目的端口。
编辑1:
\n\n如果您不明确允许连接,或者您同意允许所有经过 DNAT 处理的内容,那么您就可以做到这一点。在这种情况下,你会坚持你的
\n\niptables -t nat -A PREROUTING -p tcp --dport 46000 -j DNAT --to-destination 172.16.8.2:46000\nRun Code Online (Sandbox Code Playgroud)\n\n但只有一条 FORWARD 规则适用于所有规则:
\n\niptables -A FORWARD -m conntrack --ctstate DNAT -j ACCEPT\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
20003 次 |
| 最近记录: |