如何开放 Azure 虚拟机 Ping 功能
前言
文章《使用 PsPing & PaPing 进行 TCP 端口连通性测试》中提到,ICMP 协议的数据包无法通过 Azure 的防火墙和负载均衡器,所以不能直接使用 Ping 来测试 Azure 中的虚拟机和服务的连通性。实际上,我们仍然能够通过一些特殊设置,使 ICMP 协议的数据包能够进出 Azure 中的虚拟机,来完成 Ping 测试。针对 Azure 云服务管理器 (ASM) 和 Azure 资源管理器 (ARM) 中的部署,设置方法有所不同,下文将分别进行介绍。
ASM 虚拟机的设置方法
ASM 中的虚拟机开放 Ping 功能的方法就是为其添加 ILPIP(Instance-Level Public IP,实例级公共 IP)。开启 ILPIP 后,访问虚拟机的流量不经过云服务和负载均衡器。虚拟机所有的端口都是直接暴露在公网上的,因此也就解开了对 ICMP 包传递的限制。

ASM 中的虚拟机设置 ILPIP 的途径有两种。
您可以使用 Powershell 命令,为虚拟机添加 ILPIP。具体步骤请参考:实例级公共 IP(经典)概述
您也可以在 Azure 门户中,通过页面中的选项来开启虚拟机的 ILPIP 功能。大致步骤是在 Azure 门户中选择 虚拟机(经典),紧接着选择要设置 ILPIP 的虚拟机,然后再选择 IP 地址 选项,最后在实例 IP 地址 功能中点击 开,并保存。具体位置见下图。

保存并更新需要2~3分钟。完成后重新点击 IP 地址 选项,即可在右边看到新设置的实例 IP 地址。

这样设置虽然简便,但是虚拟机的所有端口通过 ILPIP 直接面向公网,所以有一定的安全隐患。您需要在虚拟机中配置相应的防火墙规则,来增强对虚拟机的安全防护。您也可以参考后文对 NSG 的相关介绍来配置安全规则。
在默认情况下,每个订阅能够设置 5 个 ILPIP。如果需要更多,您可以与支持人员联系,请求增加 ILPIP 的配额。当然,我们更推荐部署 ARM 模式下的虚拟机。ARM 模式下每个订阅的每个区域的能获得的公共 IP 数量更多。详见:Azure 订阅和服务限制、配额和约束, 网络限制 - Azure Resource Manager。
ARM 虚拟机的设置方法
ARM 中的虚拟机开放 Ping 功能有两个配置步骤。其一是虚拟机配有公共 IP。如果只是从 Azure 中的虚拟机向外 Ping,那么只配置这一步即可。如果需要从外部网络来 Ping Azure 中的虚拟机,则需要配置虚拟机对应的 NSG 规则,使其允许 ICMP 协议包传输。
配置公共 IP
公共 IP 可以在 Azure 门户中创建虚拟机时,同时创建。如果创建虚拟机时没有配置公共 IP,您也可以在虚拟机创建好以后,再为其添加。 在创建虚拟机的第 3 步,配置可选功能中,可以新建公共 IP,或者选择已有并且可用的公共 IP。

如果虚拟机创建时没有配置公共 IP,那么在虚拟机的概述页面中,公共 IP 地址会显示 " - ",如下图:

此时,我们可以为其添加公共 IP。
在虚拟机视图中,选择 网络接口,并在右侧选择要配置公共 IP 的接口。

在网络接口视图中,选择 IP配置,并在右侧选择要求改的 IP 配置。此时在 IP 配置的修改页面就能看到 公共 IP 地址设置 了。

在 公共 IP 地址设置 中,点击 已启用,随后的步骤就与创建虚拟机同时创建公共 IP 一样了。您可以新建公共 IP,或者选择已有并且可用的公共 IP。如果是新建,还可以选择公共 IP 的 分配 方式,动态 或 静态。

最后点击 确定,并 保存,配置公共 IP 的任务就在 Azure 的任务队列中运行了。
任务完成后,就能在 IP 配置中看见获取到的公共 IP 地址了。

