连接Azure VM的常用协议及各场景连接方式相关问题
Azure VM常用连接协议/方法及相关疑问解答
一、Azure VM通用连接协议总览
- ICMP:用于Ping连通性验证,默认被网络安全组(NSG)和系统防火墙拦截
- RDP(TCP 3389):Windows VM图形化远程桌面访问协议
- WinRM(TCP 5985/5986):Windows VM命令行/脚本远程管理协议
- SSH(TCP 22):Linux VM远程命令行管理协议
- SMB(TCP 445):文件共享传输协议
- HTTPS(TCP 443):各类Azure管控服务、第三方工具通信的通用端口
二、具体疑问解答
1. Ping相关
Ping确实基于ICMP协议实现,要正常Ping通Azure VM,需要同时放开VM所属网络安全组的ICMP入站规则,以及VM操作系统内部防火墙的ICMP入站规则,两者缺一不可。
2. RDP与WinRM的区别
二者都是Windows平台的远程管理协议,核心差异如下:
- 端口不同:RDP默认走TCP 3389,WinRM默认走TCP 5985(HTTP)、5986(HTTPS)
- 应用场景不同:RDP是图形化交互协议,为用户提供完整的远程桌面操作环境,适合手动交互式运维;WinRM是命令行级别的管理协议,无图形界面输出,主要用于脚本执行、批量自动化运维,是各类运维自动化工具的底层依赖
- 权限逻辑不同:RDP登录后会创建独立的用户桌面会话,WinRM连接后默认在后台执行命令,不会占用桌面会话资源
3. Azure DevOps相关任务的依赖协议
你提到的WindowsMachineFileCopy、PowerShellOnTargetMachines两个官方任务,完全依赖WinRM协议实现对目标VM的访问,不会使用RDP:
- 首先会从DevOps代理侧发起WinRM连接请求到目标VM对应端口,完成身份校验后建立通信通道
WindowsMachineFileCopy任务是在WinRM通道建立后,调用Robocopy工具完成文件传输
如果目标VM禁用了WinRM、没放开对应入站端口,不管用微软托管代理还是自托管代理,这两个任务都无法正常运行。
4. AzCopy跨存储账户与VM的传输方式
分两种场景:
- 如果你在外部机器(本地/其他服务器)运行AzCopy向VM传输文件:需要先打通外部机器到VM的SMB(445端口)或者其他文件传输通路,AzCopy本身只是负责和存储账户交互,到VM的传输走你自己搭建的网络通路
- 如果你直接在目标VM内部运行AzCopy和存储账户同步文件:全程走VM主动出站到Azure存储的HTTPS(443端口)连接,不需要给VM放开任何入站端口,只要VM能正常出站访问Azure存储服务即可。
5. Azure Automation Runbook的连接原理
Azure Automation访问禁用所有入站的加固VM,用的是VM主动出站建立长连接的模式,和Azure DevOps的入站连接逻辑完全不同:
- 首先会在VM内部通过Azure扩展部署Automation混合工作者代理(或者Arc代理,取决于VM是Azure原生还是非Azure机器)
- 代理部署完成后会主动向Azure Automation服务发起HTTPS(443端口)的出站连接,建立持久通信通道
- 所有Runbook的执行指令都是Azure侧通过这个已经建立的出站通道推送给VM的,全程不需要向VM发起任何入站请求,也不需要启用WinRM/RDP服务,所以即便是全禁入站的加固VM也能正常被管控。
内容的提问来源于stack exchange,提问作者Blue Clouds
相关产品推荐
相关产品推荐

