Files
agent_management/openclaw_network_check.md
2026-02-03 12:25:40 +00:00

134 lines
3.5 KiB
Markdown

# OpenClaw 网络访问问题详细检查报告
## 检查时间
2026-02-03
## 检查结果
### ✅ 已确认正常的部分
1. **NSG 规则已配置**
- 规则名称: `k8s-azure-lb_allow_IPv4_556f7044ec033071ec0dfcf7cd85bc93`
- 优先级: 501
- 访问: Allow
- 协议: Tcp
- 源地址: Internet
- 目标端口: 80, 443
- 目标地址: 40.65.173.54 ✅
2. **LoadBalancer 配置正常**
- Public IP: `40.65.173.54`
- SKU: Standard
- 状态: Succeeded
- Zones: 1, 2, 3
3. **Ingress Controller 运行正常**
- Pods: 2 个都在运行
- 监听端口: 80, 443 ✅
- Service Endpoints: 正常
4. **Kubernetes 资源正常**
- Pod: Running (2/2)
- Service: Endpoints 正确
- Ingress: 配置正确,已同步
### ❌ 问题现象
从外部网络访问 `40.65.173.54:80` 和 `443` 端口超时
### 可能的原因
虽然 NSG 规则已配置,但可能存在以下情况:
1. **规则优先级问题**
- 可能有更高优先级的 Deny 规则覆盖了 Allow 规则
- 需要检查所有 Inbound 规则的优先级顺序
2. **网络路由问题**
- 可能有路由表规则影响流量
- 需要检查 VNet 的路由配置
3. **LoadBalancer 健康检查问题**
- LoadBalancer 可能认为后端不健康
- 需要检查 LoadBalancer 的健康检查配置
4. **Azure 平台层面的限制**
- 可能有订阅级别的网络策略
- 可能有其他安全策略影响
## 建议的排查步骤
### 步骤 1: 检查所有 NSG 规则的优先级
```bash
az network nsg rule list \
--nsg-name aks-agentpool-50066007-nsg \
--resource-group mc_taiji-ai-pda_taiji-ai-pda_southeastasia \
--query "[?direction=='Inbound'].{name:name, priority:priority, access:access, destinationPortRanges:destinationPortRanges}" \
-o table
```
**重要**: 检查是否有优先级 < 501 的 Deny 规则
### 步骤 2: 检查 LoadBalancer 健康检查
在 Azure Portal 中:
1. 找到 LoadBalancer: `kubernetes`
2. 检查健康探测(Health Probes)状态
3. 检查后端池(Backend Pools)中的实例状态
### 步骤 3: 检查 VNet 路由表
```bash
az network route-table list --query "[].{name:name, resourceGroup:resourceGroup}" -o table
```
### 步骤 4: 从 Azure 内部测试
尝试从 Azure 内部的另一个资源(如另一个 VM 或 Container Instance)测试访问
### 步骤 5: 检查 Azure 订阅的网络限制
在 Azure Portal 中检查:
- 订阅的网络策略
- 资源组的网络策略
- 是否有 Azure Policy 限制网络访问
## 临时解决方案
如果急需访问,可以考虑:
1. **使用 NodePort 直接访问**
```bash
# 获取 NodePort
kubectl get svc -n ingress-nginx ingress-nginx-controller
# 然后通过节点的公网 IP + NodePort 访问
```
2. **使用 kubectl port-forward**
```bash
kubectl port-forward -n ingress-nginx svc/ingress-nginx-controller 8080:80
# 然后访问 http://localhost:8080
```
3. **检查是否有其他 LoadBalancer**
- 可能需要在 Azure Portal 中检查是否有多个 LoadBalancer
- 确认使用的是正确的 LoadBalancer
## 下一步行动
1. ✅ 已确认 NSG 规则存在
2. ⏳ 需要检查规则优先级顺序
3. ⏳ 需要检查 LoadBalancer 健康检查状态
4. ⏳ 需要从 Azure 内部测试访问
5. ⏳ 需要检查是否有其他网络限制
## 联系信息
如果问题持续,建议:
1. 在 Azure Portal 中打开支持请求
2. 提供 LoadBalancer 和 NSG 的详细信息
3. 说明已配置的 NSG 规则但仍然无法访问