使用帮助

详细的部署指南和使用说明,帮助您快速上手文件传输工具

目录

部署指南

文件传输工具支持多种部署方式,您可以根据自己的需求选择最适合的部署方案。

Docker 部署

方法一:使用 Docker Compose(推荐)

git clone https://github.com/MatrixSeven/file-transfer-go.git
cd file-transfer-go
docker-compose up -d

方法二:直接使用 Docker 镜像

docker run -d -p 8080:8080 --name file-transfer-go matrixseven/file-transfer-go:latest

部署提示

  • Docker Compose 方式会自动处理依赖和网络配置
  • 服务启动后访问 http://localhost:8080
  • 可以通过修改 docker-compose.yml 自定义端口

二进制部署

下载预编译版本

前往 GitHub Releases 页面 下载对应系统的二进制包

支持的平台:
  • Linux (AMD64/ARM64)
  • Windows (AMD64)
  • macOS (AMD64/ARM64)

启动服务

下载后直接运行可执行文件即可:

# Linux/macOS
chmod +x file-transfer-server-linux-amd64
./file-transfer-server-linux-amd64

# Windows
file-transfer-server-windows-amd64.exe

注意事项

  • 首次运行可能需要防火墙授权
  • 默认端口为 8080,可通过参数修改
  • 建议在生产环境使用 systemd 等进程管理工具

自行构建

环境要求

  • Go 1.21 或更高版本
  • Node.js 18 或更高版本
  • Git

构建步骤

git clone https://github.com/MatrixSeven/file-transfer-go.git
cd file-transfer-go
./build-fullstack.sh 
./dist/file-transfer-go

构建注意事项

  • 确保网络畅通,需要下载 Go 模块和 npm 包
  • 首次构建可能需要较长时间
  • 构建脚本会自动处理前后端的编译和打包

桌面共享权限问题

移动端无法共享桌面?

移动端限制

这是移动端浏览器的限制,WebRTC 没有在移动浏览器端实现获取桌面视频流的功能,所以这个能力无法在移动浏览器端实现。

解决方案:请使用桌面设备进行屏幕共享。

PC 端无法共享桌面?

HTTPS 要求

如果是自行部署,无论是部署在局域网/公网,如果要实现桌面分享,需要必须保证服务访问地址是 TLS 加密,也就是 https 方式访问。

  • localhost 地址可以直接分享桌面
  • 其他地址需要配置反向代理(如 nginx)启用 HTTPS
  • 这是浏览器的安全限制,直接 IP 无法分享桌面

临时解决方案

如果一定要用 IP+端口 的方式进行桌面分享,可以在浏览器设置中:

  1. 打开浏览器设置
  2. 搜索 WebRTC 相关设置
  3. 开启 Anonymize local IPs exposed by WebRTC
  4. 设置为 Enabled 状态

端口配置

修改服务端口

以 Linux 为例,将服务绑定到 18080 端口:

./file-transfer-server-linux-amd64 -port 18080

Docker 端口映射

使用 Docker 时修改端口映射:

docker run -d -p 18080:8080 matrixseven/file-transfer-go:latest

端口选择建议

  • 避免使用系统保留端口(1-1024)
  • 确保选择的端口未被其他服务占用
  • 防火墙需要开放对应端口
  • 建议使用 8080, 3000, 8000 等常用端口

安全内网部署

实验性功能

以下方案理论可行,但未经充分验证,请在测试环境中验证后再用于生产。

内网部署方案

1. 部署内网 DNS 服务

配置内网域名解析,避免直接使用 IP 地址访问

2. 配置 STUN/TURN 服务

部署内网 STUN/TURN 服务器,处理 NAT 穿透

3. 更新服务配置

在应用设置中配置自定义 STUN/TURN 服务器地址

STUN/TURN 服务器推荐

  • Coturn:开源 TURN/STUN 服务器
  • Janus:WebRTC 网关,包含 STUN/TURN 功能
  • 自建方案:基于 Docker 快速部署

配置提示

在应用的 设置 页面中,可以添加自定义 ICE 服务器:

  • STUN 服务器格式:stun:your-server.local:3478
  • TURN 服务器格式:turn:your-server.local:3478
  • TURN 服务器需要用户名和密码认证

数据传输机制

传输方式

✓ 点对点传输

通过 WebRTC 建立直接连接,数据不经过服务器

✓ 中继传输

当直连失败时,通过 TURN 服务器中继数据

传输流程

1

建立信令连接

通过 WebSocket 服务器交换连接信息

2

NAT 穿透

使用 STUN 服务器检测网络环境,尝试直连

3

数据传输

建立 P2P 连接后直接传输,或通过 TURN 中继

隐私保护

  • 所有文件数据通过点对点传输,服务器不存储任何文件内容
  • 房间码具有时效性,连接断开后自动失效
  • 支持端到端加密,确保传输安全
  • 即使使用 TURN 中继,数据也是加密传输的

交流反馈

交流群组

欢迎加入我们的交流群,获取最新更新、技术支持和经验分享:

  • 报告问题和建议
  • 获取使用帮助
  • 分享部署经验
  • 了解新功能动态
交流反馈群二维码

扫码加入交流群

其他联系方式

GitHub Issues

提交 Bug 报告和功能请求

前往 Issues 页面 →

项目文档

查看详细的技术文档

前往项目主页 →

反馈建议

为了更好地帮助您解决问题,请在反馈时提供:

  • 详细的问题描述和复现步骤
  • 部署环境信息(Docker/二进制/自构建)
  • 浏览器类型和版本
  • 网络环境(内网/公网/NAT类型)
  • 相关的错误日志或截图