SuperAPI AI 工具集

cloudflare-tunnel-publish

部署与运维

查看项目

更新于 10-16 01:26

技能介绍

用途:把运行在本地端口的 HTTP 服务(默认 Starchild 预览,也适用于任意 HTTP 服务)发布到用户自有域名,使用 Cloudflare Tunnel,无需公网 IP、不开放入站端口、免费 SSL。

分工:用户手动完成注册 Cloudflare 账号、购买或转移域名、创建 API Token;技能自动完成验证 Token、选择 zone、创建隧道、配置 ingress、创建 DNS、安装并启动 cloudflared、验证公网 URL。文档要求把用户当新手,逐步引导并等待确认。

主要流程:先用 request_env_input 安全接收 CLOUDFLARE_API_TOKEN(不要粘贴到聊天);运行 python3 skills/cloudflare-tunnel-publish/scripts/verify.py 校验并获取 account_id 与 zone;确定子域名与本地端口后运行 python3 skills/cloudflare-tunnel-publish/scripts/setup.py --hostname <hostname> --port <port>(默认复用已有健康隧道,可用 --new-tunnel 强制新建,可用 --app-cmd/--app-dir 记录应用启动方式);再运行 bash skills/cloudflare-tunnel-publish/scripts/keepalive.sh 启动。拆除运行 python3 skills/cloudflare-tunnel-publish/scripts/teardown.py。

保持存活:keepalive.sh 是唯一的启动与自愈脚本,幂等,探测公网 URL(而非仅看进程),失败时按需重启应用或隧道,仅在状态变化时输出。容器重启可在 workspace/setup.sh 中调用它(不要放入 setup.py);进程中途死亡可用计划任务每 2 分钟执行,命令用 cd /data/workspace && bash skills/.../keepalive.sh 的相对路径形式。一个计划任务可守护所有站点。

限制与注意:API Token 需要 Account→Cloudflare Tunnel→Edit、Zone→DNS→Edit、Zone→Zone→Read 三项权限;CNAME 目标必须是 <tunnel_id>.cfargotunnel.com;远程管理隧道不使用本地 config.yml;新建域名存在 TLD 注册局传播延迟(30 分钟至 24 小时)和 Universal SSL 签发延迟,浏览器可能报 ERR_SSL_VERSION_OR_CIPHER_MISMATCH;容器内解析器可能缓存 NXDOMAIN,验证应使用 DoH(如 https://dns.google/resolve)或 openssl s_client;加密模式应为 Full。若服务在用户自己的笔记本上,需在笔记本上安装并运行 cloudflared。未提及价格信息。