在虚拟机的概述中,也能看到 公共 IP 地址/DNS 名称标签 的值了。

配置 NSG 规则
NSG 规则同样可以在创建虚拟机时配置,也可以为已经部署的虚拟机配置。这里用为已部署的虚拟机配置 NSG 规则为例。
在虚拟机网络接口视图中,选择 网络安全组,并点击要配置的网络安全组。

在网络安全组视图中,点击 入站安全规则,并点击右侧的 添加。

此处添加了一个名为 AllowAll,优先级为 4096(最低优先级),源和协议都是 Any,端口范围是" * ",操作为 允许 的 NSG 规则, 完成后点击 确定。

Azure 后台任务完成后,我们就能看到这条新添加的规则了。

此时,我们就可以用 Ping 来测试这台虚拟机了。

Note
这样配置 NSG 虽然开放了 ICMP 协议的通信,但是实际上这台虚拟机所有 TCP、UDP 的端口也都暴露在了公网上,有安全隐患。
更安全的 NSG 配置
更安全的做法是,分别配置两条针对 TCP 和 UDP 的 DenyAll 的规则,优先级采用 4094 和 4095 ,然后为虚拟网络和 Azure 负载均衡器分别添加两条 AllowAll 的规则,优先级采用 4092 和 4093。最后为需要开放的端口配置更高优先级的规则。
这样既开放了需要的端口和 ICMP 规则,也又避免了其他端口被攻击的危险。如下图所示,我开放了 TCP-22 端口和 ICMP,同时允许虚拟网络和 Azure 负载均衡器与虚拟机的内部通信,其他所有访问都被 NSG 规则拒绝。如果还要添加新的端口,新建优先级高于 4092 的规则就可以了。

其实虚拟网络和 Azure 负载均衡器的规则已经在默认规则(点击 默认规则 可以查看)里自动创建了,只不过优先级很低,分别为 65000 和 65001。所以我们需要再为它们创建优先级高于 DenyAllTCP 和 DenyAllUDP 的规则。

