分享

虚拟机无法访问外网?我教你啊!

 灿烂文字 2019-05-29

看完雪儿和大派的聊天后,问题来了:作为聪明如你的小哥哥,该如何着手解决这个问题?虚拟机运行正常,你甚至可以远程桌面访问虚拟机,但从虚拟机里无法访问外网......

一般这都是配置问题造成的,因此常规解题思路(按顺序)应该是:

1. 检查网络流量是否被网络安全组(NSG)阻止

2. 检查网络流量是否被VM防火墙阻止

3. 检查网络流量是否被DNS服务器阻止

一起来按顺序看看分别要怎么做吧!


步骤1:检查网络流量是否被网络安全组(NSG)阻止

在 Azure 虚拟机侧边栏中选中'网络',查看网络安全组出站端口规则,是否禁用公共 Internet 出站访问。如果处于禁用状态,请修改或删除该规则并保存。

例如下图所示:“AllowInternetOutBound”为 NSG 默认规则,允许虚拟机访问外部网络。“DenyInternetOutBound”为新添加的 NSG 规则,禁止访问外部网络。由于“DenyInternetOutBound”的优先级高于“AllowInternetOutBound”的优先级,所以最终会使用“DenyInternetOutBound”规则,禁止虚拟机访问外部网络。

注意:NSG 将按照优先级顺序来检查规则。所有 NSG 都包含一组默认规则,默认规则无法删除,但由于给它们分配的优先级最低,可以用创建的规则来重写它们。所以检查 NSG 规则时请注意优先级。

更多有关 NSG 的详细信息,请参阅什么是 NSG 以及如何使用门户管理 NSG 

步骤2:检查网络流量是否被 VM 防火墙阻止

请首先禁用防火墙,然后测试结果。如果问题得到解决,则验证防火墙设置,然后重新启用防火墙。

步骤3:检查自定义 DNS 服务器 IP 地址的有效性

在 Azure 虚拟机侧边栏中选中'网络',点击该虚拟机使用的网络接口,在网络接口侧边栏中选中 DNS 服务器,查看正在使用的 DNS 服务器信息。

如果在网络接口中使用的了自定义的 DNS 服务器,请检查 DNS 服务器 IP 地址是否有效,并适用于当前环境。可以尝试修改 IP 地址,使用 Azure 默认 DNS 服务器或公共 DNS 服务器去测试,如:“8.8.8.8”(由 Google 提供,全球通用 DNS)或者“168.63.129.16”(该地址为 Azure 默认 DNS 服务器地址)。

注意:为云服务/网络接口指定 DNS 服务器时,其优先级高于为虚拟网络指定的DNS服务器。如果更改已部署的虚拟网络/虚拟机的 DNS 设置,则需重新启动每个受影响的VM,所做的更改才会生效。

同样如果在虚拟网络中使用自定义 DNS 服务器,也可以尝试使用一些公共 DNS 服务器,例如:“8.8.8.8”(由 Google 提供,全球通用 DNS),或者选择“默认值”,使用由 Azure 提供的默认 DNS 服务器(IP 地址为“168.63.129.16”)。

如果使用 Azure 默认 DNS 服务器或其他公共 DNS 服务器后虚拟机可以访问外网,说明问题与之前使用的 DNS 服务器 IP 地址有关,请修改为有效的 IP 地址或者使用 Azure 默认 DNS 服务器。

通过上述三个步骤的排查,大部分与虚拟网络访问有关的疑难杂症应该就可以顺利解决了。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多