我需要通过 Wireguard 隧道转发来自 VPS 的端口,但允许 IP 数量有限。此隧道不接受 0.0.0.0/0,只接受 10.xxx/24。因此,我不仅需要 DNAT,还需要 SNAT 来更改源 IP,以便允许数据包进入隧道。
您能提供一个 iptables 代码片段吗?或者任何其他转发流量的方法。
DNAT 不起作用:Wireguard 隧道后面的目标主机不接收数据包(使用 python3 -m http.server 和 tcpdump 测试)。
我需要通过 Wireguard 隧道转发来自 VPS 的端口,但允许 IP 数量有限。此隧道不接受 0.0.0.0/0,只接受 10.xxx/24。因此,我不仅需要 DNAT,还需要 SNAT 来更改源 IP,以便允许数据包进入隧道。
您能提供一个 iptables 代码片段吗?或者任何其他转发流量的方法。
DNAT 不起作用:Wireguard 隧道后面的目标主机不接收数据包(使用 python3 -m http.server 和 tcpdump 测试)。
基本 NAT(例如将“内部”源 IP 隐藏在 NAT 后面)需要 SNAT 规则:
为了将端口转发到“外部”目的地,您需要一个 DNAT 规则:
实际上,这个问题的解决方案相当复杂:https://www.procustodibus.com/blog/2023/11/wireguard-port-forward-from-internet-multi-hop/#connection-marking
我决定不使用它,因为它很难维护。