125 lines
3.5 KiB
Markdown
125 lines
3.5 KiB
Markdown
# NSG 规则检查结果
|
||
|
||
## 检查时间
|
||
2026-02-03
|
||
|
||
## NSG 规则详情
|
||
|
||
### 自定义规则(优先级从高到低)
|
||
|
||
1. **优先级 500**: `k8s-azure-lb_allow_IPv4_d39272f7f57ed937951650d93992ad77`
|
||
- 访问: Allow
|
||
- 协议: Tcp
|
||
- 源地址: Internet
|
||
- 目标端口: 80
|
||
- 目标地址: 所有
|
||
|
||
2. **优先级 501**: `k8s-azure-lb_allow_IPv4_556f7044ec033071ec0dfcf7cd85bc93`
|
||
- 访问: Allow
|
||
- 协议: Tcp
|
||
- 源地址: Internet
|
||
- 目标端口: 80, 443
|
||
- 目标地址: 40.65.173.54
|
||
|
||
### 默认规则
|
||
|
||
- **优先级 65000**: AllowVnetInBound - 允许 VNet 内部流量
|
||
- **优先级 65001**: AllowAzureLoadBalancerInBound - 允许 Azure LoadBalancer 流量
|
||
- **优先级 65500**: DenyAllInBound - 拒绝所有其他入站流量(但会被优先级更高的规则覆盖)
|
||
|
||
## 规则分析
|
||
|
||
✅ **NSG 规则配置正确**
|
||
- 没有更高优先级的 Deny 规则
|
||
- 规则 500 和 501 都允许从 Internet 访问 80/443 端口
|
||
- 规则优先级顺序正确(500 < 501 < 65000 < 65500)
|
||
|
||
## LoadBalancer 配置
|
||
|
||
### 健康检查探针
|
||
- **HTTP 探针**: `a2eecfe068cbe4c1b936d6b0880bee0b-TCP-80`
|
||
- 协议: Http
|
||
- 端口: 32519 (NodePort)
|
||
- 间隔: 5 秒
|
||
- 探测次数: 2
|
||
- 状态: Succeeded ✅
|
||
|
||
- **HTTPS 探针**: `a2eecfe068cbe4c1b936d6b0880bee0b-TCP-443`
|
||
- 协议: Https
|
||
- 端口: 31651 (NodePort)
|
||
- 间隔: 5 秒
|
||
- 探测次数: 2
|
||
- 状态: Succeeded ✅
|
||
|
||
### 后端池
|
||
- 后端池名称: `kubernetes`
|
||
- Endpoints: `10.224.0.37`, `10.224.0.66` (Ingress Controller Pods)
|
||
|
||
## 测试结果
|
||
|
||
### ✅ 成功的测试
|
||
- 从集群内部访问 `40.65.173.54:80` → 返回 308 重定向 ✅
|
||
- 从集群内部访问 `40.65.173.54:443` → TLS 握手成功 ✅
|
||
|
||
### ❌ 失败的测试
|
||
- 从外部网络访问 `40.65.173.54:80` → 连接超时 ❌
|
||
- 从外部网络访问 `40.65.173.54:443` → 连接超时 ❌
|
||
- 从外部网络访问 `test-openclaw-dns.taijiagnet.com` → 连接超时 ❌
|
||
|
||
## 问题分析
|
||
|
||
虽然 NSG 规则配置正确,但外部访问仍然超时。可能的原因:
|
||
|
||
1. **NSG 规则生效延迟**
|
||
- Azure NSG 规则可能需要几分钟才能完全生效
|
||
- 建议等待 5-10 分钟后再次测试
|
||
|
||
2. **外部网络到 Azure 的路径问题**
|
||
- 可能是 ISP 或网络运营商的限制
|
||
- 可能是地理位置或网络路由问题
|
||
- 建议从不同网络环境测试
|
||
|
||
3. **Azure 平台层面的限制**
|
||
- 可能有订阅级别的网络策略
|
||
- 可能有资源组级别的限制
|
||
- 需要检查 Azure Policy
|
||
|
||
4. **LoadBalancer 配置问题**
|
||
- 虽然健康检查显示 Succeeded,但可能后端实例状态异常
|
||
- 需要在 Azure Portal 中检查 LoadBalancer 的详细状态
|
||
|
||
## 建议操作
|
||
|
||
1. **等待规则生效**
|
||
- 等待 5-10 分钟让 NSG 规则完全生效
|
||
- 然后再次测试
|
||
|
||
2. **检查 LoadBalancer 状态**
|
||
- 在 Azure Portal 中打开 LoadBalancer `kubernetes`
|
||
- 检查"后端池"中的实例状态
|
||
- 检查"健康探测"的详细状态
|
||
|
||
3. **从不同网络测试**
|
||
- 使用手机热点
|
||
- 使用其他网络环境
|
||
- 排除本地网络问题
|
||
|
||
4. **检查 Azure Policy**
|
||
- 在 Azure Portal 中检查订阅的网络策略
|
||
- 检查资源组的网络策略
|
||
|
||
5. **联系 Azure 支持**
|
||
- 如果问题持续,建议打开 Azure 支持请求
|
||
- 提供 LoadBalancer 和 NSG 的详细信息
|
||
|
||
## 结论
|
||
|
||
NSG 规则配置**完全正确**,没有阻止访问的规则。问题可能在于:
|
||
- 规则生效延迟
|
||
- 外部网络到 Azure 的连接问题
|
||
- Azure 平台层面的其他限制
|
||
|
||
建议等待几分钟后再次测试,或从不同网络环境测试。
|
||
|
||
|