做了一个小工具,解决一个简单的问题:两个人之间传文件、发消息,不想经过任何第三方服务器。
在线体验: https://0trace.org GitHub: https://github.com/momo2029/0trace
它是什么
0trace 是一个基于 WebRTC 的纯 P2P 工具。打开网页,创建会话,把链接发给对方,就能在同一个对话框里聊天和传文件。
数据直接在两台设备之间走,服务器只负责交换信令(帮双方"找到对方"),不碰任何文件内容和聊天记录。
为什么做这个
市面上传文件的工具很多,但大部分都有这些问题:
- 要注册账号
- 文件先传到服务器再下载(慢,而且你不知道服务器存了什么)
- 有大小限制
- 界面臃肿
我想要的很简单:打开网页 → 选文件 → 发链接 → 对方收到。 中间不过任何人的服务器,不留任何痕迹。
技术栈
- 后端:Rust + Axum + Tokio ,编译后不到 1.4 MB ,超级小。
- 前端:纯 Javascript ,零框架零依赖
- 传输:WebRTC DataChannel ,内置 DTLS 加密
- 部署:一行 Docker 搞定
docker run -d -p 2029:2029 ghcr.io/momo2029/0trace:latest
主要特性
- 端到端加密 WebRTC 自带 DTLS/SRTP ,传输全程加密
- 大文件支持 基于 File System Access API 流式传输,实测 10GB+ 没问题
- 实时聊天 文件和消息走同一条加密通道
- 房间码好记 格式是 BOOK23 、STAR89 这种 4 字母 + 2 数字,比一串数字好记
- 跨网络 支持 NAT 穿透,不限局域网
- 多语言 中/英/日/韩/西/法 6 种语言
- 移动端友好 响应式设计,手机直接用
- 断线重连 网络抖动自动恢复,不用重新建房间
和同类工具的区别
| 对比项 | 0trace | 网盘/某雷 | AirDrop | LocalSend |
|---|---|---|---|---|
| 需要注册 | 否 | 是 | 否 | 否 |
| 过服务器 | 否 | 是 | 否 | 否 |
| 跨网络 | 是 | 是 | 否 | 否 |
| 跨平台 | 浏览器即可 | 需要客户端 | 仅苹果 | 需要安装 |
| 大文件 | 10GB+ | 限速/限额 | 无限制 | 无限制 |
简单说:不用装任何东西,打开浏览器就能跨网络 P2P 传文件。
适用场景
- 给朋友传几个 G 的视频,不想等网盘上传下载
- 临时给同事发个文件,不想用微信传(压缩画质/有大小限制)
- 在公司和家里的电脑之间传东西,不在同一个局域网
- 就是单纯不想让文件经过别人的服务器
自部署
如果你不信任我的服务器(完全理解),可以自己部署:
Docker 一行
docker run -d -p 2029:2029 ghcr.io/momo2029/0trace:latest
或者从源码编译(需要 Rust 1.75+)
git clone https://github.com/momo2029/0trace cd 0trace && ./dev.sh
最后
项目完全开源,MIT 协议。
如果觉得有用,欢迎去 GitHub 点个 Star:
https://github.com/momo2029/0trace
有问题或建议欢迎提 Issue ,PR 也非常欢迎。
