为什么不需要在本机安装 cloudflared?

当前架构

您的项目已经使用 Docker 容器 来运行 Cloudflare Tunnel,这是更好的方式:

✅ 当前配置(推荐)

Docker 容器运行 cloudflared
├── mbe-cloudflared (生产版 Tunnel)
└── mbe-tunnel-dev (开发版 Tunnel)

优点:

  • ✅ 与 Docker 服务集成,统一管理
  • ✅ 容器自动重启,更稳定
  • ✅ 不占用 Windows 服务资源
  • ✅ 配置通过环境变量管理,更灵活
  • ✅ 可以同时运行多个 Tunnel(开发版 + 生产版)

❌ 本机安装 cloudflared(不推荐)

如果在本机安装 cloudflared 作为 Windows 服务:

  • ❌ 与 Docker 容器冲突
  • ❌ 需要单独管理 Windows 服务
  • ❌ 配置分散,难以维护
  • ❌ 无法利用 Docker 的网络隔离

问题分析

当前问题

从 Cloudflare Dashboard 看到:

  • mises-engine-dev - ✅ HEALTHY(开发版,正常运行)
  • mbe-prod - ❌ DOWN(生产版,未运行)

原因: mbe-cloudflared Docker 容器使用的 Token 对应的是开发版 Tunnel,而不是生产版。

解决方案

不需要安装 cloudflared,只需要:

  1. 更新 .env 文件中的 Token

    CLOUDFLARE_TUNNEL_TOKEN=<生产版 mbe-prod 的 Token>
    
  2. 重启 Docker 容器

    docker restart mbe-cloudflared
    
  3. 验证连接

    docker logs mbe-cloudflared --tail 20
    

正确的配置方式

开发版 Tunnel(已配置正确)

# docker-compose.dev.yml
cloudflared-dev:
  container_name: mbe-tunnel-dev
  environment:
    - TUNNEL_TOKEN=${CLOUDFLARE_TUNNEL_TOKEN_DEV}  # 开发版 Token

生产版 Tunnel(需要修复)

# docker-compose.cloudflare.yml
cloudflared:
  container_name: mbe-cloudflared
  environment:
    - TUNNEL_TOKEN=${CLOUDFLARE_TUNNEL_TOKEN}  # 应该使用生产版 Token

当前 .env 文件中的 Token 是开发版的,需要更新为生产版 Token。

快速修复步骤

  1. 获取生产版 Token

  2. 更新 .env 文件

    CLOUDFLARE_TUNNEL_TOKEN=<生产版 Token>
    
  3. 重启容器

    docker restart mbe-cloudflared
    
  4. 验证

    docker logs mbe-cloudflared --tail 20
    # 应该看到 "Registered tunnel connection"
    

总结

您不需要在本机安装 cloudflared!

只需要:

  1. ✅ 更新 .env 文件中的 Token 为生产版 Token
  2. ✅ 重启 Docker 容器 mbe-cloudflared
  3. ✅ 验证 Cloudflare Dashboard 中 mbe-prod 状态变为 HEALTHY

这样就能让 mbe.hi-maker.com 正常访问了。