Wormhole 是一个免注册的网页文件传输服务,入口是 wormhole.app。文件在浏览器里加密之后才离开本机,解密用的密钥藏在分享链接的 # 之后,服务器拿不到明文。单次最多发 10GB,链接到期后文件自动删除。它适合把一个大文件交给某个人,而不是拿来长期归档。
上传与取件:三步走完的流程

整个流程没有账号环节,收发双方都只用一个浏览器标签页。上传方点 Select files,或者把文件、文件夹直接拖进页面,浏览器随即在本地完成加密与分片。
页面会生成一条形如 https://wormhole.app/room-id#key 的链接。前半段是服务器分配的房间号,后半段是密钥。把整条链接发给对方,对方打开就能看到文件列表并下载。
- 上传:选文件或文件夹,等进度条走完,过程中不要刷新页面。
- 复制:点复制按钮拿到完整链接,注意别漏掉 # 后面的那一串。
- 取件:收件人打开链接点下载,不需要注册,也不需要装客户端。
服务端会把一次传输登记为一个 room,并给上传者一个写入令牌,后续所有改动都要靠它鉴权。文件名、体积、分片哈希被打包成一条清单再加密,下载时用读者令牌换取地址,服务器全程只经手密文。
这条设计决定了取件方的体验:点开链接就能看到有几个文件、各有多大,但服务器自己读不懂内容。要取哪一个就点哪一个,全程不需要额外软件。
密钥放在链接里:端到端加密怎么落地
官方安全文档写明,所有文件在离开浏览器之前用 AES-128-GCM 加密,加解密调用浏览器内置的 Web Crypto API。主密钥与盐由客户端现场生成,服务器从未参与。
拿到主密钥之后,客户端用 HKDF-SHA256 派生出三类凭据:每个文件各自的加密密钥与盐、一份元数据密钥,以及一个用于鉴权下载请求的 HMAC 令牌。文件按 RFC 8188 定义的 HTTP 加密内容编码分块加密,每块都带认证标签。
传输环节由 WebTorrent 负责。它逐片校验哈希,对不上就丢弃重下,所以中途被篡改的分片进不了最终文件。这一层校验和加密层是叠加的,不是二选一。
真正巧妙的是密钥的位置。分享链接里 # 之后的部分是 URI fragment,按规范浏览器不会把它发给服务器。服务端只握着密文、盐和加密过的清单,钥匙从一开始就不在它手里。
存储侧还有一层静态加密,文件实际落在 Backblaze 的对象存储上。传输层支持 TLS 1.3,旧设备回落到 TLS 1.2,.app 后缀整体都在 HSTS 预加载列表里,域名也配了 CAA 与 DNSSEC 记录。加密实现以 wormhole-crypto 的名字开源,完整客户端尚未开源,这一点需要留意。
把密钥交给链接的做法在别处也能见到。站内《Excalidraw 在线白板上手》写过类似的端到端加密协作,密钥同样绕开服务器,只在参与者之间传递。
时效与体积:5GB 是分水岭
10GB 是单次传输的总上限,但真正决定体验的是 5GB 这条线。官方 FAQ 的说法是:不超过 5GB 的文件上传到服务器保存 24 小时;超过 5GB 的部分改走浏览器之间的点对点传输。
| 项目 | 官方口径 |
|---|---|
| 单次传输上限 | 10GB |
| 5GB 及以下 | 存服务器,24 小时内可随时取件 |
| 超过 5GB | WebRTC 点对点,双方页面需保持打开 |
| 保留时间 | 24 小时,到期从服务器删除 |
| 账号 | 收发双方都不需要 |
| 费用 | 当前免费,Pro 计划仍在路线图上 |
点对点意味着两端页面都得开着。发完就关标签页,大文件很可能传不完,或者退回到不完整的状态。旧手机更容易卡住,因为加密在浏览器里做,分片要过内存。
上传界面还提供更短的有效期和下载次数上限,官方 FAQ 没有逐条列出这些选项,具体以当时界面为准。能确定的是 24 小时就是天花板,免费版不能延长,也没有密码保护的开关。
还有一处容易被忽略:文件到期删除后,同一个 room 无法恢复。需要长期可用的下载地址,得换别的服务,或者自己搭一套对象存储加签名链接。
与 Send、file.io 的差别
同类服务里,Send 和 file.io 是常被拿来对比的两个,但三者的取舍并不一样。
| 服务 | 单次上限 | 时效 | 加密层级 |
|---|---|---|---|
| Wormhole | 10GB | 24 小时 | 浏览器内端到端,密钥在链接片段 |
| Send(send.vis.ee) | 2.5GB | 由实例配置 | 客户端加密,链接自动过期 |
| file.io | 4GB | 3 天 | 传输层与应用侧加密,无端到端承诺 |
Send 是 Firefox Send 停止服务之后由社区维护的分支,公共实例 send.vis.ee 首页写的单次上限是 2.5GB。它同样在客户端加密、链接到期自动失效,有效期与下载次数由实例运营方设置,换一个实例数字就会变。
file.io 走的是另一条路:官方页面写明单文件上限 4GB、链接 3 天有效、每个文件每天最多下载 10 次,全程不需要账号。但它的加密只到 HTTPS 传输和服务器存储这两层,页面用的说法是文件保存时被加密,没有端到端承诺,运营方理论上能解开。
选择于是变得很直接。在意服务器读不到内容,用 Wormhole 或 Send;在意放几天让人陆续取件,并且接受服务端可以解密,file.io 的时间窗口更宽松。如果两台设备就在同一个局域网,站内《LocalSend 上手》讲的方式根本不经过云端,既省流量也省等待。
隐私边界与适用场景
端到端加密解决的是中间人读不到,不解决链接被谁看到。谁拿到完整链接,谁就能在 24 小时内下载。链接要当面或走可信渠道发,别贴进公开群、论坛和工单系统。
服务端仍然看得到一些东西:房间创建时间、上传与下载的流量大小、请求来源 IP。文件名和体积被包在加密清单里,但传输行为本身藏不住,流量分析依然可行。
Wormhole 目前没有密码保护,这一项在官方路线图上。也没有账号体系、团队空间和下载记录,取件情况只能靠对方口头确认。超过 5GB 必须双方同时在线,中断一次就要重来。
站内《Joplin 安卓版上手》里的端到端加密同步是另一种思路:密钥长期留在设备上,同步盘只存密文。两者对照着看,能更清楚密钥放在哪里会带来什么后果。
适合的场景包括:给外部客户发一段剪辑成片,给同事传一份数据库导出,临时寄一份合同扫描件,或者把手机上拍的原始素材挪到电脑。共同点是只给特定的人、只用一次。
不适合的场景也很明确:要挂几天供多人陆续下载,要保留多个版本,要追溯谁在什么时候取过件,或者需要密码二次验证。这些需求该交给网盘、对象存储或者带审计的企业传输工具。
上手建议是先小后大。第一次用拿一个几十 MB 的文件跑通全流程,确认对方那边能正常打开,再传真东西。超过 5GB 时提前约好时间,两边都别关页面,传完再走。
相关地址
以下为文中项目的官方入口,容量、时效与加密说明以这些页面为准。
- Wormhole(官网):https://wormhole.app/
- Wormhole(常见问题):https://wormhole.app/faq
- Wormhole(安全设计):https://wormhole.app/security
- wormhole-crypto(加密实现开源仓库):https://github.com/webtorrent/wormhole-crypto
- Send(公共实例):https://send.vis.ee/
- file.io(官网):https://www.file.io/
© 版权声明
文章版权归作者所有,转载需注明出处。未声明原创的皆为网络收集,如有侵权请邮箱lishiwenhuagx@sina.com联系下架处理。




