可从以下问题获得背景信息:如何使Google Cloud VM将Minecraft流量转发到OpenVPN客户端?
我目前有一个以“ tap”模式设置的OpenVPN网络,其中Google VM作为服务器,而运行Minecraft服务器的Raspberry Pi 3客户端。我想通过将Pi 3替换为新的openVPN客户端来将其替换为Pi 4。
我成功地为所有机器设置了openVPN配置,Pi 4可以ping通云虚拟机和其他客户端,反之亦然。
为了从Pi 3转到Pi 4,我执行了以下命令:
# iptables -F
# iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 25565 -j DNAT --to-destination 10.8.0.6:25565
# iptables -A FORWARD -p tcp -d 10.8.0.6 --dport 25565 -j ACCEPT
# iptables -A POSTROUTING -t nat -s 10.8.0.6 -o eth0 -j MASQUERADE
# iptables -t nat -A POSTROUTING -d 10.8.0.6 -o tap0 -j MASQUERADE
请注意,Pi 3的本地IP是10.8.0.3
,而Pi 4的是10.8.0.6
我使用保存设置iptables-save
并重新启动。但是,nmap将端口25565显示为VM的“关闭”状态,并且我无法连接Minecraft客户端。
当我重做上述步骤10.8.0.3
而不是10.8.0.6
并使用Pi 4的Pi 3配置文件时,就可以连接了。
这是输出iptables-save
:
# Generated by iptables-save v1.6.0 on Sun Dec 1 08:08:18 2019
*filter
:INPUT ACCEPT [269:342903]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [246:49036]
-A FORWARD -d 10.8.0.6/32 -p tcp -m tcp --dport 25565 -j ACCEPT
COMMIT
# Completed on Sun Dec 1 08:08:18 2019
# Generated by iptables-save v1.6.0 on Sun Dec 1 08:08:18 2019
*nat
:PREROUTING ACCEPT [26:6833]
:INPUT ACCEPT [7:482]
:OUTPUT ACCEPT [22:1420]
:POSTROUTING ACCEPT [22:1420]
-A PREROUTING -i eth0 -p tcp -m tcp --dport 25565 -j DNAT --to-destination 10.8.0.3:25565
-A PREROUTING -i eth0 -p tcp -m tcp --dport 25565 -j DNAT --to-destination 10.8.0.6:25565
-A POSTROUTING -s 10.8.0.3/32 -o eth0 -j MASQUERADE
-A POSTROUTING -d 10.8.0.3/32 -o tap0 -j MASQUERADE
-A POSTROUTING -s 10.8.0.6/32 -o eth0 -j MASQUERADE
-A POSTROUTING -d 10.8.0.6/32 -o tap0 -j MASQUERADE
COMMIT
# Completed on Sun Dec 1 08:08:18 2019
diff
除了私钥和时间戳之外,这两个配置文件中的:
216c216
< DNS:rpi4
---
> DNS:picraft
因为您尚未刷新nat
表,并且由于DNAT
规则的匹配部分相同,所以前面附加的规则(--to-destination 10.8.0.3:25565
)将生效,而后面附加的规则()将被--to-destination 10.8.0.6:25565
忽略。
因此,也不仅仅是iptables -F
(-t filter
),而且iptables -F -t nat
(或iptables-restore
来自/usr/share/iptables/empty-filter.rules
和/usr/share/iptables/empty-nat.rules
)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句