4
iptables-目标将数据包路由到特定接口?
我的家庭服务器有两个主要接口,eth1(标准Internet连接)和tun0(OpenVPN隧道)。我想iptables强制UID 1002拥有的本地进程生成的所有数据包都通过退出tun0,而所有其他数据包都通过退出eth1。 我可以轻松标记匹配的数据包: iptables -A OUTPUT -m owner --uid-owner 1002 -j MARK --set-mark 11 现在,我想在POSTROUTING链(可能是mangle表)中放置一些规则,以匹配标记为11的数据包并将其发送到tun0,然后是匹配所有数据包并将其发送到的规则eth1。 我找到了ROUTE目标,但这似乎只重写了源接口(除非我读错了它)。 iptables有能力做到这一点吗?我是否必须弄乱路由表(通过ip route或仅通过旧route命令)? 编辑:我认为也许我应该提供更多信息。我目前没有其他iptables规则(尽管我将来可能会创建一些规则来执行无关的任务)。同样,输出ip route为: default via 192.168.1.254 dev eth1 metric 203 10.32.0.49 dev tun0 proto kernel scope link src 10.32.0.50 85.17.27.71 via 192.168.1.254 dev eth1 192.168.1.0/24 dev eth1 proto kernel scope link src 192.168.1.73 …