100.x.y.z:11434 地址。tailnet 上的每个人都有相同的访问权限。没有每用户认证,没有模型作用域,没有办法在不影响其他人的情况下撤销某个人的访问。当有人问”我怎么从 Claude Code 使用这个?“时,你要发给他们一份涉及环境变量和 base URL 的 6 步设置指南。
有一个更好的 AI API 访问层——而且你不需要替换 Tailscale 就能添加它。
Tailscale 做对了什么
Tailscale 在它擅长的领域表现出色:- 零配置 mesh 网络。 你的设备自动发现彼此,即使在 CGNAT 后面也是如此。
- 点对点延迟。 直接的 WireGuard 隧道,中间没有中继服务器。
- 配合 Headscale 离线运行。 自托管协调服务器,你的 tailnet 无需 Tailscale 的云即可工作。
- 成熟的生态系统。 10+ 年的开发,数千个集成,活跃的社区。
- 个人使用免费。 免费层支持最多 100 台设备。
Tailscale 在 AI API 方面的不足
Tailscale 是一个网络层。它让你的设备连接起来。但对于 AI API 访问,你仍然缺少:1. 每用户认证
你在100.x.y.z:11434 上的 Ollama 实例没有认证。tailnet 上的任何人都可以调用它。如果你想限制访问,需要添加一个带 basic auth 的反向代理,或者配置 Ollama 的实验性 API 密钥支持(单一共享密钥,不是每用户的)。
vLLM 和 llama.cpp 有可选的单密钥认证,但每个人用的是同一个密钥。没有每用户作用域,没有办法让 Alice 访问模型 A 而 Bob 访问模型 B,也没有办法在不影响 Bob 的情况下撤销 Alice 的访问。
2. 面向远程客户端的 OpenAI 兼容端点
Tailscale Funnel 将你的本地服务暴露到互联网,但它仍然是原始的 Ollama/vLLM API——没有认证,没有模型作用域。而且 Funnel 有限制:它只支持 HTTP/HTTPS(不支持原始 TCP),并且受 Tailscale 服务条款的约束。 当团队成员问”我能在不安装 Tailscale 的情况下从手机使用这个吗?“或者”我能把 n8n 工作流指向它吗?“时,答案是”不太容易”。3. 协议转换
你的本地模型说的是 Ollama API 或 vLLM API。你的编码代理(Claude Code、Cursor、Cline、Codex)说的是 OpenAI API 或 Anthropic API。你需要一个转换层。 Tailscale 不提供这个。你需要在 tailnet 上运行 LiteLLM、LocalAI 或自定义代理——又一个要维护的服务,又一个要暴露的端口,又一个可能出问题的东西。4. 无缓冲流式传输
Tailscale Funnel 和 Cloudflare Tunnel 都有 Server-Sent Events (SSE) 缓冲问题。当你的模型逐 token 流式传输响应时,代理会缓冲整个响应,然后一次性发送给客户端。结果就是:你的”流式”聊天界面感觉像卡了 10 秒,然后一次性输出整个响应。 这会破坏交互式聊天、代码补全和任何流式用例的体验。进阶之路:在现有架构上添加 Tokios
Tokios 不是 Tailscale 的替代品。它是一个 API 层,位于你现有基础设施之上——包括你的 tailnet。 以下是它们如何配合:- Tailscale 处理你的 mesh 网络。SSH、文件共享、内部服务、设备发现——全部仍然由 Tailscale 负责。
- Tokios 处理你的 AI API 访问。每用户认证、模型作用域、OpenAI 兼容端点、仅出站隧道(不需要 Funnel)、无缓冲流式传输。
api.tokios.com。它们不冲突。
你能得到什么
-
每用户 API 密钥。 每个团队成员获得自己的
sk-tok-…密钥,作用域限定到特定模型。Alice 可以访问team-llama和team-qwen。Bob 只能访问team-llama。你撤销 Alice 的密钥——Bob 不受影响。 -
OpenAI 兼容端点。 你的团队用他们的 API 密钥调用
https://api.tokios.com/v1。任何 OpenAI 兼容客户端都可以——Python SDK、JavaScript SDK、curl、Claude Code、Cursor、Cline、Continue、Open WebUI。他们的设备上不需要 Tailscale 客户端。 -
仅出站隧道。 Tokios 连接器拨出到
api.tokios.com。没有入站端口,没有 Funnel,没有端口转发。在 CGNAT、企业防火墙、NAT 后面都能工作。你的模型保持在127.0.0.1:11434——只有连接器能访问它。 - 无缓冲流式传输。 Tokios 正确处理 SSE。你的流式聊天界面真正流式输出。你的代码补全实时完成。没有 10 秒的缓冲延迟。
-
模型路由。 通过一个端点服务多个模型(Ollama、vLLM、llama.cpp)。注册部署如
team-llama、team-qwen、team-coder。将它们路由到不同的上游模型或不同的运行时。你的团队调用部署名称;你可以在不修改他们客户端配置的情况下更换后端。
5 分钟完成设置
1
在模型主机上安装 Tokios 连接器
2
将连接器指向你的本地模型
3
注册一个部署
在 Models 标签页,将你的上游模型映射到一个公开名称:
- Upstream:
llama3.1 - Deployment:
team-llama
4
为团队创建 API 密钥
在 Keys 标签页,为每个团队成员创建密钥。将其作用域限定到
team-llama。分享密钥和端点 URL(https://api.tokios.com/v1)。5
团队调用 API
何时单独使用 Tailscale
Tailscale 是正确选择的场景:- 你是唯一用户。 个人多设备访问——你的笔记本、你的手机、你的台式机。你控制所有设备,不需要每用户认证。
- 你需要基础设施访问。 SSH、文件共享、内部服务发现——不仅仅是 AI API 访问。
- 你处于离线或隔离网络环境。 配合 Headscale,Tailscale 完全在你的网络上运行,没有外部依赖。
- 预算为 $0。 免费层覆盖个人使用,点对点流量没有数据上限。
何时添加 Tokios
Tokios 是正确补充的场景:- 你需要 API 密钥管理。 多个团队成员或外部用户各自需要自己的作用域凭证。
- 你需要编码代理兼容性。 Claude Code、Cursor、Cline 和类似工具需要 base URL + API 密钥——不是 VPN 连接。
- 你的调用者无法安装客户端软件。 脚本、CI 管道、SaaS 应用,或者在使用无法安装 Tailscale 的受管理设备的团队成员。
- 你想要无需 VPN 的团队访问。 给别人一个 URL 和密钥,而不是让他们加入 tailnet。
- 你需要无缓冲的流式传输。 Tailscale Funnel 和 Cloudflare Tunnel 都有 SSE 缓冲问题。Tokios 正确处理流式传输。
两者结合使用
大多数团队的最佳设置:Tailscale 用于基础设施访问,Tokios 用于 AI API 访问。- 通过 Tailscale SSH 连接到你的模型服务器。
- 通过 Tailscale 访问 Grafana 仪表板。
- 通过 Tailscale 访问内部服务。
- 通过 Tokios 调用本地模型的 AI API。
迁移路径
如果你已经在使用 Tailscale Funnel 将模型暴露到互联网,迁移到 Tokios 非常轻松:- 在 Tailscale 旁边安装 Tokios 连接器。
- 将它指向你的本地模型(相同的
127.0.0.1:11434地址)。 - 注册部署并创建 API 密钥。
- 将团队的客户端配置更新为使用
https://api.tokios.com/v1而不是 Funnel URL。 - 禁用模型端口的 Tailscale Funnel(保留给其他服务使用)。
后续步骤
- 团队访问本地模型 — 为团队提供 API 访问的完整指南
- Tokios 与 Tailscale 对比 — 详细对比
- 本地 LLM API — 用 OpenAI 兼容端点暴露你的模型
- 远程访问对比 — 所有选项的安全性对比