Skip to content
English

访问链路检查 ​

当客户端无法访问 FinClaw 时,按从外到内的顺序逐层排查访问链路。

1. 入口网关 ​

bash
curl -v http://<host>:26100/health

确认 API Gateway(26100)可达、TLS(如启用)正常、JWT 校验未拦截合法请求。

2. 入站对话链路 ​

入站请求路径为:api-gateway -> ag-ui-server -> orchestrator -> ai-infra-rs -> delivery。逐跳确认:

bash
curl http://localhost:26103/health   # ag-ui-server
curl http://localhost:26102/health   # orchestrator
curl http://localhost:26450/health   # ai-infra-rs

3. 基础设施连通 ​

确认 PostgreSQL(26110)、TimescaleDB(26111)、NATS(26112)、Redis(26114)等可达。完整端口见 部署组件。

4. 防火墙与端口 ​

单机 ​

bash
firewall-cmd --list-ports    # RHEL/CentOS
ufw status                   # Ubuntu

放行 26100 对外,261xx-265xx 内部。

K8s ​

bash
kubectl -n <ns> get svc           # 看 NodePort / LoadBalancer
kubectl -n <ns> get networkpolicy  # NetworkPolicy 排查

CLAW_FLEET_MANAGER_BASE_PORT 动态端口段 26463-26549 在 K8s NodePort 模式下需预留。

5. SELinux ​

现象 ​

容器无法写入卷、bwrap 拒绝执行、FinSAFE/hermes-adapter 启动失败。

排查 ​

bash
getenforce                          # 当前模式
ausearch -m avc -ts recent          # 最近 AVC 拒绝

处理 ​

bash
setenforce 0                        # 临时切 Permissive(重启失效)

或定制 SELinux 策略。FinSAFE/hermes-adapter 需要 --privileged 与 SELinux 互斥,推荐生产用 permissive 模式 + 审计日志。

6. 容器网络 ​

单机 ​

bash
docker network inspect chatkit-network
docker exec <a> ping <b>
docker exec <a> nslookup identity-service

K8s ​

bash
kubectl -n <ns> exec -it <pod> -- nslookup identity-service
kubectl -n kube-system get pods -l k8s-app=kube-dns    # CoreDNS

跨命名空间:<svc>.<ns>.svc.cluster.local。

7. TLS 与证书 ​

bash
openssl s_client -connect <host>:26100

常见问题 ​

  • 自签证书:浏览器警告、SDK 报 x509: certificate signed by unknown authority
  • 证书链不完整:补全 intermediate CA
  • 内网代理 MITM 证书:容器需注入 CA(NODE_EXTRA_CA_CERTS、REQUESTS_CA_BUNDLE、Rust SSL_CERT_FILE)

8. DNS 解析 ​

单机 ​

docker-compose.yml 的 dns: 段指向宿主机或内部 DNS。

K8s ​

CoreDNS ConfigMap 自定义 stub domain:

bash
kubectl -n kube-system edit configmap coredns

内网场景 ​

内部 DNS 添加 registry.finogeeks.internal 解析。

参考文档 ​

Digital Ecosystem Infrastructure.