Start here

URnetwork 的工作原理

13 分钟阅读View as markdown ↗

URnetwork 是一个由成员驱动的隐私网络。你的流量从另一位成员的设备出网,而不是数据中心的 VPN 服务器。网站看到的是那台设备的 IP 地址,而不是你的。这篇概览讲清这条路径,以及各方能看到什么。

出口是遍布 90+ 个国家、2,000 多个真实城市的数千台成员设备,而不是从少数几个数据中心提供的虚拟 IP。实时数字发布在 api.bringyour.com/stats/last-90

路径

流量经过四段:你 → 扩展器 → 运营方 → 提供者 → 互联网。

  • 客户端。 你设备上的应用或 SDK 实例。网络(network)是 URnetwork 对你账户的称呼,是计费和身份的单位;一个网络可以包含多个用户、设备和客户端。
  • 扩展器。 由志愿者运行、使用独立地址的转发节点,是路径的第一段。它把你的加密会话原样转发到平台,而不在自己这里终止,所以它承载的是自己无法读取的字节。作为你的第一跳,它确实能看到你的 IP 地址。
  • 运营方。 即 BringYour, Inc.,负责协调网络的一方。它的平台(connect.bringyour.comapi.bringyour.com)验证客户端身份、为你匹配提供者、中继流量,并处理合同与付款。
  • 提供者。 共享自己互联网连接的成员设备,它把你的流量转发到互联网,所以网站看到的是提供者所在城市的一个住宅地址。

运营方和提供者是两个中继方,这套设计把信息分割在两者之间。扩展器是这个分割之外的一个可达性节点,自身不增加任何加密。它的作用是在平台被封锁的地方保持网络可达。

路径:四段、信息分割 — 各方能看到什么、不能看到什么

谁能看到什么

在默认路径上,没有任何单独一方同时掌握你的身份和你的活动。这句话建立在两条适用范围不同的性质之上。

提供者永远不知道你是谁。 运营方站在你和提供者之间,所以提供者只看到一个设备 id 和它所服务的目的地,永远看不到你的地址。这一条在每条中继路径上都成立,不存在可能配错的设置。

运营方无法读取你发送的内容。 客户端↔提供者会话端到端密封,在原生应用中默认开启,所以运营方承载的只有密文,外加时序和数据量。这一条在默认的密封路径上成立;下表列出了没有密封的路径。

浏览器扩展和代理端点完全没有密封会话。这是适用范围,不是默认设置,而且由架构决定:浏览器或普通代理客户端无法运行这个网络的引擎,所以运营方在自己内部远程运行客户端设备,并在协议之间做转换 — 从那台设备发起的密封会在运营方内部开始,而密封的存在恰恰是为了让运营方看不见。这个实现用密封换来了对这些平台的支持。在那里,防止运营方积累你的目的地的是被测试钉住的存储纪律,而不是加密(威胁模型 §2.4)。

模式运营方看到提供者看到默认与可用性
中继密封账户/来源连接、提供者关联、密文及时序/数据量目的地流量、设备/合同 id,不含你的真实来源 IP原生应用的默认状态,开箱即用
中继标准账户/来源连接、提供者关联、内层目的地和数据包字节目的地流量、设备/合同 id,不含你的真实来源 IP浏览器和代理路径,或密封被关掉时;密封开着时,无法完成密封的提供者会被跳过,而不是改走这里
直连更少的中继参与你的真实来源 IP及目的地流量自行选择开启:关闭强匿名化(Strong Anonymization)

这张表是权威版本。威胁模型用同一套分割逐一对照具名的对手,包括恶意的运营方和合谋的提供者。

为什么是四段

速度是设计目标,不是妥协。每多一跳,你与互联网之间的往返路程就被拉长,这正是长链路在日常使用中吃亏的原因。把路径限定在四段,让信息分割保持在流媒体级的速度上。URnetwork 给出的全网平均流媒体速度为 40 Mbps+。

严格的描述是:延迟受限、带数据分离的多跳设计。线路协议支持串接更多提供者中间节点;实际运行的网络使用单提供者路径。其他设计做出其他取舍。Tor 用延迟为更长的链路买单。Apple 的 Private Relay 是加密的两方分割,实现闭源,两方都由同一家公司挑选并付费。大多数 VPN 根本不做分割。对比图谱逐个产品讲清这些差异。

