服务器与大带宽专家 · 持牌IDC/CDN/ISP服务商
简米科技官网JIANMI TECH
资讯 2026-10-19 简米科技 3,670 字 9 分钟阅读

Azure虚拟机IIS部署后如何通过公网访问?,公网IP配置方法详解

导读要让Azure虚拟机上的IIS能被公网访问,核心就三件事:网络安全组放行端口、虚拟机具备公网IP并保持运行、IIS监听绑定正确,缺了任何一环,外部请求都会在半路被打回,下文直接按操作顺序拆解,你照着检查一遍就能定位问题,Azure虚拟机IIS部署后如何通过公网访问?先看这三层很多朋友在把网站部署到Azure的W……

要让Azure虚拟机上的IIS能被公网访问,核心就三件事:网络安全组放行端口、虚拟机具备公网IP并保持运行、IIS监听绑定正确。缺了任何一环,外部请求都会在半路被打回,下文直接按操作顺序拆解,你照着检查一遍就能定位问题。

Azure虚拟机IIS部署后如何通过公网访问?先看这三层

很多朋友在把网站部署到Azure的Windows虚拟机后,浏览器输入公网IP却迟迟打不开页面,这事不复杂,但容易忽略细节,业内专家的普遍判断是,八成的"无法访问"都出在网络安全组规则和IIS绑定这两个位置,下面按从外到内的顺序说。

网络安全组是否允许80端口入站

Azure虚拟机创建时,默认会生成一个网络安全组(NSG),它相当于虚拟机外层的防火墙,NSG规则没放行,就算IIS配置得再完美,流量也进不来。

检查入口在Azure门户:进入虚拟机资源 → 左侧菜单点击"网络" → 查看"入站端口规则",如果你要访问的是HTTP网站,就必须有一条专门放行TCP 80的规则,默认情况下,Azure的新虚拟机只会放行RDP的3389端口和SSH的22端口,80端口不会自动开放。

添加规则的操作路径:网络页面 → "添加入站端口规则" → 源选"Any",源端口范围留""(表示任何端口),目标选"Any",目标端口范围填"80",协议选"TCP",操作为"Allow",优先级设置一个小于4096的数字(比如300),保存后等十几秒规则生效,再刷新浏览器试试。

需要注意优先级数字越小越优,如果你已经添加了规则还是不通,就要看规则优先级是否被更高优先级的拒绝规则挡住,尤其是源端口范围别理解错了那是指发送方的端口,保持""即可。

公网IP与虚拟机的绑定关系

Azure虚拟机的公网IP和物理网卡之间不是直接绑定的,公网IP在虚拟机内部用网卡命令(ipconfig)通常看不到,Azure平台会把公网IP通过NAT方式映射到虚拟机的私有IP地址上。

这意味着:IIS站点绑定地址时,可以绑定所有未分配地址(也就是""),也可以绑定当前网卡的私有IP(比如10.0.0.4),这样公网流量到达Azure网关后再转发给私有IP,就能正常命中网站,反过来,如果你在IIS里手动填了Azure门户上显示的公网IP地址,这个IP在虚拟机内部根本不存在,反而会导致访问失败,这个误区放到后面章节详细讲。

Azure虚拟机IIS部署后如何通过公网访问?,公网IP配置方法详解

Windows系统防火墙别漏了

NSG允许之后,Windows自带的防火墙也要放行TCP 80,虽然某些Azure市场镜像会预置规则,但不少场景下系统防火墙默认阻止入站。

验证方法:在虚拟机内打开PowerShell,执行Get-NetFirewallRule -DisplayName "HTTP",或者直接在新窗口中运行Test-NetConnection localhost -Port 80看本机是否有程序在监听,如果Windows防火墙没放行80,执行下面的命令即可:

New-NetFirewallRule -DisplayName "HTTP 80" -Direction Inbound -Protocol TCP -LocalPort 80 -Action Allow

Azure虚拟机无法通过公网访问的排查清单

当页面打不开时,别急着重装IIS,按顺序排查往往三分钟就找到原因,Azure虚拟机无法通过公网访问的案例中,有相当一部分其实是虚拟机处于停止(已停止分配)状态,Azure上的VM如果被停止,公网IP可能已被释放(除非你绑定了预留IP),网站自然无法访问。

先确认以下基础项:

  • 虚拟机运行状态显示为"运行中"
  • 公网IP地址存在,且不是空的
  • 该公网IP没有与另一台VM的IP冲突
  • 虚拟机网卡启用了
  • IIS服务(W3SVC)处于启动状态

从公网到虚拟机的链路验证

在你自己的本地电脑上,用命令行工具做一步预检,打开CMD或PowerShell执行:

tcping <公网IP> 80

如果显示无法连通,那问题就锁定在网络层面,接下来查NSG规则和Windows防火墙,如果tcping显示端口开放,则说明问题出在IIS绑定或站点配置上。

