博客
连接模式详解:局域网 vs. Cloudflare Tunnel
Tactic Remote 支持两种连接模式:局域网模式在同一 Wi-Fi 下延迟低于 100ms,Cloudflare Tunnel 模式可从任何地方安全访问。本文介绍两者的工作原理及适用场景。
继续查看该栏目下的产品与工程更新。
浏览此分类Tactic Remote 新用户最常见的问题之一是:"我应该使用局域网模式还是 Cloudflare Tunnel?"答案取决于你的工作方式和工作地点。本文将详细介绍两种模式 — 它们在架构上的差异、性能和安全特性,以及 Tactic Remote 如何处理两者之间的切换。
两种模式,统一界面
在深入技术细节之前,最重要的一点是:无论你使用哪种连接模式,iPhone 应用的使用体验完全一致。会话管理、终端流式传输、审批工作流、推送通知 — 无论你的手机与 Mac 在同一 Wi-Fi 下,还是在全国各地通过蜂窝网络连接,所有功能的表现都完全相同。
连接模式只影响你的 iPhone 如何到达 Companion 应用的 API。传输层之上的一切都完全一致。
局域网模式
局域网模式是默认且最简单的配置。Mac 上的 Companion 应用将其 HTTP/WebSocket 服务器绑定到局域网的某个端口,iPhone 直接连接到该 IP 地址和端口。
工作原理
- Companion 应用在端口 48736(可配置)上启动内嵌服务器。
- Mac 广播其局域网 IP 地址(例如
192.168.1.42:48736)。 - iPhone 通过本地 Wi-Fi 网络连接到该地址。
- 所有通信均在两台设备之间通过局域网直接传输 — 无中间环节。
性能
局域网模式提供最低延迟,因为数据包走的是最短路径:iPhone 到路由器到 Mac(或在某些网络配置下通过 Wi-Fi Direct 直连)。
| 指标 | 典型范围 |
|---|---|
| 连接建立 | 30-80ms |
| 终端更新延迟 | 40-100ms |
| 审批往返时间 | 60-120ms |
| WebSocket ping | 5-20ms |
| 短暂断开后重连 | 0.5-1.5s |
以上数据基于标准的家庭或办公 Wi-Fi 网络。拥挤的网络(例如会议场所的 Wi-Fi)可能会有更高的延迟,但在同一网络下,局域网模式的性能始终优于隧道连接。
安全特性
局域网模式的安全性依赖两个层面:
网络隔离。 你的局域网充当安全边界。只有同一网络上的设备才能访问 Companion 应用的端口。对于大多数家庭和办公环境来说,这已经足够。
Token 认证。 每个 API 请求都需要 Bearer Token。即使攻击者在你的局域网中,没有 Token 也无法与 Companion 应用交互。
局域网模式无法防护的场景:当你的网络中有被入侵的设备并且该设备已经获取了你的 Token。在无法信任局域网的环境中(共享办公空间、酒店 Wi-Fi),建议使用 Cloudflare Tunnel 模式。
局限性
- 必须在同一网络。 iPhone 和 Mac 必须在同一 Wi-Fi 网络(或同一局域网内可达)。一旦你离开家庭网络,连接就会中断。
- IP 地址变化。 如果 Mac 的局域网 IP 发生变化(DHCP 租约续期、重新连接 Wi-Fi),你需要更新 iPhone 的连接设置。QR 码重新扫描可以缓解这个问题,但仍然需要手动操作。
- 无法通过蜂窝网络访问。 蜂窝数据网络无法路由到你的家庭网络,这是先天限制。
Cloudflare Tunnel 模式
Cloudflare Tunnel 模式从你的 Mac 向 Cloudflare 全球边缘网络建立一条持久的出站连接。iPhone 连接到一个 Cloudflare URL,Cloudflare 将流量通过隧道路由回你的 Mac。
工作原理
- Companion 应用使用你的隧道凭证,将
cloudflared作为托管子进程启动。 cloudflared向最近的 Cloudflare 边缘服务器建立出站连接(通常同时建立 2-4 个连接以实现冗余)。- 你的隧道可通过你配置的 URL 访问(例如
claude.yourdomain.com)。 - iPhone 连接到该 URL。Cloudflare 通过其网络将请求路由到你 Mac 上的
cloudflared进程。 cloudflared将请求转发到 Companion 应用的本地服务器。
关键架构特性:你的 Mac 从不接受来自互联网的入站连接。隧道是纯出站的,这意味着无需开放端口、无需配置防火墙规则、不会暴露在端口扫描之下。
性能
Cloudflare Tunnel 会增加可感知的延迟,因为流量需要经过 Cloudflare 的边缘网络:
| 指标 | 典型范围 |
|---|---|
| 连接建立 | 150-300ms |
| 终端更新延迟 | 100-250ms |
| 审批往返时间 | 200-400ms |
| WebSocket ping | 40-120ms |
| 短暂断开后重连 | 2-4s |
延迟取决于你与最近的 Cloudflare 边缘服务器之间的地理距离。Cloudflare 在全球 300 多个城市运营,因此城市地区的大多数用户看到的延迟接近上述范围的下限。Cloudflare 接入点较少的地区可能会有更高的延迟。
在实际使用中,这种延迟在最初几分钟比较明显,但很快就会习惯。终端输出仍然流畅滚动,审批交互也足够响应 — 大多数用户在收到通知后 15 秒内就能完成处理。
安全特性
Cloudflare Tunnel 在多个方面提供比局域网模式更强的安全保障:
无入站攻击面。 你的 Mac 从不监听来自互联网的连接。没有可扫描的端口,没有可暴力破解的入口。
TLS 加密。 iPhone 与 Cloudflare 之间以及 Cloudflare 与你的 Mac 之间的所有流量都使用 TLS 加密。结合 Tactic Remote 的 Token 认证,这提供了两层独立的安全保障。
Cloudflare 的 DDoS 和机器人防护 默认应用于你的隧道端点,为自动化攻击提供额外防护。
权衡之处:流量会经过 Cloudflare 的网络。虽然经过加密,但这意味着 Cloudflare 是一个受信任的中间方。对于大多数个人开发者来说,考虑到便利性,这是可以接受的权衡。对于敏感环境,请参阅我们的 安全与网络加固 指南以了解额外措施。
局限性
- 需要 Cloudflare 账号。 你需要一个免费的 Cloudflare 账号和一个由 Cloudflare 管理的域名。隧道本身免费,但初始 DNS 配置需要几分钟。
- 依赖 Cloudflare 可用性。 如果 Cloudflare 发生故障,隧道模式将无法使用。这种情况很少见(Cloudflare 的运行时间记录非常出色),但值得注意。
- 延迟高于局域网模式。 如上所述,每次交互会比局域网模式增加 50-200ms 的延迟。
QR 码连接流程
两种模式使用相同的 QR 码流程进行初始配对,但 QR 码内容不同:
局域网 QR 码 编码内容:http://<local-ip>:<port> 加上认证 Token。
Cloudflare Tunnel QR 码 编码内容:https://<your-tunnel-domain> 加上认证 Token。
iPhone 应用根据 URL 方案和网络特征自动检测连接模式。如果 QR 码包含局域网 IP 地址,应用配置为局域网模式。如果包含 HTTPS 域名,则配置为 Cloudflare Tunnel 模式。
要切换模式,你可以从 Companion 应用的菜单栏下拉菜单中生成新的 QR 码,然后用 iPhone 扫描。应用会替换之前的连接配置。整个模式切换在 10 秒内完成。
并排对比
| 因素 | 局域网 | Cloudflare Tunnel |
|---|---|---|
| 配置复杂度 | 最简(自动) | 中等(5-10 分钟) |
| 延迟 | 40-100ms | 100-250ms |
| 支持外网访问 | 否 | 是 |
| 需要 Cloudflare 账号 | 否 | 是 |
| 需要入站端口 | 无(仅限局域网) | 无 |
| 第三方信任 | 无 | Cloudflare |
| 费用 | 免费 | 免费(Cloudflare 免费套餐) |
| 重连速度 | 0.5-1.5s | 2-4s |
| 最适合 | 家庭/办公室固定办公 | 通勤、旅行、远程 |
推荐使用模式
在以下情况使用局域网模式: 你在工位上或与 Mac 在同一网络中。更低的延迟使终端流式传输明显更流畅,且不依赖第三方服务。
在以下情况使用 Cloudflare Tunnel 模式: 你需要从局域网外访问 — 通勤、旅行、在不同地点工作,或者你想在家启动任务然后在办公室监控进度。
同时使用两者: 在 Mac 上配置 Cloudflare Tunnel,但在家时通过局域网模式连接。Companion 应用可以同时提供两种模式。你的 iPhone 可以保存两个连接配置,在应用的连接设置中一键切换。
我们的许多用户将 Cloudflare Tunnel 配置为备用方案,日常使用局域网模式。当他们离开家时,切换到隧道配置。这样在条件允许时获得最低延迟,在需要时获得远程访问能力。
下一步
我们正在探索自动模式选择功能,可以检测你的 iPhone 是否与 Mac 在同一网络中,自动走本地路由,离开时回退到 Cloudflare Tunnel。这将完全消除手动模式切换。早期测试表明 iOS 上的网络检测是可靠的,但 VPN 和分割隧道配置等边缘情况仍需解决。
有关配置说明,请参阅 快速入门 了解局域网模式,参阅 Cloudflare Tunnel 配置 了解远程访问配置。