以上介绍的是为虚拟机添加 NSG 规则。其实虚拟网络子网也可以添加 NSG 规则,这里不赘述。如果您测试时发现在虚拟机的NSG中配置的规则没有生效,您可以检查一下虚拟网络子网对应的 NSG 规则是否对其有影响。当然,虚拟机内部通常也有防火墙。例如 Windows Server 虚拟机,默认入站的 ICMP 包也是被禁止的,所以在 Ping 测试虚拟机时,也要检查一下虚拟机内部的防火墙有没有创建对应的规则。
立即访问http://market.azure.cn
如何开放 Azure 虚拟机 Ping 功能的更多相关文章
- 【虚拟机-网络IP】如何开放 Azure 虚拟机 Ping 功能
前言 文章<使用 PsPing & PaPing 进行 TCP 端口连通性测试>中提到,ICMP 协议的数据包无法通过 Azure 的防火墙和负载均衡器,所以不能直接使用 Ping ...
- 利用Azure backup备份和恢复Azure虚拟机(1)
中国区Azure最近发布了关于使用Azure Backup来备份VM服务,于3月1日正式上线,该功能对于需要对关键工作负载进行备份的用户来讲,极大的降低了操作复杂度.以前我们所使用Powershell ...
- 在 Windows Azure 虚拟机中使用 Microsoft SQL Server 安全功能
编辑人员注释:本文章由 SQL Server 团队高级项目经理 Sung Hsueh 撰写. SQL Server 的最新用法之一是利用 Microsoft 的 Windows Azure 基础结构服 ...
- Python 加持,给你更有趣的 Azure 虚拟机开关重启方法!
在程序员的世界里,有关编程语言孰优孰劣的争论从来就没有消停过,不管你更粉哪种语言,毫无疑问,每种语言都有自己擅长的领域,而一些语言因为上手简单.扩展性强.功能强大等因素,往往会比较多地出现在我们面前, ...
- Windows Azure 虚拟机备份
如果我们要在Windows Azure的虚拟机上进行一些“重要且高危”的操作,我们通常会想到使用快照或者备份功能.但是在Windows Azure上是没有虚拟机快照功能的,尽管我们可以对虚拟机的磁盘文 ...
- 使用Windows Azure PowerShell远程管理Windows Azure虚拟机
对于Windows Azure,如果你还在使用windowsazure.com门户来管理虚拟机,那就显得不怎么高上大了.Windows Azure PowerShell 是一个功能强大的脚本环境,可用 ...
- Windows Azure 不能ping通的解决方案
Windows Azure 不能ping通如何解决? 为了避免Ping Flood攻击,Windows Azure不开放对外ICMP通讯协定,所以使用ping命令我们是无法ping通的.在微软资料中心 ...
- Azure Site Recovery 通过一键式流程将虚拟机故障转移至 Azure虚拟机
Ruturaj Dhekane 云 + Enterprise 项目经理 现在,AzureSite Recovery可以通过其"灾难恢复至 Azure"功能保护您的工作负荷,并 ...
- Azure 虚拟机常见问题-上
在 Azure 虚拟机上可以运行什么? 所有订户均可在 Azure 虚拟机上运行服务器软件.此外,MSDN 订户还可以访问由 Azure 提供的特定 Windows 客户端映像. 就服务器软件来说,你 ...
随机推荐
- LeetCode记录之26——Remove Duplicates from Sorted Array
国外的表达思维跟咱们有很大差别,做这道题的时候很明显.简单说本题就是让你把有序数组中的重复项给换成正常有序的.比如 1 2 2 3换成 1 2 3 3,根本不需要考虑重复的怎么办,怎么删除重复项等等. ...
- 【算法笔记】B1022 D进制的A+B
1022 D进制的A+B (20 分) 输入两个非负 10 进制整数 A 和 B (≤230−1),输出 A+B 的 D (1<D≤10)进制数. 输入格式: 输入在一行中依次给出 3 个 ...
- POJ_2478 Farey Sequence 【欧拉函数+简单递推】
一.题目 The Farey Sequence Fn for any integer n with n >= 2 is the set of irreducible rational numbe ...
- 洛谷 P4269 / loj 2041 [SHOI2015] 聚变反应炉 题解【贪心】【DP】
树上游戏..二合一? 题目描述 曾经发明了零件组装机的发明家 SHTSC 又公开了他的新发明:聚变反应炉--一种可以产生大量清洁能量的神秘装置. 众所周知,利用核聚变产生的能量有两个难点:一是控制核聚 ...
- mysql命令查询表的个数
https://blog.csdn.net/xiao__ge/article/details/56671221 语句如下: SELECT count(TABLE_NAME) FROM informat ...
- 使用PHP并发执行任务–curl_multi应用
使用PHP并发执行任务–curl_multi应用 原网址:http://lampblog.org/category/phpdev
- PIE SDK栅格RGB渲染
1. 功能简介 RGB色彩模式是一种颜色标准,是通过对红(R).绿(G).蓝(B)三个颜色通道的变化以及它们相互之间的叠加来得到各式各样的颜色的,RGB即是代表红.绿.蓝三个通道的颜色,这个标准几乎包 ...
- RabbitMQ之消息持久化
消息的可靠性是RabbitMQ的一大特色,那么RabbitMQ是如何保证消息可靠性的呢——消息持久化. 为了保证RabbitMQ在退出或者crash等异常情况下数据没有丢失,需要将queue,exch ...
- Spark 概念学习系列之从物理执行的角度透视spark Job(十七)
本博文主要内容: 1.再次思考pipeline 2.窄依赖物理执行内幕 3.宽依赖物理执行内幕 4.Job提交流程 一:再次思考pipeline 即使采用pipeline的方式,函数f对依赖的RDD ...
- flume 自定义sink
http://flume.apache.org/FlumeDeveloperGuide.html#sink 看了 还是比较好上手的,简单翻译一下 sink的作用是从 Channel 提取 Event ...