博客
Cloudflare Tunnel 远程开发完全配置指南
无需开放端口、管理 DNS 或配置路由器,即可从任何地方访问你的 Mac 开发服务器。Cloudflare Tunnel 让远程开发变得切实可行。
继续查看该栏目下的产品与工程更新。
浏览此分类如果你想从本地网络之外访问 Mac 开发环境——咖啡店、机场、另一座城市——你需要一条通过互联网到达你机器的安全通道。传统方案(端口转发、动态 DNS、VPN)在开发者使用场景中都存在显著缺陷。
Cloudflare Tunnel 提供了一种更好的模型:你的 Mac 主动建立到 Cloudflare 网络的出站连接,远程客户端通过 Cloudflare 连接。无需在路由器上开放端口、无需管理 DNS、无需配置防火墙规则。
本指南介绍如何为远程开发搭建 Cloudflare Tunnel,特别是通过 Tactic Remote 访问 Claude Code 的场景。
Cloudflare Tunnel 的工作原理
架构非常直观:
要点:
- Mac 发起隧道出站连接到 Cloudflare。不会在公网端口上监听。
- Cloudflare 分配一个 URL(例如
https://random-words.trycloudflare.com),通过隧道路由到你的 Mac。 - 流量端到端加密,使用 TLS。
- 路由器无需任何配置——不需要端口转发、不需要 UPnP、不需要 DMZ。
这与暴露端口有本质区别。使用端口转发时,你的 Mac 接受来自整个互联网的入站连接。使用 Cloudflare Tunnel 时,只有经过 Cloudflare 认证的流量才能到达你的 Mac。
前置条件
- macOS 14 (Sonoma) 或更高版本(Mac 应用集成所需)
- Homebrew 已安装
- cloudflared — Cloudflare 的隧道客户端
安装 cloudflared:
验证安装:
快速隧道不需要 Cloudflare 账号。trycloudflare.com 域名免费且无需注册。
通过 Tactic Remote Mac 应用配置
Mac 应用会自动处理大部分 Cloudflare Tunnel 配置。
步骤 1:启用 Cloudflare Tunnel
在 Mac 应用的设置中:
- 将 Cloudflare Tunnel 开关切换为启用
- 应用会使用正确的配置启动
cloudflared - 隧道 URL 出现(例如
https://bright-river-abc123.trycloudflare.com)
后台运行的命令:
--protocol h2mux 参数使用 HTTP/2 多路复用建立隧道连接,为 WebSocket 流量提供更好的性能。
步骤 2:设置 API Key
这是 Cloudflare 连接的必需项。 当你的服务器可从互联网访问时,必须对连接进行认证。
Mac 应用会生成一个 32 字符的随机 API Key。你也可以自行设置。从 iPhone 连接时需要此密钥——它通过 WebSocket 握手的 Sec-WebSocket-Protocol 头发送。
步骤 3:配置你的 iPhone
在 iPhone 上的 Tactic Remote 中:
- 进入连接设置
- 切换到 Cloudflare 模式
- 输入 Mac 应用中显示的隧道 URL
- 输入 API Key
或者扫描 Mac 应用中的二维码,其中编码了隧道 URL 和 API Key。
步骤 4:测试连接
- 将 iPhone 切换到蜂窝网络(关闭 WiFi 以确认没有意外使用局域网)
- 打开 Tactic Remote
- 确认连接成功
- 创建或打开一个会话
- 发送一条测试命令
如果一切正常,就配置完成了。只要 cloudflared 保持运行,隧道 URL 就会持续有效。
Tactic Remote 如何使用隧道
当 Cloudflare Tunnel 处于活动状态时,通信路径会发生变化:
局域网模式: iPhone → WiFi → Mac(端口 8765)— 直连 WebSocket Cloudflare 模式: iPhone → 蜂窝/WiFi → Cloudflare 边缘节点 → 隧道 → Mac(端口 8765)— 通过隧道的加密 WebSocket
从 iPhone 应用的角度来看,唯一的区别是 URL:
- 局域网:
ws://192.168.1.100:8765 - Cloudflare:
wss://bright-river-abc123.trycloudflare.com
wss:// 前缀表示 WebSocket Secure(加密)。手机与 Cloudflare 之间、以及 Cloudflare 与 Mac 之间的所有数据都是加密的。
安全注意事项
隧道保护了什么
- 无公网端口 — Mac 的防火墙不需要任何入站规则
- TLS 加密 — 所有传输中的流量都经过加密
- DDoS 防护 — Cloudflare 的边缘网络在攻击到达你的 Mac 之前就将其吸收
- URL 隐蔽性 —
trycloudflare.com的 URL 是随机生成的,很难被猜到
你需要负责的部分
- API Key 强度 — 使用长随机密钥(Mac 应用生成 32 字符)。不要使用弱密码。
- API Key 传输 — 通过二维码(面对面)传输密钥,而不是通过邮件或聊天工具发送
- 隧道 URL 隐私 — 不要公开发布你的隧道 URL。任何拥有 URL 和 API Key 的人都可以连接。
- Mac 物理安全 — 服务器通过 Claude Code 可以访问你的文件系统。锁定你的 Mac。
- 速率限制 — Tactic Remote 的服务器包含速率限制中间件以减缓暴力破解尝试,但它不能替代强 API Key
关于 Cloudflare 能否看到你的流量?
Cloudflare 在其边缘节点终止 TLS,这意味着它们理论上可以看到你的流量。对于大多数开发场景来说,这是可以接受的——你不会发送机密数据,而且 Cloudflare 的隐私承诺有充分的文档记录。
如果你对此有顾虑,请只使用局域网模式,并仅从本地网络进行操作。
故障排除
"隧道 URL 没有出现"
- 检查
cloudflared是否已安装:which cloudflared - 查看 Mac 应用日志中的 cloudflared 错误
- 尝试手动运行 cloudflared:
cloudflared tunnel --url http://localhost:8765 - 确认你的网络连接正常
"局域网可以连接但 Cloudflare 不行"
- 确认隧道 URL 使用的是
wss://(不是ws://) - 确认 Mac 应用和 iPhone 设置中的 API Key 一致
- 检查你的网络是否阻止了非标准端口的出站连接(在企业网络中虽少见但有可能)
"间歇性断开连接"
- 快速隧道可能在长时间不活动后回收 URL
- 查看 Mac 应用——如果隧道 URL 发生了变化,请更新 iPhone 设置
- 考虑使用 Cloudflare 账号创建命名隧道以获得永久 URL
"延迟高"
- 快速隧道通过最近的 Cloudflare 数据中心路由,通常很快
- 如果延迟持续偏高,可能是你的 ISP 与 Cloudflare 的互联质量不佳
- 测试命令:
curl -o /dev/null -w "%{time_total}" https://your-tunnel-url.trycloudflare.com - 延迟低于 200ms 对终端交互来说没有问题。超过 500ms 会明显感觉到。
快速隧道与命名隧道
Tactic Remote 默认使用快速隧道——无需 Cloudflare 账号,URL 自动分配。这是实现远程访问的最快路径。
快速隧道的限制:
- URL 随机生成,cloudflared 重启后会改变
- 不支持自定义域名
- 不支持 Cloudflare Access 集成(无 SSO、无额外认证层)
命名隧道(需要免费的 Cloudflare 账号)提供:
- 持久 URL,重启后不会改变
- 自定义域名映射(例如
dev.yourdomain.com) - Cloudflare Access 提供额外认证(SSO、邮箱验证)
- 更适合需要多人稳定访问的团队环境
对于个人开发者,快速隧道完全够用。如果你发现自己频繁在手机上更新隧道 URL,可以考虑升级到命名隧道。
Cloudflare Tunnel 的替代方案
为了信息完整,这里列出其他远程访问方案:
端口转发
- 在路由器上开放端口,配置防火墙
- 风险:你的 Mac 直接暴露在互联网上
- 如果 IP 地址变化需要配置动态 DNS
- 不推荐用于开发环境
Tailscale/WireGuard VPN
- 在你的设备之间创建私有网络
- 安全模型良好(点对点加密)
- Mac 和 iPhone 都需要安装 Tailscale 客户端
- 注意:Tactic Remote 目前未集成 Tailscale——你需要单独运行它,并将 Tactic Remote 指向 Tailscale IP
ngrok
- 与 Cloudflare Tunnel 概念类似
- 免费套餐有限制(连接数、带宽)
- 成熟的产品,开发者体验良好
- 如果你偏好 ngrok 生态系统,可以作为替代方案
SSH 隧道
- 使用 SSH 端口转发的经典方案
- 需要在 Mac 上配置 SSH 服务器
- 注意:Tactic Remote 使用 WebSocket 而非 SSH——SSH 隧道会将 WebSocket 连接再包一层,增加了复杂度却没有明显收益
Cloudflare Tunnel 是 Tactic Remote 的推荐方案,因为它免费、快速隧道无需账号,并且已经直接集成到 Mac 应用中。