2

我在 Azure 中设置了一个最小环境,其中一个实例 (Linux) 在一个私有子网中,一个虚拟网络网关通过 IPSec 连接。我按照Azure 文档中的说明进行操作,我的设置应该与示例中的设置相同。

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

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

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

  • DNS解析工作正常
  • Linux 将其默认路由设置为 Azure 网关地址 (192.168.1.1)
  • NIC 连接到 NSG,该 NSG 只有出站流量的默认规则(允许所有出站流量)
  • 没有自定义路由规则
  • 根据Azure docs SNAT/PAT 应该在我的场景中自动应用。

我错过了什么吗?

编辑:我忘了提到实例的网卡只有一个私有 IP。

4

1 回答 1

2

您可能无法从该 Azure VM 正确验证 Internet 连接。我和这个问题有同样的情况。您可以尝试ping bing.com在 Azure 机器上验证这一点。有些网站似乎无法ping通,但是,您可以通过Web Browser或curl直接访问这些网站以从互联网上下载内容。

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

通常,Azure VM 在同一子网中本地有一个系统默认网关。此网关有助于路由来自主网络接口的所有出站流量。如果设置了 VPN 网关,Azure 将自动生成到 P2S 本地子网的路由。默认情况下,有效路由0.0.0.0/0中还有一条默认的上网路由。

在此处输入图像描述

我可以在网络资源管理器中访问google.comandbing.com但不能直接 ping google.com,可以bing.com在 windows VM 上 ping 。 在此处输入图像描述

同样的情况,我也不能直接ping google.com,但是可以ping bing.comLinux VM或者curl www.google.com

在此处输入图像描述

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

于 2019-03-07T09:52:36.340 回答