![带有自定义链的 iptables mangle 表](https://linux22.com/image/75598/%E5%B8%A6%E6%9C%89%E8%87%AA%E5%AE%9A%E4%B9%89%E9%93%BE%E7%9A%84%20iptables%20mangle%20%E8%A1%A8.png)
我在 mangle 表中创建了一个新链:
$IPTABLES -N newchain -t mangle
之后,我将所有 80 端口数据包放入该新链中:
$IPTABLES -t mangle -A PREROUTING -i eth1 -p tcp --dport 80 -j newchain
之后我标记了该链的数据包:
$IPTABLES -t mangle -A newchain -j MARK --set-mark 11
我该如何解析那些后面标有 11 的数据包?
$IPTABLES -t nat -A PREROUTING -m mark --mark 11 -p tcp --dport 80 -j DNAT --to-destination 172.32.1.2
不起作用。因为在 mangle > 中的 newchain 之后,数据包将过滤 FORWARD,但不会过滤到 nat。
答案1
确定路由后应用 NAT。所以你需要使用 POSTROUTING 表 -
$IPTABLES -t nat -A POSTROUTING -m mark --mark 11 -p tcp --dport 80 -j DNAT --to-destination 172.32.1.2
我不确定为什么您还需要继续 tcp/80 的资格,因为您已经在此基础上对它们进行了标记。
$IPTABLES -t nat -A POSTROUTING -m mark --mark 11 -j DNAT --to-destination 172.32.1.2