相关疑难解决方法(0)

iptables - 目标是将数据包路由到特定接口?

我的家庭服务器有两个主要接口,eth1(一个标准的互联网连接)和tun0(一个 OpenVPN 隧道)。我想iptables用来强制 UID 1002 拥有的本地进程生成的所有数据包通过 退出tun0,所有其他数据包通过 退出eth1

我可以轻松标记匹配的数据包:

iptables -A OUTPUT -m owner --uid-owner 1002 -j MARK --set-mark 11
Run Code Online (Sandbox Code Playgroud)

现在,我想在 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 …
Run Code Online (Sandbox Code Playgroud)

routing iptables

27
推荐指数
2
解决办法
10万
查看次数

标签 统计

iptables ×1

routing ×1