用途:排查 Zeabur 部署中代理端口与服务实际监听端口不一致导致的问题,例如 dial tcp 10.x.x.x:3000: i/o timeout、dial tcp 10.x.x.x:80: connection refused,以及服务无 HTTP 监听时长期返回 502 的情况。
主要能力:区分三种典型故障——端口期望不匹配、无监听的无头服务、端口转发未开启;给出对应的诊断命令与修复方向。
使用方式:始终用 npx zeabur@latest 调用 CLI,不要直接用 zeabur 或其他安装方式;若没有 npx,先安装 Node.js。 诊断端口转发与实际转发端口: npx zeabur@latest service network --id SERVICE_ID 查看容器实际监听端口: npx zeabur@latest service exec --id SERVICE_ID -- netstat -tlnp 再核对代理预期端口(Caddyfile/nginx.conf)与容器暴露端口(Dockerfile EXPOSE)。
常见不匹配:代理期望 :3000 而容器为 nginx 默认 :80,需把模板端口改为 80;代理期望 :80 而应用在 :3000,需改为 3000。模板端口配置示例: ports:
- id: web port: 3000 # Match what container actually exposes type: HTTP
无头服务(502 无监听):服务未监听任何 HTTP 端口(如聊天网关、后台 worker、消息队列消费者),但模板声明了 HTTP 端口。可加轻量 HTTP 健康检查服务器,在启动脚本中于主进程前运行,端口必须与模板 spec.ports[].port 一致。
端口转发未生效:检查 npx zeabur@latest service port-forward --id SERVICE_ID,必要时加 --enable 启用,再用 service network 验证转发端点。
限制:资料未提供完整的模板 YAML 参考、日志排查细节与定价信息,相关配置需参考 zeabur-template、zeabur-deployment-logs 技能;具体端口号与命令参数以实际环境为准。