Azure NSG规则异常:特定公网IP无法访问K8s主节点443端口
问题分析与解决方案
看起来你遇到的问题核心在于允许规则的源IP格式配置错误,这是Azure规则配置里非常容易忽略的细节,我来帮你拆解一下:
最可能的原因:源IP未使用CIDR格式
Azure的网络规则(无论是NSG还是负载均衡器的访问控制列表)要求单个IP地址必须以CIDR后缀/32的形式填写。如果你只输入了纯IP地址(比如1.2.3.4),Azure的规则引擎无法正确识别这是单个主机的范围,导致这条允许规则根本匹配不到你指定的公网IP流量。
举个例子:你需要把源IP写成1.2.3.4/32,而不是仅1.2.3.4,这样规则才能精准匹配来自这个特定IP的所有流量。
其他需要排查的点
如果修正CIDR格式后还是不行,可以检查以下几个地方:
- 验证实际出口IP:确认你使用的特定公网IP确实是当前网络的真实出口IP(比如用搜索引擎搜“我的公网IP”),有时候会误填内网IP或者过期的动态公网IP。
- 后端服务器的NSG配置:除了负载均衡器关联的NSG,Kubernetes主节点的网卡或所属子网可能还有独立的NSG。如果这个NSG里有优先级更高的拒绝443流量的规则,也会阻断访问。
- 规则的协议与端口:确保允许规则的协议是TCP(HTTPS基于TCP),端口范围准确设置为443,没有误选UDP或其他端口。
为什么改成“互联网”能正常访问?
当你把源IP设为互联网(通常是0.0.0.0/0),这是标准的CIDR格式,规则引擎能正确识别并匹配所有公网流量,所以能正常连接。
内容的提问来源于stack exchange,提问作者Dresse
相关产品推荐
相关产品推荐

