V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
cobola

0trace - 纯 P2P 加密传文件/聊天,不过服务器,开箱即用

  •  
  •   cobola · 8 天前 · 383 次点击

    做了一个小工具,解决一个简单的问题:两个人之间传文件、发消息,不想经过任何第三方服务器。

    在线体验: 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 也非常欢迎。

    目前尚无回复
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   5519 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 155ms · UTC 08:55 · PVG 16:55 · LAX 01:55 · JFK 04:55
    ♥ Do have faith in what you're doing.