返回目录
开源项目其他开源工具类新手

file-transfer-go:基于 WebRTC 的端到端 P2P 文件传输工具

由 MatrixSeven 开发的 Go + React(Next.js)点对点文件传输工具,基于 WebRTC DataChannel 实现端到端直连传输,支持文件、文字、桌面共享与目录同步,数据不经过服务器存储,提供 Docker 一键部署与本地构建部署方式,采用 MIT 许可证。

0 次阅读2026/09/15 发布
file-transfer-go:基于 WebRTC 的端到端 P2P 文件传输工具 来源图片

社区作者 · zZz

它解决什么问题

file-transfer-go(文件快传)是一个安全、快速、简单的点对点文件传输解决方案,无需注册、即传即用,端到端数据传输完全基于 WebRTC 的 P2P 直连。

核心功能:

  • 文件传输:支持多文件同时传输;
  • 文字传输:快速分享文本内容;
  • 桌面共享:实时屏幕共享;
  • 目录同步:在现代浏览器下支持目录同步;
  • 连接状态同步:实时连接状态 UI 同步;
  • 端到端加密:数据传输安全,服务器不存储文件;
  • 文件断点传输:P2P/WS 下大文件断点续传支持;
  • 响应式设计:适配手机、平板、电脑;
  • 多平台支持:支持 linux/macos/win 单文件部署。

前端技术栈:Next.js 15(React 全栈框架,支持 SSR/SSG)、React 18、TypeScript 5、Tailwind CSS 3.4、Radix UI(无障碍组件库)、Zustand(轻量级状态管理)、Lucide React(图标库)。

后端技术栈

后端技术栈
Go 1.22、WebSocket(实时双向通信)、内存存储、标准库原生 HTTP 服务器。

传输协议:WebRTC DataChannel(端到端数据传输)、P2P 直连(点对点连接,无需中转)、ICE 框架(网络连接协商)、STUN/TURN(NAT 穿透支持)。

架构特点:微服务架构(前后端分离)、实时通信(WebSocket + WebRTC)、响应式设计(移动端适配)、容器化(Docker 部署支持)。

项目架构示意:发送方 ←── WebSocket 信令 ──→ 服务器 ←── WebSocket 信令 ──→ 接收方;发送方与接收方之间通过 WebRTC P2P 直连传输。

使用方法:

  • 发送文件:选择文件 → 生成取件码 → 分享 6 位码;
  • 文字传输:输入文字内容 → 生成取件码 → 分享给对方;
  • 桌面共享:点击共享桌面 → 生成取件码 → 对方输入码观看。

页面提供的示意图:配图 1 为项目演示截图;配图 2 为 Star History Chart(仓库 Star 趋势)。

适用对象:需要在两台设备间快速、私密地传输文件、文字或共享屏幕的个人用户、团队与开发者;关注数据不落地服务器、端到端加密场景的用户;希望自建部署传输服务的运维与开发人员。

— 本文由 AI 根据公开来源辅助整理,命令、版本与许可证请在使用前到原始页面复核。

安装 / 开始使用

一、准备环境

  • 方式一(推荐):安装 Docker 与 Docker Compose;
  • 方式二(本地构建):需具备 Go 1.22 环境(后端)与 Node.js/yarn 环境(前端);
  • 方式三(开发环境):需同时具备 Go 1.22 与 Node.js/yarn 环境。

二、方式一

命令
Docker 一键部署(推荐)

使用 Docker Compose(最简单):

步骤 1

可复制命令
git clone https://github.com/MatrixSeven/file-transfer-go.git

步骤 2

可复制命令
cd file-transfer-go
  1. docker-compose up -d

或直接使用 Docker 镜像:

步骤 1

可复制命令
docker run -d -p 8080:8080 --name file-transfer-go matrixseven/file-transfer-go:latest

三、方式二

本地构建部署

步骤 1

可复制命令
git clone https://github.com/MatrixSeven/file-transfer-go.git

步骤 2

可复制命令
cd file-transfer-go

步骤 3

可复制命令
./build-fullstack.sh

步骤 4

可复制命令
./dist/file-transfer-go
  1. 访问 http://localhost:8080 开始使用

四、方式三

开发环境部署

步骤 1 · 启动后端服务:

可复制命令
make dev

步骤 2 · 新开终端启动前端服务:

可复制命令
cd chuan-next && yarn && yarn dev

五、部署配置说明 环境变量配置:

  • NODE_ENV:运行环境(development/production)
  • PORT:服务端口(默认 8080)
  • GO_BACKEND_URL:后端服务地址
命令
Docker 配置选项(docker-compose.yml 可配置项):

environment:

可复制命令
NODE_ENV=production
可复制命令
PORT=8080

ports:

restart:unless-stopped

  • "8080:8080"

多架构支持:项目支持多架构 Docker 镜像,包括 linux/amd64(x86_64 架构)与 linux/arm64(ARM 64 位架构)。

镜像版本:

  • latest:最新稳定版本
  • v1.0.x:特定版本号
  • dev:开发版本

六、首次运行与使用 启动后访问 http://localhost:8080。发送文件:选择文件 → 生成取件码 → 分享 6 位码;文字传输:输入文字内容 → 生成取件码 → 分享给对方;桌面共享:点击共享桌面 → 生成取件码 → 对方输入码观看。

七、常见问题

  • 页面无法访问:检查 PORT 是否被占用、容器端口映射是否为 8080:8080;

前端依赖安装失败:确认已进入 chuan-next 目录并执行

可复制命令
yarn 安装

  • 前后端未连通:检查 GO_BACKEND_URL 配置的后端服务地址是否正确;
  • 部署环境选择:部署到 ARM 设备时选用 linux/arm64 镜像,x86 设备选用 linux/amd64 镜像;
  • 来源未说明的其他排查项待核验。

来源教程配图

项目演示
配图 1 · 项目演示查看原图
Star History Chart
配图 2 · Star History Chart查看原图

适用场景

在两台设备之间点对点直传大文件
数据不经过服务器存储
向对方快速分享文本内容并生成 6 位取件码
实时桌面/屏幕共享并进行远程演示
在现代浏览器下进行目录同步
自建私有文件传输服务
支持 Docker 一键部署与多架构镜像
在手机
平板
电脑等响应式设备间跨平台传输