我有一台 Azure IaaS Windows 2012R2 VM,用于托管测试网站。该网站可通过主机名从外部访问。
我需要做什么才能通过 IP 地址访问同一网站?当我尝试 ping IP 地址时,我收到以下消息:
Request timed out.
当我尝试 ping 该网站的工作主机名时,我得到了
Pinging myhostname.com [nnn.nnn.nnn.nnn] with 32 bytes of data:
Request timed out.
Request timed out.
Request timed out.
Request timed out.
在虚拟机上,我尝试启用File and Printer Sharing (Echo Request ICMPv4 - In)
。我还遵循这些步骤启用IP and Domain Restrictions
,但我不确定这是否必要?我还尝试禁用 Windows 防火墙,但似乎没有任何效果。我已重新启动 VM。
答案1
Azure 的负载均衡器不支持 PING(ICMP),这就是您无法 ping 虚拟机 IP 地址的原因。您可以使用基于 tcp 的 ping 工具来实现这一点。注意:您将能够在内部对虚拟机进行 ping 操作(通过每个虚拟机的内部 IP 地址),假设它们部署到同一个 vnet/云服务中。
您绝对可以通过 IP 地址访问您的 VM。
答案2
Azure 默认在 Azure 负载均衡器端阻止 ICMP,因此您无法从 Azure 外部 ping Azure VM。这样做的原因是避免任何有针对性的 Ping/ICMP 洪水攻击,这是一种 DDoS 攻击。
但是,您可以轻松启用 ICMP 并从 Azure 外部 Ping Azure VM。您需要在 Win Server 防火墙中允许入站 ICMPv4,然后在 Azure 中设置 NSG 入站规则以接受来自“任何”源、“任何”目标和“任何”协议的流量。此后,Ping 将正常工作,以便从 Internet 访问 Azure VM。
我已多次这样做过,将 Nagios 等外部监控工具连接到我的 Win Srv VM。
如果您使用的是最新的 Win Srv 2016,您将在 Win 防火墙中看到一个名为虚拟机监控(ICMPv4)的禁用规则,您只需启用它即可。但是,在这种情况下,您还需要像上面所述那样在 Azure NSG 上打开入站。
此外,您可以使用设置的 IP 和 DNS 来 ping Azure VM。
但请注意,按照我上面描述的步骤,您的虚拟机将容易受到 Ping/ICMP 洪水攻击。
但是,Azure 外围安全无论如何都会在检测到任何此类洪水攻击时尽早介入,并可能采取诸如将原始 IP(从其中进行 Ping)列入黑名单等措施。您还可能会看到 Azure 限制所有/任何到您虚拟机的流量,除非您(或 Azure 支持)解决了该问题,甚至 Azure 支持会发出通知来帮助解决根本问题。
简而言之,不要盲目地在 Azure VM 上启用 ICMP。如果您知道请求的源 IP,请在 NSG 中指定它们(我总是这样做),并避免在 NSG 入站源中指定“任何”。
嗨嗨…