分享到微信

当前解读页的微信分享二维码

用微信扫一扫打开,点击右上角「···」分享给朋友或朋友圈。

手机上可截屏后,在微信扫一扫中从相册识别二维码。

nanami-0713/relay-kit

运维与部署

在 Cloudflare Workers 上一键部署盲中继,让手机通过端到端加密隧道访问桌面本地服务。

126
15
TypeScript
MIT
创建于 1 天前

relay-kit 是一个可自托管的盲中继服务器,用来让手机从公网访问桌面上的某个本地服务。它面向希望搭建个人隧道、又不愿让中继运营方看到明文的用户:中继只看到密文和路由令牌,解密只发生在两端。服务器运行在 Cloudflare Workers 与 Durable Objects 上,仓库还附带两端的参考实现,让服务器可以立即使用和测试。

做什么与如何工作

中继位于手机和桌面 agent 之间。agent 向中继发起出站 WebSocket 连接,把 HTTP/WS 帧转发到本地端口(例如 127.0.0.1:3425);手机侧客户端完成端到端握手后,通过隧道的 fetch() 和 WebSocket() 发起请求。一个 256 位配对码同时充当路由令牌派生盐和 PAKE 盐,因此这个码就是配对权限的全部来源。

每个配对对应一个基于 WebSocket Hibernation API 的休眠 Durable Object,作者称已连接但空闲的配对成本约为零 GB-s。core 包只使用 WebCrypto 且无依赖,因此同一套代码可在 Node、浏览器和 Capacitor WebView 中运行。

运行方式

主要路径是用 wrangler deploy 把 Worker 部署到自己的 Cloudflare 账户;作者描述无需构建步骤、无需填写配置、无需创建数据库,并称 24/7 运行 agent 加上偶尔使用手机可纳入免费额度。仓库还包含一个协议一致的 Node 中继 fixture,可作为单进程自托管替代方案,也是本地测试的基础。npm 包以编译后的 ESM 发布,要求 Node ≥ 18;仓库内测试直接导入 TypeScript,需要 Node ≥ 23。

需要注意的限制

  • 不能与官方 Alma 客户端直接互通:协议参照 Alma 中继提炼,但协议字符串不同,官方 Alma 客户端无法开箱连接。
  • 握手未经审计:作者称其为自研、绑定会话记录、在关键处使用常数时间算法,但未经形式化验证,若需要经过认证的密码学应另选方案。
  • 中继运营方仍有残余权限:它可以拒绝、延迟或关闭流量,也能观察消息大小与时序。房间以 sha256(routingToken) 为键,路由令牌泄露只允许拒绝服务,不能解密。项目未内置限流或滥用控制,若与他人共用中继应前置 WAF 规则。
  • 网络可达性:作者称 *.workers.dev 在中国大陆许多网络中遭遇 SNI 封锁;agent 支持 --proxy 或 HTTPS_PROXY,并建议在同一 Cloudflare 账户上绑定自定义域名以便长期手机访问。
  • 目前上传为单帧;请求体分块尚未实现。

按作者的状态清单,该项目已部署在 Cloudflare Workers 上并从真实手机完成端到端验证,CI 中也会针对真实 Worker 运行测试。项目采用 MIT 许可证。仓库创建于 2026-10-30;提供的榜单观测只有 2026-10-31 一次 NEW-REPOSITORY 收录,共 104 个总 star,这不是日增长量,也无法据此判断趋势。

项目源码与说明

本文由 AI 根据项目 README 生成,更新于 2026年10月31日,以项目官方文档为准。