连接时会发生什么

  1. 登录。 应用用一个约一天过期、自动刷新的令牌登录,所以被盗的令牌很快就会失效。工程师称之为 JWT。账户可以使用邮箱或手机号、Google 或 Apple 登录、Solana 或 Bittensor 钱包签名、恢复短语,或者一键创建、无需邮箱的即时账户(Instant Account),后者的全部凭证就是一份恢复短语(seedphrase)。这份短语与 Mullvad 的编号账户是同类机制,并且能在重装后找回账户;服务器生成它、只显示一次、之后只保留哈希,所以弄丢短语就等于失去账户。
  2. 连接平台。 客户端与平台建立加密通道:基于 WebSocket 的 TLS,或在网络允许时使用 QUIC/HTTP-3。通道穿过一个扩展器,终止于平台。客户端先并发尝试直连路由;直连失败时由扩展器一段接管。
  3. 寻找提供者。 客户端按你的选择请求匹配的提供者:最佳可用、列表中的某个国家,或在搜索框里输入名字找到的某个城市。平台按可靠性和实测速度持续为候选者打分,并返回排好序的集合。
  4. 建立合同,开始传输。 客户端维持一个由多个提供者组成的窗口(window),把你的连接分摊到它们之间。默认配置同时运行两个窗口:服务 HTTPS 的质量窗口,2–6 个提供者;服务其余流量的速度窗口,1–2 个。通常有三到八个提供者同时在线。对同一个网站的连接固定走同一个提供者,所以那个网站在你整个会话里只看到一个稳定地址。表现不佳或掉线的提供者会被替换;窗口里其余的提供者接过它的工作。每个字节都在一份传输合同(transfer contract)之下传输,这是计量每个提供者承载量的记账单位。
复数的出口身份:提供者窗口 — 按站点固定与故障切换

你的出口身份是复数的:同时有多个提供者,并随时间轮换,所以任何单个出口最多只能看到你浏览活动的一小片。窗口同时也是速度策略:住宅连接比数据中心服务器波动更大,淘汰慢的提供者才能让流媒体保持流畅。

加密

客户端↔平台通道始终加密:TLS 1.3 或 QUIC。

密封会话。 应用把流量一路加密到提供者,所以运营方中继的是自己无法读取的字节。到达运营方的只有密文,外加时序和数据量。这个控制项在 Android、iOS、macOS、Windows 和 Linux 应用的连接抽屉里名为后量子加密(Post Quantum Encryption),五个平台都默认开启。密封本身是客户端与提供者之间直接完成的 TLS 1.3 握手,采用混合后量子密钥交换 X25519MLKEM768,每条消息使用 AES-256-GCM。身份密钥是 Ed25519;"后量子"仅指密钥交换。

适用范围:密封开启时,无法建立密封的提供者根本不会承载你的流量。客户端拒绝以明文发送应用数据,而不是悄悄回退 — 无法完成密封的提供者会被跳过,而不是在未密封的状态下被使用。当前所有提供者构建都支持密封,所以这主要影响旧构建,代价是可用性而不是机密性。关掉后量子加密,旧的行为就会回来:流量此时可以走标准路径,在那条路径上平台能读到数据包的地址和内容。

局限:目前还没有应用会报告某个连接是否已密封。这个缺口真实存在,但已不再是危险的那一个 — 密封开着的时候,你不会被静默降级。这一点,连同 URnetwork 不防御的其他情形,都写在威胁模型里。

强匿名化与直连模式。 提供者能看到它所服务流量的目的地址,就像今天你的 ISP 一样。它不知道你是谁:默认情况下它永远看不到你的真实 IP,只有平台能看到。这个默认对应连接抽屉里的强匿名化开关,出厂即开启。关闭它就选择了直连模式:客户端直接与提供者通信,吞吐量随之上升。代价:那个提供者现在能看到你的真实地址。托管配置一律强制关闭直连模式。

密封会话改变了什么 — 标准路径对比密封会话,以及提供者无法完成密封时会发生什么

各方能看到什么

