我已经在其他 VPS 提供商上安装了 OpenVPN,并想试用 Google 的。我喜欢 Google 的性价比,尤其是因为我可以通过手机启动机器,而无需每次都登录。
我已经到了客户端连接但无法上网的地步。
我已经打开了 OpenVPN 端口的防火墙。
我在虚拟机上启用了 IP 转发。
客户端在连接时获得 IP、网关、DNS——所有正确的东西。
我怀疑我必须构建一个路由器和/或一个路由,以便数据包从 OpenVPN 实例发送到世界。我已经很好地阅读了文档,但我被困住了——我还不是网络专家,我还在学习。通过阅读,我似乎可以将网络转换为他们所谓的“遗留”结构,但我希望能够克服这一挑战并了解正在发生的事情。我认为这是因为网络被分成许多不同的子网;相比之下,防火墙后面只有 1 个网络(即 Legacy)。
看着我脑海中的地图,我的 OpenVPN 正在将数据发送到它的子网网关,但我认为数据包从那里被丢弃了。我必须需要从子网网关到 Internet 的路由吗?甚至是子网和互联网之间的完整路由器?
就像我说的,我以前用过 OpenVPN 虚拟机,没问题。因此,我非常确信问题在于配置 Google Cloud 网络。
感谢您的任何提示。
这修复了它:
仍然不知道为什么我必须这样做,也许 Google 的 Debian 映像比标准的 Diebian 实例更加锁定。
无需更改其他 Google Cloud 网络。
你需要检查一些东西。
检查 /etc/sysctl.conf 中是否有以下指令
net.ipv4.ip_forward = 1
确保防火墙正在转发从 VPN 接口上的客户端接收到的流量
#OpenVPN interface=tun0 iptables -A FORWARD -i tun0 -j ACCEPT
确保您正在伪装传出流量
#WAN Interface on OpenVPN server is eth1 iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE