演示
打开 MC-Tunnel,最上面就是可以直接发给朋友的连接地址。在游戏里点“对局域网开放”,再点“启动隧道”,工具会自动找到这个世界用的端口,连上你自己的服务器,界面上会显示隧道状态和运行日志。朋友只要在“多人游戏 → 添加服务器”里粘贴这个地址就能进来,不需要安装任何软件。
它怎么工作
家里和校园网的电脑一般没有公网 IP,外面的人找不到它。解决办法是借一台有公网 IP 的云服务器当中转站:我的电脑主动连上中转站,朋友也连中转站,中转站在中间传话。
MC-Tunnel 先要找到游戏世界。Minecraft 开放局域网以后,会每秒在局域网里“喊”一次自己的端口,工具在所有网卡上听这个广播;万一听不到,就检查本机 Java 进程开着哪些端口,逐个试探。找到之后,它在本机开一个固定端口当作“桥”,把连接转给游戏实际用的端口,这样不管游戏这次随机用了哪个端口,后面的配置都不用改。最后,它启动开源内网穿透工具 frp 的客户端,用令牌连上服务器上的 frps,把服务器的 25565 端口转发到这座桥上。
第一版做出来以后,我自己用的时候遇到过三次“用不了”。一次是连接状态永远不更新,原因是读日志的代码有个小错误,日志从来没被解析;一次是本地桥也用了 25565,和游戏本身抢端口,后来改成从 35565 开始自动挑一个空闲端口;还有一次是收不到游戏的广播,因为我的电脑同时装了虚拟机和虚拟局域网,广播从一个意想不到的网卡出去了,于是改成在所有网卡上监听,再加上端口探测兜底。
下载和使用
exe 内置 frpc 0.71.0 和它的许可证,不含任何人的服务器地址或令牌。程序没有数字签名,Windows SmartScreen 可能提示“已保护你的电脑”;可以先用页面上的 SHA-256 校验文件,再决定是否运行。不想用 exe 就下载源码,用 Python 3.12 运行。
先在自己的服务器上搭 frps
- 准备服务器任意有公网 IP 的 Linux 云服务器,建议带宽 3 Mbps 以上。下面以 Ubuntu 和 frp 0.71.0 为例。
- 下载 frp 服务端在服务器上运行:
wget https://github.com/fatedier/frp/releases/download/v0.71.0/frp_0.71.0_linux_amd64.tar.gz tar xzf frp_0.71.0_linux_amd64.tar.gz sudo cp frp_0.71.0_linux_amd64/frps /usr/local/bin/ - 生成令牌运行
openssl rand -hex 16,把输出的 32 位字符串保存好。它相当于中转站的密码,不要发给别人。 - 写服务端配置创建
/etc/frp/frps.toml,按包里的server/frps.toml.example修改:
把bindPort = 7000 auth.method = "token" auth.token = "your-frp-token" allowPorts = [{ start = 25565, end = 25565 }]auth.token改成上一步生成的令牌。 - 安装成系统服务参考
server/frps.service.example创建/etc/systemd/system/frps.service,然后运行:
看到sudo systemctl daemon-reload sudo systemctl enable --now frps systemctl status frpsactive (running)即可。 - 放行端口在云控制台的防火墙/安全组放行入方向 TCP 7000 和 TCP 25565。如果开了 ufw,再运行
sudo ufw allow 7000/tcp和sudo ufw allow 25565/tcp。
再在 Windows 上运行 MC-Tunnel
- 选择 exe 或源码下载
mc-tunnel-windows.zip并核对 SHA-256,解压后直接运行MC-Tunnel.exe;或者下载mc-tunnel.zip,安装 Python 3.12,从 frp Releases 下载 Windows 版,把frpc.exe放进gui\,运行python gui\mc_tunnel_gui.py。 - 填写设置第一次打开会弹出设置窗口:服务器地址填你的公网 IP 或域名,服务器端口填
7000,令牌和frps.toml里的完全一致,朋友端口填25565。令牌输入框显示为星号。配置保存在%LOCALAPPDATA%\MCTunnel\config.json。 - 开放局域网世界打开 Minecraft Java 版,进入单人世界,按 ESC → “对局域网开放” → “创建局域网世界”。端口不用记,工具会自动发现。
- 启动隧道在 MC-Tunnel 点“启动隧道”。等“公网隧道”显示已连接、“局域网世界”显示端口号,再点“测试公网”确认外网能连上。
- 发给朋友点“复制”,把地址发给朋友。朋友在“多人游戏 → 添加服务器”里粘贴地址即可,不需要安装 MC-Tunnel 或 VPN。玩完点“停止”,公网入口立即关闭。
- 自己打包(可选)安装 Python 3.12 和 PyInstaller 后运行:
脚本不会嵌入配置,会带上 frp 许可证,并在打包后扫描产物、输出 SHA-256。python gui\build.py --frpc D:\Tools\frp\frpc.exe
常见问题
一定要有云服务器吗?
是的。家庭和校园网的电脑一般没有公网 IP,需要一台有公网 IP 的服务器做中转。这个工具不提供公共中转服务器。
延迟会变高吗?
会多走一趟服务器。服务器离你和朋友越近,延迟越低,选同城或同省的机房比较好。
语音模组(比如 Simple Voice Chat)能用吗?
语音模组走 UDP,这个工具目前只转发游戏本身的 TCP 连接,所以语音不经过隧道。
支持基岩版、手机版吗?
只支持 Java 版(电脑版)的“对局域网开放”,客户端只支持 Windows。
杀毒软件报毒怎么办?
frp 是常用的开源内网穿透工具,经常被杀毒软件误报为“黑客工具”。请只从本站或 frp 官方下载,并核对下载页给出的 SHA-256 校验值。
点了开始,但提示找不到局域网世界?
先确认游戏里已经点了“对局域网开放”,并且聊天栏显示了端口号。如果电脑上装了虚拟网卡,稍等几秒,工具会自动改用端口探测去找。
本工具不是 Mojang 或 Microsoft 的官方产品,与它们无关。它不分发任何游戏内容,只转发你自己的局域网连接。内网穿透使用开源项目 frp(Apache-2.0 许可证)。请保管好自己的令牌,不要让别人把你的服务器当作免费中转站。