首页 > 解决方案 > iptables 端口转发规则将流量从 WireGuard TUN 接口路由到 eth0

问题描述

我使用 WireGuard (WG) 作为 VPN,并且只通过它路由某些基于端口的流量。在隧道的入口端,流量首先到达 eth0,然后进入 WG TUN 接口 wg0,因此以下规则适用于入口转发:

-A PREROUTING -d 192.#.#.# -i eth0 -p tcp -m tcp --dport 7054 -j DNAT --to-destination 10.#.#.#:7054

但是,我无法使用以下规则将流量从 TUN 接口路由到隧道出口侧的 eth0,我认为由于“隧道”是虚拟的,流量首先必须穿过 eth0,所以 PREROUTING 无效???我不确定如何考虑关于路由序列的 TUN 接口,即这仍然是 PREROUTEING 还是 POSTROUTING 或中间的某个地方?

-A PREROUTING -d 10.#.#.# -i wg0 -p tcp -m tcp --dport 7054 -j DNAT --to-destination 192.#.#.#:7054

我尝试了以下操作以查看 PREROUTING 是否适用于 wg0 接口,但它没有。我也用 POSTROUTING 试过这个,但不是解决方案。

iptables -t raw -A PREROUTING -i eth0 -j NOTRACK

标签: iptablesportforwardingtaptun

解决方案


推荐阅读