Skip to content

FlyEnv 中的 Cloudflare Tunnel

Cloudflare Tunnel 是 Cloudflare 提供的服务,可通过仅出站连接的隧道将本地服务连接到公共主机名,无需在路由器上进行端口转发或拥有公共 IP,因此非常适合演示和远程访问开发环境。FlyEnv 的 Cloudflare Tunnel 模块无需修改路由器或防火墙,即可将本地服务暴露到公共主机名。只需连接一次 Cloudflare 账户,添加将子域名映射到本地 host:port 目标的 DNS 规则,FlyEnv 会通过 Cloudflare API 自动创建隧道、写入 CNAME 记录并推送入口规则。每条隧道都作为独立的受管进程运行,并拥有自己的日志。

FlyEnv Cloudflare Tunnel 模块概览

隧道配置

从侧边栏打开 Cloudflare Tunnel 并添加隧道。设置对话框需要填写以下四项:

  • cloudflared 二进制文件: 隧道进程使用 cloudflared 可执行文件,因此必须先安装至少一个 Cloudflared 模块版本。从下拉菜单选择版本;如果尚未安装,FlyEnv 会提示先完成安装。
  • API Token: 具备账户隧道和 DNS 管理权限的 Cloudflare API 令牌,FlyEnv 使用它访问 Cloudflare API v4。
  • Account ID: 拥有该区域的 Cloudflare 账户 ID。
  • Zone / Zone ID: 隧道将使用其 DNS 记录和子域名的域名区域。

启动时,FlyEnv 会在账户中查找名为 FlyEnv-Tunnel-<token hash> 的远程隧道;如果不存在则自动创建,然后以脱离终端的后台进程运行 cloudflared tunnel run --token <token>。无需维护本地隧道配置文件:所有配置都保存在 Cloudflare,并完全通过 API 管理。

版本管理器界面

DNS 规则到本地服务

每条隧道记录都可展开为 DNS 规则表。每条规则将公共主机名映射到本地服务:

  • 子域名和区域: 公共主机名,例如 demo.example.com
  • 协议和目标: 使用 httphttps;对于 https 目标,可使用 MkCert 模块生成的证书;同时填写应接收流量的本地 host:port,通常是 本地站点与 HTTPS 模块中的站点。

保存规则后,FlyEnv 会通过 Cloudflare API 同步写入两部分配置:创建或更新代理 CNAME 记录,将主机名指向 <tunnelId>.cfargotunnel.com;并推送隧道入口规则,将每个主机名路由到对应的 http(s)://host:port 目标,同时设置 Host 标头,最后以 404 规则处理未匹配的请求。编辑或删除规则时,CNAME 和入口条目也会相应更新。

服务与配置界面

要完整了解如何通过 主机指南 创建并暴露站点,请参阅 使用 Cloudflare Tunnel 进行本地开发指南

隧道日志

每条隧道都会在 FlyEnv 数据目录中保存自己的输出日志和错误日志,并与 pid 文件放在一起。内置日志查看器按隧道列出日志文件,您无需离开应用即可确认与 Cloudflare 边缘节点的连接是否建立,并诊断 DNS 或入口规则问题。

站点与工具界面

继续阅读实用指南、解决方案、演示或社区文章。

兼容性说明

Cloudflare Tunnel 模块支持 macOS、Windows 和 Linux。它需要 Cloudflared 模块提供 cloudflared 二进制文件,以及具备所选区域隧道和 DNS 管理权限的 Cloudflare API 令牌。由于全部配置存储在 Cloudflare 中,直接在 Cloudflare 控制台修改同一隧道可能会影响 FlyEnv 管理的内容;建议将 FlyEnv 作为这些隧道的唯一配置来源。支持的平台和安装包请查看下载页面及发行说明。