返回 导航

其他

hangge.com

EasyTransfer - 端到端加密文件传输工具使用推荐(附:本地部署教程)

作者:hangge | 2026-06-29 14:18
    在日常工作和生活中,我们经常需要在不同设备之间传输文件。我之前介绍过一个基于网页的跨平台文件传输工具 Snapdrop点击访问),虽然无须安装任何应用,也无须注册登录,但其要求不同的设备处于同一局域网下。
    本文我们将介绍一款开源免费的端到端加密文件传输工具 —— EasyTransfer,它基于 WebRTCVue.js 构建,只需访问一个网页,使用四位设备码即可连接任意网络中的任意设备进行安全文件传输。

一、基本介绍

1,基本介绍

(1)EasyTransfer 是一款免费、匿名、加密且易于使用的端到端加密(E2EE)文件传输工具。它由开发者 WCY-dt 开发并开源在 GitHub 上,目前已有超过 600Star
(2)与传统的文件传输方式不同,EasyTransfer 采用 WebRTC 技术实现点对点(P2P)传输,文件直接从发送方传输到接收方,不经过服务器中转,大大提高了传输速度和安全性。同时,它使用端到端加密技术,确保只有通信双方能够访问文件内容。
提示EasyTransferLocalSend 等局域网传输工具不同,它支持公网和内网穿透,即使两台设备不在同一局域网内,也可以进行文件传输。

2,核心特点

  • 匿名:不需要注册账号,不需要登录,不需要提供任何个人信息
  • 加密:默认使用端到端加密,确保文件传输的安全性
  • 端到端:文件直接从发送方传输到接收方,不经过服务器(内网穿透时可能使用 TURN 服务器)
  • 跨网络:同时支持局域网和公网之间的文件传输
  • 易用:使用四位设备代码连接设备,无任何多余操作
  • 多媒体消息:支持发送文字及多种文件类型,还支持拍照发送
  • 自定义设置:所有模块均可以自定义及自行部署

二、快速上手

1,在线体验

(1)EasyTransfer 提供了在线体验地址,无需安装任何软件即可使用。

(2)在需要传输文件的两台设备上,打开浏览器访问上面地址。页面加载完成后,每台设备都会显示一个唯一的四位设备代码。

(3)在任意一台设备的输入框中,输入另一台设备的四位代码,然后点击【连接】按钮即可建立连接。

2,发送消息与文件

(1)发送文件:将文件拖放到网页上的文件区域,或者点击文件区域选择文件。支持一次性发送多个文件。
提示:文件传输过程中采用端到端加密,传输速度取决于双方的网速和网络状况。在局域网环境下,传输速度会更快。

(2)发送文字:在文字输入框中输入要发送的文字,点击发送即可。

(3)拍照发送:点击拍照按钮,使用摄像头拍摄照片并发送。

(4)接收方会实时收到文件或消息,可以点击下载保存到本地。

3,设置选项

EasyTransfer 的设置界面中,可以进行以下自定义配置:
  • STUN 服务器:用于获取设备的公网 IP 地址
  • TURN 服务器:用于内网穿透,当两台设备无法直接建立连接时,通过 TURN 服务器中转
  • 最大连接数:限制同时连接的设备数量
注意:推荐自行部署 STUN/TURN 服务器,以获得更快的速度和更高的稳定性。默认使用项目提供的免费服务器,在需要内网穿透时,文件可能会上传到公共 TURN 服务器。

附:本地运行与部署

1,环境准备

(1)在本地运行 EasyTransfer 之前,需要准备以下环境:
  • Node.js16.x 及以上版本
  • npm:随 Node.js 一起安装
  • Git:用于克隆项目代码
(2)可以通过以下命令检查环境是否已安装:
# 检查 Node.js 版本
node -v

# 检查 npm 版本
npm -v

# 检查 Git 版本
git --version

2,本地运行

(1)首先,克隆项目代码到本地:
# 克隆项目
git clone https://github.com/WCY-dt/EasyTransfer.git

# 进入项目目录
cd EasyTransfer/client
(2)安装项目依赖:
npm install
(3)启动开发服务器:
注意:在启动命令末尾加上 --host 参数,让 Vite 监听所有网卡地址。注意前面的 -- 不能省略,作用是把 --host 参数传递给 Vite 本身,而不是 npm
npm run dev -- --host

(4)项目启动后,在浏览器中访问 http://localhost:5173 或者 http://IP 地址:5173(具体端口以控制台输出为准)即可看到 EasyTransfer 的网页界面。

3,生产环境构建

(1)如需部署到服务器上供多人使用,需要构建生产版本。执行如下命令构建生产包。
npm run build

(2)构建完成后,dist 目录下会生成静态资源文件。
(3)将 dist 目录下的所有文件部署到任意 Web 服务器(NginxApacheCaddy 等)即可。下面是 Nginx 配置示例:
server {
    listen 80;
    server_name shturl.cc/BLHVU;
    root /path/to/EasyTransfer/dist;
    index index.html;

    location / {
        try_files $uri $uri/ /index.html;
    }

    # 如需支持 Socket.IO 信令服务,还需配置反向代理
    location /socket.io/ {
        proxy_pass http://localhost:3000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
}

4,Docker 部署

(1)EasyTransfer 支持使用 Docker 进行部署,首先执行如下命令构建镜像:
docker build -t easytransfer .

(2)然后执行如下命令运行容器:
docker run -d -p 8080:80 --name easytransfer easytransfer

5,自定义配置

(1)如果需要修改信令服务器地址,可以编辑 ./client/.env.production 文件,修改 VITE_SIGNAL_SERVER_URL 为我们部署的信令服务器地址。
VITE_SIGNAL_SERVER_URL=wss://your-signal-server.com
(2)如果需要修改 STUN/TURN 服务器,可以编辑 ./client/src/const.ts 文件,修改 iceServers 配置。
注意:自行部署 TURN 服务器可以避免文件通过公共服务器中转,提高传输隐私性。具体部署方法请参考项目 Wiki
// ./client/src/const.ts
export const iceServers = [
  {
    urls: 'stun:your-stun-server.com:3478'
  },
  {
    urls: 'turn:your-turn-server.com:3478',
    username: 'your-username',
    credential: 'your-password'
  }
]
评论

全部评论(0)

回到顶部