跳转到主要内容

概述

Cloudflare Tunnel(cloudflared)会在您的设备与 Cloudflare 的边缘网络之间建立一条出站连接。它充当反向代理的角色:外部请求首先送达 Cloudflare,随后由后者通过该隧道转发至您的本地服务器。TLS 加密在边缘节点处完成处理,因此您的路由器无需开放任何入站端口。 在部署大语言模型时,您只需将 cloudflared 指向本地 Ollama 或 vLLM 的端口并配置相应的 DNS 记录,您的模型即可通过类似 llm.example.com 的公共链接被访问。虽然这种方式确实可行,但 Cloudflare 的代理层也会带来一些限制,尤其对需要实时流式推理的场景影响明显。 Tokios 同样采用仅允许出站连接的架构,不过它还在前端集成了专为大语言模型设计的 API 网关。该网关可原生支持服务器发送事件流传输,即便生成内容篇幅较长也不会出现代理超时现象,同时它还具备按用户分配 API 密钥的功能。

对比表格

Cloudflare 的优势所在

  • 免费套餐。 Cloudflare Tunnel 在标准套餐下完全免费。对于仅需对外发布单一服务的独立开发者而言,费用仅为 $0。
  • 庞大的边缘网络。 Cloudflare 在全球范围内运营着 300 多个数据中心。几乎在任何地点访问其边缘节点时延迟都很低。
  • DDoS 防护功能。 Cloudflare 的网络默认具备抵御大规模攻击的能力。您的家庭 IP 地址也绝不会被泄露。
  • 自定义域名功能。 您可将 llm.yourdomain.com 指向自己的自定义域名。Tokios 则使用 api.tokios.com — 无法设置自定义主机名。
  • 适用于任何 HTTP 服务。 无论是 Web 应用、API 还是静态网站,Cloudflare Tunnel 均能顺利处理。若您需要同时对外发布模型与 Web 控制台,一个隧道即可满足需求。

Tokios 的优势所在

  • 原生 SSE 流传输功能。无需缓冲处理,也无需手动配置响应头。令牌会在生成后即刻流式传输至客户端,Tokios 网关正是为此类流量模式而设计。
  • 不受生成时长限制的代理机制。Cloudflare 的读取超时时长约为100至120秒,这一限制极易导致长文本生成过程被中断。在普通硬件上运行的大型模型生成4,000个令牌时往往也会超出该时限,而 Tokios 则不存在此类限制。
  • 内置 API 密钥管理功能。系统可为每个用户生成专属的sk-tok-…类型 API 密钥,且这些密钥仅适用于特定部署场景。相比之下,使用 Cloudflare 时用户需自行搭建身份验证机制,例如配置 Cloudflare Access、编写中间件代码或部署独立 API 网关。
  • 协议转换能力。Tokios 网关可兼容 OpenAI 与 Anthropic 的 API 规范,Cloudflare 则仅负责转发原始端口数据。
  • 2-minute setup. One install command, approve in the dashboard, create a key. Cloudflare Tunnel requires DNS record creation, cloudflared config files, and (optionally) Cloudflare Access policies.

SSE 缓冲机制引发的问题

默认情况下 Cloudflare 代理会对响应内容进行缓冲处理。对于常规网页流量而言这属于合理设计,能有效提升完整页面内容的传输效率。然而在 SSE 流传输场景下该机制却适得其反:客户端本应持续接收令牌,结果却要么一次性收到全部响应内容,要么因等待超时而中断连接。 据 Cloudflare 官方文档记载,除非源服务器发送Content-Type: text/event-stream响应头,否则代理均会执行缓冲操作。部分大语言模型后端会设置该响应头,但其余则不会;即便设置了该头信息,中间代理层或配置不当的后端仍可能将其移除。最终造成的结果是:看似正常工作的流传输端点实际上仅在流程结束时才批量发送所有令牌,完全违背了流传输设计的初衷。 Tokios 网关具备大语言模型识别能力。无论后端如何配置响应头,它都能准确识别流传输场景并即时将每个令牌推送至客户端。

超时机制引发的问题

在非企业版套餐中,Cloudflare 的连接器会设定约 100 至 120 秒的读取超时时限。若生成过程耗时较长——比如 max_tokens 数值较高、上下文窗口较大,或是模型在普通硬件上运行速度较慢——便很容易超出该时限。一旦出现这种情况,客户端就会在生成中途收到 524 错误提示。实际上模型仍在正常运行,只是连接器强制切断了连接。 企业版用户虽可延长该超时时长,但此举会导致原本免费的功能产生显著的成本支出。 Tokios 对请求持续时间不设任何限制。即便耗时 5 分钟的生成任务也能完整执行。

何时选用 Cloudflare Tunnel

  • 已处于 Cloudflare 生态体系内。您的域名 DNS 由 Cloudflare 管理,您也借助 Cloudflare Access 提供其他服务,此时增设隧道仅需少量额外操作。
  • 同时对外提供网页应用与大语言模型服务。借助单一隧道及自定义域名即可同时部署控制台、演示界面以及模型 API。
  • Need custom domains. llm.yourdomain.com matters for branding or integration with existing infrastructure.
  • 具备通用反向代理需求。您需要对外提供的服务不仅限于大语言模型 API。

何时选用 Tokios

  • 专用于大语言模型场景。您的核心诉求是稳定提供模型 API 流传输功能,而非搭建通用网页服务。
  • 需要可靠的流传输机制。服务器发送事件令牌必须实时送达,绝不可因代理超时导致数据滞留或截断。
  • 需要配置 API 密钥。多位用户或代理程序均需具备权限受限的专属令牌,而无需自行开发身份验证模块。
  • Want minimal setup. 2 minutes vs 30+ minutes of DNS, config, and Access policy setup.

隧道技术与流传输机制

深入剖析为何服务器发送事件的缓冲机制以及代理超时会导致大型语言模型的数据流传输中断。

Tokios 的适用场景

一份客观的指南,帮助您判断何时选用 Tokios 才是恰当的选择。