无法从私有子网中的实例连接到 Internet

Cannot connect to Internet from instance in private subnet

我在 Azure 中设置了一个最小环境,其中一个实例 (Linux) 位于私有子网中,还有一个通过 IPSec 连接的虚拟网络网关。我遵循了 Azure docs 中的说明,我的设置应该与示例中的设置相同。

我在 Terraform 中完成了所有这些工作,并且使用 strongSwan 作为 VPN 客户端连接到网关。我可以毫无问题地通过 strongSwan 建立 VPN 连接。我在 FrontEnd 子网中创建了我的测试实例。为了通过 SSH 访问我的机器,我添加了另一个 NSG 规则以允许在端口 22 上进行访问。到目前为止一切正常。

我的问题是,我无法从这台机器访问互联网。

到目前为止我检查过的内容:

我是不是漏掉了什么?

编辑:忘记说实例的网卡只有私有IP了

您可能无法从该 Azure VM 正确验证互联网连接。我有与此相同的场景 question. You could try to verify this via ping bing.com on the Azure machine. It seems that some websites could not ping, however, you could access these websites directly via Web Browser or curl 从互联网下载内容。

我已经在 windows 本地桌面上使用一个 Azure VNet 建立了 P2S VPN 连接,它有一个 GatewaySubnet 和一个 VMsubnet。 VM 子网中的一个 windows 个 VM 和一个 ubuntu 个 VM。两个虚拟机都没有实例级 public IP。

一般来说,Azure VM 在同一子网本地有一个系统默认网关。此网关帮助路由来自主要网络接口的所有出站流量。如果设置了 VPN 网关,Azure 将自动生成到 P2S 内部部署子网的路由。默认情况下,effective routes 中还有一条通往 Internet 的默认路由 0.0.0.0/0

我可以在 web explorer 中访问 google.combing.com 但不能直接 ping google.com,可以在 windows VM 上 ping bing.com .

同样的情况,我也无法直接ping google.com,但可以在Linux VM 或curl www.google.com.[=24= 上ping bing.com ]

希望对您有所帮助,如果您有任何问题,请告诉我。