Cloudflare Tunnel 修复报告 - 2026-02-08
问题描述
访问 mbe-dev.hi-maker.com 和 mbe.hi-maker.com 时出现 Error 1033: Cloudflare Tunnel error。
错误信息:
- Cloudflare 无法解析请求
- Tunnel 连接失败
问题诊断
1. 容器状态检查
docker ps -a --filter "name=cloudflared"
结果:
mbe-cloudflared: 运行中(但连接失败)mbe-tunnel-dev: 运行正常
2. 日志分析
docker logs mbe-cloudflared --tail 30
发现的关键错误:
ERR Failed to dial a quic connection error="failed to dial to edge with quic: timeout: no recent network activity"
ERR Connection terminated error="there are no free edge addresses left to resolve to"
问题原因:
- Tunnel 容器无法建立到 Cloudflare Edge 的连接
- QUIC 协议连接超时
- 可能是网络临时问题或连接状态异常
解决方案
快速修复(已执行)
步骤 1:重启 Tunnel 容器
cd d:\Mises\mbe-monorepo
docker restart mbe-cloudflared
步骤 2:等待连接建立
Start-Sleep -Seconds 10
docker logs mbe-cloudflared --tail 20
验证结果
重启后的日志显示:
INF Registered tunnel connection connIndex=0 connection=e602da61-2646-48ad-b291-612ccd3e640b event=0 ip=198.18.0.107 location=sjc07 protocol=quic
INF Registered tunnel connection connIndex=1 connection=dec290ce-4941-4212-853d-8c3fee0bdcb4 event=0 ip=198.18.0.17 location=sjc06 protocol=quic
INF Updated to new configuration config="{\"ingress\":[{\"hostname\":\"mbe-dev.hi-maker.com\",...}]}"
测试访问:
Invoke-WebRequest -Uri "https://mbe-dev.hi-maker.com/api/health" -UseBasicParsing
结果:✅ 200 OK
{"status":"healthy","service":"mises-behavior-engine"}
当前状态
✅ 已修复
mbe-dev.hi-maker.com- 正常访问- Tunnel 连接已建立(2 个连接)
- 配置已更新并生效
📋 Tunnel 配置
当前 mbe-cloudflared 容器配置的路由:
mbe-dev.hi-maker.com→http://mbe-api:8000dev-app.hi-maker.com→http://mbe-pwa-dev:80admin.hi-maker.com→http://mbe-admin-ui-dev:3000aigc-dev.hi-maker.com→http://mbe-aigc-committee-dev:3002
预防措施
1. 监控 Tunnel 状态
定期检查 Tunnel 连接状态:
# 检查容器状态
docker ps --filter "name=cloudflared"
# 查看日志
docker logs mbe-cloudflared --tail 20
# 检查连接
docker logs mbe-cloudflared | Select-String "Registered tunnel connection"
2. 自动重启策略
当前配置已启用 restart: unless-stopped,容器会自动重启。
3. 使用修复脚本
如果再次出现问题,可以使用修复脚本:
cd d:\Mises\mbe-monorepo
.\scripts\fix-cloudflare-tunnel.ps1
常见问题排查
如果 Tunnel 再次断开连接
检查网络连接
Test-NetConnection -ComputerName "one.dash.cloudflare.com" -Port 443重启容器
docker restart mbe-cloudflared检查 Token 是否有效
- 访问 Cloudflare Dashboard: https://one.dash.cloudflare.com/
- 检查 Tunnel 状态
- 确认 Token 未过期
查看详细日志
docker logs mbe-cloudflared --tail 50
如果重启无效
完全重建容器
docker stop mbe-cloudflared docker rm mbe-cloudflared docker compose -f docker-compose.cloudflare.yml up -d检查防火墙设置
- 确保允许出站连接到 Cloudflare(端口 443, 7844)
- 检查是否有代理设置影响连接
验证 Token
- 在 Cloudflare Dashboard 重新生成 Token
- 更新
.env文件中的CLOUDFLARE_TUNNEL_TOKEN - 重启容器
相关文档
总结
✅ 问题已解决 - 通过重启 mbe-cloudflared 容器,Tunnel 连接已恢复正常。
修复时间: 2026-02-08 13:56 UTC
修复方法: 重启容器
状态: 正常运行