以示例说明:

A主机外网IP为:100.1.1.1

B主机外网IP为:100.1.1.2

他们通过隧道 tunnel 进行连接(注意如果为wireguard,请在client和server端放行0.0.0.0/0,另外注个小技巧,在wg-quick进行启动的时候,会自动写默认路由,如果需要禁用他,你可以在配置文件的Interface进行设置参数Table = off即可)。

A主机tunnel分配的IP为:10.0.0.1

B主机tunnel分配的IP为:10.0.0.2

目的: 使用B主机转发A主机的端口,并且A主机可以接受到源IP,如(1.1.1.1)访问 100.1.1.2:80->10.0.0.1:80 并且10.0.0.1 可以看到源IP 1.1.1.1

我们仅需在B主机配置iptables转发规则如:

iptables -t nat -A PREROUTING -d 100.1.1.2 -p tcp -m tcp --dport 80 -j DNAT --to-destination 10.0.0.1

A主机配置静态路由如:

ip ru add from 10.0.0.0/24 lookup 101 && ip ro add default via 10.0.0.2 table 101

另外记的配置相关内核参数