TRACER RECARTTunnel Doctor
Tunnel Doctor

cloudflared Docker localhost 排障

理解 Docker 网络命名空间,并从 cloudflared 容器内验证源站。

用这个案例打开本地分析器

这通常表示什么

cloudflared 跑在容器里时,localhost 和 127.0.0.1 通常指 cloudflared 这个容器自己,不会自动指向 Docker 宿主机或另一个应用容器。

它不代表什么

把应用端口发布到 Docker 宿主机,并不会让 cloudflared 容器里的 localhost 自动指向该应用。不同容器仍然有独立网络命名空间。

典型脱敏日志

ERR Unable to reach the origin service: dial tcp 127.0.0.1:8080: connect: connection refused

按顺序检查

以下是基线命令示例。Windows Service 或 Kubernetes 请打开分析器并选择实际运行环境,分析器会改用平台原生命令。

docker inspect -f '{{json .NetworkSettings.Networks}}' <cloudflared-container>docker inspect -f '{{json .NetworkSettings.Networks}}' <origin-container>docker network inspect <shared-network>docker run --rm --network container:<cloudflared-container> curlimages/curl:8.12.1 -v <origin-url>

常见误判

  • 把容器内 localhost 当成宿主机。
  • 容器之间网络不通,却继续给宿主机增加端口映射。
  • 容器路由问题却去改 Cloudflare DNS 记录。

如何确认已经恢复

  • cloudflared 和源站加入预期的共享 Docker 网络。
  • 从 cloudflared 网络命名空间能通过服务名或容器名访问源站。
  • 新的 Tunnel 请求不再出现 localhost 连接错误。

仍然不确定?

把相关 cloudflared 日志放进本地分析器。默认脱敏,不会把日志上传到 TRACER RECART 后端。

打开分析器