参与方能看到看不到,或不保留
运营方(平台)你的账户;你连接那一刻的地址;由它推导的粗粒度城市/地区/国家;你用过哪些提供者;字节数;密文及其时序和数据量数据包的目的地和内容(默认密封);你的原始地址(只存带密钥的地址块哈希);传输账本中的任何目的地字段
提供者它向外承载流量的目的地 IP/SNI;合同携带的一个设备 id在中继路径上你的身份或真实 IP;只有运营方能把设备 id 解析为账户
扩展器加密字节;你的 IP隧道内的任何内容
网站一个住宅提供者地址你的 IP;你的 ISP 身份

运营方一行的背后:

  • 你的连接地址以带密钥的单向哈希形式存储,哈希对象是所在的 /29(IPv4)或 /56(IPv6)地址块,而不是地址本身。由地址推导出的粗粒度城市/地区/国家会按连接保留。
  • 这种纪律写在代码里,而不只是政策里。HTTP 日志只放行五个请求头的白名单。传输账本记录客户端和网络 id 以及字节数,根本没有可写入目的地、主机、URL、SNI、端口或域名的字段。代理数据路径不记录任何内容,并由回归测试钉住。
  • 密封让运营方读不了你的流量。存储纪律覆盖运营方仍能看到的部分(提供者关联、字节数、粗粒度位置),并在没有密封的地方顶上:浏览器扩展、代理端点,以及关掉了密封的原生应用。
  • 局限:这些是代码所写记录的属性。入口负载均衡器的访问日志从未被审计,带地址和 SNI 的日志行会到达服务的 stderr,而 stderr 在生产环境的去向尚未查明。完整记录见威胁模型
运营方存储什么 — 以及什么从不存在

开源,以及尚未审计的部分

整个技术栈都是开源的:应用、SDK、协议引擎,以及运营方自己的服务器代码,所以这里描述的机制可以直接读代码验证,而不必凭信任接受。开源证明的是设计,而不是线上部署的是哪个构建。

尚无独立审计覆盖协议、连接引擎(connect engine)或运营方的服务器代码,而隐私承诺正落在这一层。2025 年有两项第三方评估覆盖了其他层面。一项是对 Web 应用和 API 的独立渗透测试(2025 年 4–5 月)。另一项是 Leviathan Security Group 对 Android 应用的 MASA AL2 评估,结果通过;Leviathan 自己界定它不是整体性的安全评估。面对一年一度的时点式审计,URnetwork 的回答是常年接受审视的公开代码。完整记录见威胁模型

安全共享:ip_security 层

共享连接不应该意味着替陌生人背上法律风险。提供者客户端内置 ip_security,这是连接引擎里的开源流量安全层,也是引擎最大的组件之一。它检查提供者自己的出口,也就是通往互联网的出网点。有风险的流量在离开成员的连接之前就被拦下:

  • DMCA 类过滤。 有状态检测器识别 BitTorrent 和文件共享特征,并丢弃不匹配任何正当协议的不透明流量,所以侵权的点对点传输不会从成员的线路流出。
  • CFAA 类过滤。 未授权访问、扫描和漏洞利用的模式会被黑洞化,所以这条连接不会成为别人入侵的跳板。
  • 一个被造出来"不看"的检测器。 文件共享检查会从自己的流键里清除服务器名。它只依据地址、端口和数据流的起始字节做判断,计数器按协议和端口统计,从不按地址统计。

命中的结果是数据包被丢弃。BitTorrent 命中还会向运营方发出一个滥用标记:对端的设备 id 加一个布尔值,不含目的地、域名或内容。运营方今天没有处理这个标记的代码,收到后什么也不会存储。不透明协议的丢弃是静默的,没有任何上报。

这一层运行在边缘,而且在边缘的两侧:一侧在你的设备上,你连接时网络不承载的流量根本不会到达提供者;另一侧在提供者的设备上,也就是流量出网的地方。运营方不做集中检查,密封也绕不开这个过滤器,因为过滤器就运行在密封所连接的两个端点上。打开断网保护(kill switch)后(每个应用都有明确的开关,浏览器扩展默认开启),被拦截的流量会直接停止,而不是回落到你自己的连接。大多数国家都有 CFAA 和 DMCA 同类的法律;同一套标准在每个出口回应这些法律,URnetwork 在其分发到的每个国家都遵守当地法律。过滤器是持续维护的,不是一次定稿:它的威胁清单在每次发布时从公开的恶意软件、滥用和僵尸网络情报源(Spamhaus DROP、abuse.ch 的僵尸网络追踪器、Emerging Threats 等)重新生成,所以保持应用最新就能拦截最新的已知恶意地址段。服务条款约定共享连接的相关责任。

