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

3.5 KiB

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 规则的优先级

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 路由表

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 直接访问

    # 获取 NodePort
    kubectl get svc -n ingress-nginx ingress-nginx-controller
    # 然后通过节点的公网 IP + NodePort 访问
    
  2. 使用 kubectl port-forward

    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 规则但仍然无法访问