平时传文件给同事,微信有大小限制,邮箱附件卡在10MB,用网盘还得让对方注册登录。WeTransfer免费版限2GB,各种限制让人头大。
![]()
在GitHub上发现一个5.1k星的项目——file-transfer-go,基于WebRTC的P2P文件传输工具,文件直接从你电脑到对方电脑,不经过任何服务器中转。
核心功能
![]()
P2P直连传输— 基于WebRTC DataChannel,文件直接从发送方到接收方,服务器只负责信令交换,不碰你的数据。
端到端加密— WebRTC自带加密,传输过程全程加密,服务器看不到文件内容也不存储。
多文件同时传— 支持一次选多个文件批量传输,不用一个一个来。
桌面共享— 除了传文件还能实时共享屏幕,相当于白送了个远程协助功能。
大文件断点续传— P2P和WebSocket模式下都支持断点续传,网络断了接着传。
目录同步— 现代浏览器下直接拖整个文件夹,保持目录结构不变。
文字快传— 不光传文件,还能快速分享文本内容,一段代码一个链接的事。
全平台部署— Linux/Mac/Windows单文件部署,也支持Docker一键启动。
响应式设计— 手机、平板、电脑都能用,UI自适应。
![]()
技术栈
前端Next.js 15 + React 18 + TypeScript + Tailwind CSS,后端Go 1.22 + WebSocket,传输层WebRTC + P2P直连 + STUN/TURN穿透。前后端分离,Docker容器化部署,支持amd64和arm64双架构。
安装指南
Docker一键部署(推荐):
git clone https://github.com/MatrixSeven/file-transfer-go.gitcd file-transfer-godocker-compose up -d或者直接拉镜像:
docker run -d -p 8080:8080 --name file-transfer matrixseven/file-transfer-go:latest本地构建:
git clone https://github.com/MatrixSeven/file-transfer-go.gitcd file-transfer-go./build-fullstack.sh./dist/file-transfer-go部署完访问 http://localhost:8080 即可使用。
![]()
使用方法
整个流程非常简单:选文件或输入文字 → 系统生成一个6位取件码 → 把取件码发给对方 → 对方输入取件码接收。对方不需要装任何软件,打开浏览器输入码就行。桌面共享也一样,生成取件码分享,对方输入码就能看到你的屏幕。
![]()
对于经常需要传文件但又不想用第三方网盘的开发者来说,file-transfer-go确实是个不错的选择。P2P直连意味着速度不受服务器带宽限制,端到端加密保证了隐私安全,自己部署完全可控。
项目目前还在活跃开发中,74个commits,10个版本标签,迭代节奏不错。要说不足的话,P2P传输依赖STUN/TURN服务器做NAT穿透,复杂网络环境下可能需要自己配置TURN服务器,对非技术用户有一点上手门槛。另外项目比较年轻,部分边缘场景可能还需要打磨。
总的来说,如果你需要一个轻量、安全、自托管的文件传输方案,这个项目值得一试。
你平时传文件用什么工具?微信、网盘、还是AirDrop?评论区聊聊。
项目地址:https://github.com/MatrixSeven/file-transfer-go
关注「开源技术爱好者」,每周一个实用开源工具,帮你少花钱多办事。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.