ip_security:在边缘执行、不做监控 — 命中的流量在提供者自己的出口被黑洞化

穿过封锁

扩展器带着路径穿过本地和区域防火墙。每个扩展器都在可信的服务端口(443、DNS-over-TLS 853、LDAPS 636 等)上应答 TLS,在扫描器眼里像一个配置不当的 CDN。每个扩展器都硬编码为从自己的地址把加密流转发到平台,所以封锁 connect.bringyour.com 封不住入口。客户端轮换生成的扩展器伪装身份,配合随机化的数据包分片和乱序,直到某一个能用为止。在只有 DNS 能出去的网络里,DNS 形态的传输把 QUIC 数据包重塑成 DNS 查询和应答。任何人都可以运行扩展器。

穿过封锁:扩展器与 DNS 形态的传输

提供者与覆盖

位置以真实在线为准:只有当某位成员的设备在一个城市在线时,那个城市才会被提供。平台对它观察到的连接做地理定位;提供者不能自行申报城市。看起来像数据中心、VPN 或重新通告地址段的地址会被降级,而不是被信任。局限:尚无外部机构测量过这支提供者队伍,也没有机制验证分配给同一客户端的提供者彼此独立、且独立于运营方。见威胁模型

共享连接是对闲置带宽的自愿共享:不打开就一直关闭,除非你允许蜂窝网络否则仅走 Wi-Fi,并且可以面向公共流量,也可以只面向你自己的设备。公共流量按量计量:平台给每份传输合同盖上只有该提供者掌握的密钥印记,所以提供者能核验一份合同是真实的、并且面向它同意服务的对象。托管额度以字节计价;两端各自上报承载量,结算数字取两者在容差范围内的平均值。提供者参与 UR protocol;奖励在 ur.xyz 有完整说明,本页不再复述。免费档之所以存在,是因为付费成员为网络的成长出资。任何人都可以成为提供者。

套餐与运营方 API

套餐有两档:免费档提供每日流量额度;Pro 档提供大额的月度额度、更多并发客户端,以及代理和 WireGuard 便利功能。Pro 可以用钱包里的链上 USDC 支付。额度是计量制,不是限速制:额度用完后,网络停止建立新的传输,而不是给你降速。隧道归于安静,你自己的连接不受影响,额度按周期重新补满。当前数字见 ur.io/products,机器可读版本在 GET https://api.bringyour.com/x402/skus

应用做的每一件事都经过公开的运营方 REST API(认证、设备、提供者发现、订阅、统计),文档在 API 参考。智能体获得一等支持:mcp.bringyour.com 上的 MCPv2 服务器(OAuth;提供 providerLocationsfetch 工具),以及 x402 按需付费购买。见 ur.io/agents

后备端点:HTTPS、SOCKS5、WireGuard

对无法嵌入 SDK 的软件,运营方运行桥接端点:HTTPS CONNECT 代理、SOCKS5,以及供标准 WireGuard 应用使用的 WireGuard 端点。SOCKS5 支持 CONNECT 和 UDP associate;不支持 BIND,超过 2 KiB 的 UDP 数据报按设计丢弃。局限:WireGuard 路径分配一个稳定的隧道地址,取自平台分配的私有地址池,不是你的真实 IP。这个稳定地址让同一个客户端可以被跨提供者关联起来,而且端点会向客户端下发一个固定的公共解析器(1.1.1.1)。应用和 SDK 仍是使用这个网络最私密的方式。

接下来去哪里

  • 安装设置:Android、iOS、macOS、Windows、Linux、浏览器扩展和 SDK 的入门指南
  • 各平台的深入内容:导览文档。
  • 其他产品:对比文档与对比图谱
  • 协议本身:白皮书、经济模型与提供者奖励见 ur.xyz