我在家里托管了一个 Minecraft 服务器,用来与朋友一起玩,他们都使用该服务器通过 OpenVPN 服务器连接。
OpenVPN 服务器的 IP 为 (AAAA),VPN 本身的 IP 范围为 10.8.1.0/24。Minecraft 服务器的 VPN IP 为 10.8.1.2,可通过端口 25566 访问
到目前为止;您需要连接到 VPN 才能与服务器交互,但我希望我的朋友能够连接到 AAAA:25566。
到目前为止;这是我的 UFW,before.rules
ufw allow proto tcp from any to 159.203.94.186 port 25566
before.rules
*nat
:PREROUTING ACCEPT [0:0]
-A PREROUTING -i eth0 -d 159.203.94.186 -p tcp --dport 25566 -j DNAT --to-destination 10.8.1.2:25566
# setup routing
-A POSTROUTING -s 10.8.1.2 ! -d 10.8.1.2 -eth0 -j MASQUERADE
COMMIT
到目前为止,连接已接通但未在 10.8.1.2 处收到,或者来自 10.8.1.2 的回复未返回到 AAAA 或发出。
答案1
这个问题有答案:
https://unix.stackexchange.com/questions/55791/port-forward-to-vpn-client
这是最终有效的配置:
#/etc/ufw/before.rules
*nat
:PREROUTING ACCEPT [0:0]
-A PREROUTING -i eth0 -d 159.203.94.186 -p tcp --dport 25566 -j DNAT --to-destination 10.8.1.2:25566
# setup routing
-A POSTROUTING -d 10.8.1.2 -p tcp --dport 25566 -j SNAT --to-source 10.8.1.1
#-A POSTROUTING -s 10.8.1.2 ! -d 10.8.1.2 -eth0 -j MASQUERADE
COMMIT