Azure VM入站被NSG阻止怎么查?
时间:2026-05-25 10:20:16 104浏览 收藏
当您在 Azure 中无法通过 SSH 或 RDP 连接到虚拟机,并收到“Network Security Group 阻止了入站”的提示时,问题几乎总是源于 NSG 入站规则的配置陷阱——可能是子网或网卡级 NSG 的双重叠加、高优先级拒绝规则意外覆盖了端口 22/3389 的允许策略、源 IP 范围限制过于严格,或是被 Bastion、防火墙等高级网络组件悄然绕过;本文手把手带您用 Azure 门户快速定位绑定层级、逐条剖析规则优先级、借助 Network Watcher 实时诊断拦截根源,甚至提供安全可控的临时解绑验证法,助您在几分钟内精准揪出那个“沉默的拒绝者”,彻底告别盲目试错。

如果您尝试通过 SSH 或 RDP 连接到 Azure Linux 或 Windows 虚拟机,但连接失败并提示“Network Security Group 阻止了入站”,则问题很可能源于网络安全组(NSG)的入站规则配置不当。以下是定位和验证 NSG 入站拦截的具体操作路径:
一、检查关联的网络安全组及其应用层级
NSG 可同时绑定到子网和网络接口(NIC),且入站流量按“子网 NSG → NIC NSG”顺序评估,任一环节拒绝即中断连接。需确认 VM 实际使用的 NSG 及其绑定位置。
1、登录 Azure 门户,进入目标虚拟机概览页。
2、在左侧菜单选择“网络”,查看“网络接口”列表中对应 NIC 的名称。
3、点击该 NIC 名称,进入 NIC 详情页,向下滚动至“设置”区域,点击“网络安全组”,确认是否已分配 NSG;若显示“无”,说明仅子网级 NSG 生效。
4、返回资源组或搜索栏输入子网名称,打开子网配置页,在“设置”中点击“网络安全组”,确认子网是否绑定 NSG。
5、分别打开子网级和 NIC 级 NSG 的规则页,重点查看“入站安全规则”标签页下的所有规则。
二、验证端口 22(SSH)或 3389(RDP)是否被显式拒绝
NSG 默认含一条优先级为 65500 的 DenyAllInBound 规则,若无更高优先级(数值更小)的允许规则覆盖,该默认规则将直接阻断所有外部入站流量。
1、在 NSG 的“入站安全规则”页,按“优先级”列升序排列(从小到大)。
2、查找是否存在优先级低于 65500(如 1000、2000)且“源端口范围”为 *、“目标端口范围”为 22(Linux)或 3389(Windows)、“协议”为 TCP、“操作”为 Allow 的规则。
3、检查是否存在任何“操作”为 Deny、目标端口包含 22 或 3389、且优先级高于(数值小于)上述 Allow 规则的条目。
4、特别注意“源地址前缀”字段:若填写为特定 IP 或 CIDR(如 203.0.113.0/24),而您的当前公网 IP 不在此范围内,则连接会被静默拒绝。
三、使用 Network Watcher 的 NSG 诊断功能实时验证
NSG 诊断可模拟真实流量,明确指出某次连接请求是被哪条规则允许或拒绝,无需手动逐条比对规则优先级与匹配条件。
1、确保目标 VM 所在区域已启用 Azure Network Watcher(通常默认启用)。
2、在 Azure 门户顶部搜索“网络观察程序”,进入服务页。
3、在左侧“网络诊断工具”中选择“NSG 诊断”。
4、填写诊断参数:源类型选“公共 IP”,输入您本地设备的公网 IP 地址;目标类型选“虚拟机”,选择目标 VM;协议选 TCP;目标端口填 22 或 3389;首选 IP 版本选 IPv4。
5、点击“运行诊断”,等待结果返回。输出将清晰显示“规则匹配详情”,包括触发的规则名称、优先级、动作(Allow/Deny)及匹配依据。
四、检查 NSG 是否被其他资源间接覆盖或绕过
某些部署模型或高级网络功能可能使 NSG 规则失效或被替代,例如通过 Azure Bastion 访问时,流量不经过公网 IP 和关联 NSG;或启用了服务终结点后,部分流量路由路径发生变化。
1、检查 VM 是否配置了 Azure Bastion:若已部署且通过 Bastion 连接,则 NSG 对 Bastion 流量无影响,此时应排查 Bastion 自身配置而非 NSG。
2、检查是否启用“服务终结点”(如 Microsoft.Storage):该功能本身不影响 SSH/RDP,但若误配用户定义路由(UDR)将 0.0.0.0/0 指向虚拟设备,可能导致入站流量被重定向并丢弃。
3、检查是否启用了“Azure Firewall”或第三方防火墙:若 NSG 后方部署了 Azure Firewall,需同步检查其应用规则集合(Application Rule Collection)和网络规则集合(Network Rule Collection)是否放行对应端口。
五、临时禁用 NSG 进行最小化验证
为排除 NSG 是唯一阻碍因素,可在测试环境中移除 NSG 绑定以快速验证。此操作不删除规则,仅解除关联,风险可控且可逆。
1、进入目标 NIC 设置页,点击“网络安全组”,在右侧面板点击“无”链接。
2、点击“保存”提交更改,系统会提示该操作将移除所有 NSG 关联。
3、等待约 60 秒让配置生效,立即尝试从本地发起 SSH 或 RDP 连接。
4、若连接成功,即可 100% 确认原 NSG 规则是根本原因;此时应恢复 NSG 绑定,并基于前述步骤精调规则。
今天带大家了解了的相关知识,希望对你有所帮助;关于文章的技术知识我们会一点点深入介绍,欢迎大家关注golang学习网公众号,一起学习编程~
-
501 收藏
-
501 收藏
-
501 收藏
-
501 收藏
-
501 收藏
-
142 收藏
-
501 收藏
-
104 收藏
-
424 收藏
-
249 收藏
-
238 收藏
-
253 收藏
-
140 收藏
-
240 收藏
-
465 收藏
-
324 收藏
-
490 收藏
-
- 前端进阶之JavaScript设计模式
- 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
- 立即学习 543次学习
-
- GO语言核心编程课程
- 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
- 立即学习 516次学习
-
- 简单聊聊mysql8与网络通信
- 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
- 立即学习 500次学习
-
- JavaScript正则表达式基础与实战
- 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
- 立即学习 487次学习
-
- 从零制作响应式网站—Grid布局
- 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
- 立即学习 485次学习