这里有个容易混淆的点:ping不通不等于网站不能访问,ping走的是ICMP协议,NSG默认会丢弃ICMP,所以即使网站正常,ping也可能超时,判断网站通不通,要用浏览器访问公网IP或使用tcpping工具探测80端口,直接用浏览器输入

Azure虚拟机IIS部署后如何通过公网访问?,公网IP配置方法详解

http://公网IP是更省事的验证方式。

Azure门户网络工具辅助诊断

Azure门户提供了现成的诊断工具,在虚拟机的"网络"页面,点击"验证入站流量"或"排查连接问题",选择目标端口和源IP地址,平台会自动模拟并告诉你哪条规则放行了流量、哪条规则拒绝了,这是眼下最省力的排查手段,比自己逐条翻NSG规则直观得多。

IIS站点绑定与公网IP的常见误区

很多人的IIS配置看起来正常,网站绑定和端口都对了,但还是访问不了,问题往往就出在绑定的IP地址上。

Azure VM IIS公网访问设置的具体操作

打开IIS管理器的方式:在Windows虚拟机里,按Win键输入"inetmgr"回车,进入左侧"网站"节点,右键你的站点,选择"绑定",再选http协议双击,此时IP地址下拉列表里会列出"所有未分配"、虚拟机的私有IP和回环地址,建议选择"所有未分配",端口填80,主机名留空。

保存绑定后,在浏览器里访问http://公网IP,正常情况下就会弹出IIS欢迎页,如果弹出的是错误页,直接看C:\inetpub\logs\LogFiles\W3SVC文件夹下的日志,里面记录了访问请求和返回码,403错误通常是权限或默认文档问题,404则是站内路径问题,503往往是应用池已停止。

为什么在IIS里绑定公网IP反而访问不了

因为Azure的公网IP在虚拟机内部根本不存在,它和虚拟机的网卡IP没有任何关系,你在IIS绑定界面的IP地址列表里选不到那个公网IP,即使手动输入也会在保存时报错,正确理解是:Azure网关负责收公网流量,再转给虚拟机内网IP,IIS只需监听所有网卡或内网IP即可。

为了加深印象,这里用一个简明的表格说明常见的配置组合:

Azure虚拟机IIS部署后如何通过公网访问?,公网IP配置方法详解

绑定形式 IIS监听地址 公网访问效果
所有未分配 + 80端口 0.0.0:80 正常,最推荐
私有IP + 80端口 0.0.4:80 正常,因为Azure网关转发到该IP
公网IP + 80端口 输入公网IP保存时报错 无法生效
localhost + 80端口 0.0.1:80 只能本机访问,外部不可达

域名访问需要额外准备什么

如果你不打算用IP直连,而是想用域名访问,两条配置缺一不可:一是DNS厂商处把域名A记录解析到Azure VM的公网IP,二是在IIS站点绑定里设置主机名,例如www.example.com,注意主机名要与你申请的域名完全一致,站内若还有跳转其他域名的逻辑,也要一并调整。

关于Azure VM公网访问的常见问题解答

Azure虚拟机IIS部署后如何通过公网访问?80端口已添加规则还是打不开

按序检查三处:先确认IIS站点的绑定地址不是"公网IP"或"localhost",改为"所有未分配";然后在虚拟机内打开浏览器访问http://localhost,能打开说明IIS正常,问题在Windows防火墙或NSG;最后回到Azure门户的"网络"页,点"验证入站流量"模拟TCP 80请求,看平台给出的放行结果,多数情况下,问题出在系统防火墙未放行80端口。

Azure虚拟机无法通过公网访问,是不是和公网IP被释放有关

与虚拟机运行状态直接相关,Azure提供两种公网IP类型,其中按需付费的动态公网IP在虚拟机停止或删除后会释放,重新开机可能拿到不同IP,如果你用固定IP访问,VM停止后就会断,解决方法是分配一个"静态"公网IP并绑定到虚拟机的网络接口,或使用标准版的公网IP资源,再看NSG规则是否依然有效。

用公网IP访问Azure IIS一直出现超时,但本机访问正常

这个现象说明IIS和Windows防火墙没有问题,问题出在Azure平台到虚拟机的链路,检查NSG的入站规则是否放行了TCP 80,注意规则目标端口范围是否写成了"80-80"且协议选对了TCP,有的用户在协议里选成了"Any",反而出现规则冲突,虚拟机的子网也可能关联了另一个NSG,如果子网级别的NSG阻止了流量,虚拟机网卡上的NSG就算放行也无济于事,两个NSG必须同时放行,网络链路上任何一道关卡都不应放过,这是Azure VM公网访问始终适用的排查原则。

分享本文
本文为 简米科技官网 原创,已由运维技术专家审核。转载请注明来源:原文链接
售前咨询 服务热线 售后 邮箱