一个用于 Minecraft 局域网联机的 P2P 启动器实验项目。
项目由两部分组成:
launcher/:Tauri 桌面启动器,负责创建/加入房间、UDP 打洞、QUIC 隧道和本地 TCP 代理。signal-server/:Node.js WebSocket 信令服务器,只负责房间管理和双方信令转发。
- 支持房主创建 6 位房间码。
- 支持访客通过房间码加入。
- 支持 STUN 探测公网地址。
- 支持 UDP 打洞后建立 QUIC 加密隧道。
- 支持访客本地代理端口自动分配。
- 支持本地私有信令地址配置,不需要把真实域名提交到仓库。
注意:本项目目前还没有完全写完,只是测试阶段可以运行。纯 P2P UDP 打洞不保证所有网络都成功。对称 NAT、校园网、公司网、运营商 CGNAT 或严格防火墙环境可能无法连接,后续可加入服务器中继模式作为兜底。
.
├─ launcher/ # Tauri 桌面端
└─ signal-server/ # WebSocket 信令服务器进入信令服务器目录:
cd signal-server
npm install
npm start默认端口:
WebSocket: 9090
Health: 9091正式部署建议使用域名、HTTPS 和反向代理,并开启 WebSocket 支持。
公开仓库中的默认配置位于:
launcher/src/config.js本地私有配置文件位于:
launcher/src/config.local.jsconfig.local.js 已被 .gitignore 忽略,不会上传到 GitHub。可以在本地写入自己的信令服务器地址:
window.MC_P2P_CONFIG = {
signalServerUrl: 'wss://your-domain.com'
};启动器会优先读取 config.local.js,没有本地配置时使用 config.js 里的占位配置。
进入启动器目录:
cd launcher
npm install
npx tauri devcd launcher
npx tauri build --bundles nsis打包后的安装程序通常位于:
launcher/src-tauri/target/release/bundle/nsis/房主:
- 在 Minecraft 中打开「对局域网开放」。
- 在启动器中选择「我是房主」。
- 填写或自动侦测本地 MC 端口。
- 创建房间并把房间码发给访客。
访客:
- 在启动器中选择「我是访客」。
- 输入房主提供的 6 位房间码。
- 等待打洞和隧道建立完成。
- 在 Minecraft 局域网列表中进入房间,或直接连接日志显示的本地代理端口。
本项目当前使用临时的个人非商业测试许可:
- 允许个人非商业学习、测试、运行。
- 禁止未经授权的商业使用。
- 分发、二次修改、再发布、衍生项目、公开部署或组织内部使用均需要作者授权。
- 普通个人非商业测试一般不会追究责任。
- 项目完成前不保证稳定性、可用性或兼容性。
- 项目全部写完后,作者可能会更换为更开放的协议。
详见 LICENSE。