Google Compute Engine上的OpenVPN – 我错过了什么路线?

我已经在其他VPS提供商上安装了OpenVPN,并且想要试用Google的。 我喜欢谷歌的价格/性能,特别是因为我可以从我的手机上旋转机器而无需每次login。

我已经达到了客户端连接的地步,但不能上网。

我打开了防火墙的OpenVPN端口。
我在虚拟机上启用了IP转发。
客户端连接时获得IP,网关,DNS – 所有正确的东西。

我怀疑我必须build立一个路由器和/或一个路由,以便数据包从OpenVPN实例到世界。 我已经阅读了很好的文档,但是我被卡住了 – 我还不是networking专家,还在学习。 通过阅读,看起来我可以将networking转化为他们所说的“传统”结构,但是我希望能够克服这个挑战并理解发生了什么。 我认为这是因为networking被分成许多不同的子网。 相比之下防火墙只有1个networking(即Legacy)。

在我看来,我的OpenVPN将数据发送到它的子网的网关,但是从那里我认为数据包会被丢弃。 我需要从子网网关到互联网的路由吗? 甚至是子网和互联网之间的全路由器?

就像我说过的,我之前使用过OpenVPN虚拟机,没问题。 所以我非常有信心,这个问题在于configurationGoogle Cloudnetworking。

感谢您的任何提示。

这固定了它:

iptables -t nat -I POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE 

仍然不知道为什么我必须这样做,也许Google的Debian图像比标准的Diebian实例更locking。

没有其他Google云networking需要更改。

你需要检查几件事情。

  1. 检查/etc/sysctl.conf中是否有以下指令

    net.ipv4.ip_forward = 1

  2. 确保防火墙正在转发从VPN接口上的客户端收到的stream量

    #OpenVPN interface=tun0 iptables -A FORWARD -i tun0 -j ACCEPT

  3. 确保你伪装出去的stream量

#WAN Interface on OpenVPN server is eth1 iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE