- 郑智允 的博客
MC 联机指南(P2P)
- 2024-8-30 17:56:49 @
MC 离线版联机一直是一个问题,尤其是对于没钱的人 (我)。所以就有了这篇文章。
此方法在目前受限于自定义局域网联机的版本仅能支持 1.12 及 1.14 以上版本。
支持 MacOS、Linux、Windows 等操作系统。
只想看步骤的看 这里。
前言
本文看着长,实际没多少步骤,主要是图有点长。
MC 有 2 种联机方式:局域网联机和服务器。
然而由于各种各样的原因,你可能无法开服,而局域网联机又要求两个玩家处于同一个网络内,并且需要加入者为正版玩家。正版玩家的限制好处理,只需要在开联机的客户端安装自定义局域网联机模组并取消正版验证解决。但是同一网络这个问题对于某些人 (我) 很难解决,我踩过的坑如下:没有公网 ip、路由器不支持端口映射(什么路由器 我家的)、免费的反向代理工具网速太慢、付费的反向代理工具没钱用……
因此,本文将通过 p2p 异地组网技术实现两个在不同网络下的客户端的联机。
需要的材料
- 浏览器
- ZeroTier 软件(所有要参与联机的人)
- ZeroTier 账号(开放联机的人)
- PCL II or HMCL 启动器
- 能装 mod 的版本 Fabric、Forge 或其他版本皆可
- 自定义局域网联机模组
- 禁用聊天举报模组
- 一个邮箱(若没有可以上 outlook.com 免费注册一个)
步骤
1. 下载 ZeroTier
在 https://www.zerotier.com/download/ 中找到你对应的版本并下载安装。
2. 注册 ZeroTier
开放联机的人需要注册一个 ZeroTier 账号,有免费套餐。
(填写完信息后点 Sign Up,你也可以使用微软账号或 github 账号一键登录)
(点击 Accept)
(见到这个页面说明你可以进行下一步了)
打开你的邮箱,找到这封验证邮件(如果找不到,请尝试在垃圾邮件中寻找)。如下图:
打开 Link to e-mail address verification 链接,之后如下图:
点击 Create a Network。
如下:
记住上图中的 NETWORK ID
使用安装好的 zerotier 连接这个 Network。
这里有两种方法。
第一种:使用 GUI
因为手边没有其他系统的电脑,所以暂不知道其他系统下如何通过 GUI 操作。这里展示 Windows 下的操作。
找到任务栏中的托盘
左键单击打开后右击 ZeroTier 图标
弹出以下菜单:
(请忽略上图中从上往下数第三栏,这是我曾经加入过的 Network)
左键单击 Join New Network...
在弹出的框中输入需要连接的 NETWORK ID 后单击 Join 按钮即可加入。
加入后菜单类似这样:
点击左侧的 Disconnect 即可断开连接。
第二种:使用命令行
如果你找不到 ZeroTier 的 GUI 界面,可以使用 zerotier-cli 进行连接。
Windows 下可以 Win+X 弹出菜单后按 A 进入管理员 Powershell(或Win+R 弹出运行窗口后输入 powershell 并按下 Ctrl+Shift+Enter)
其它系统打开终端即可。
在命令行中输入
zerotier-cli join <你的 NETWORK ID>
如:
zerotier-cli join cc1d1da0d7d8cdeb
按下 Enter 执行后就成功加入网络了。
断开连接输入
zerotier-cli leave <你的 NETWORK ID>
即可
在 MC 端开放局域网联机
开放联机者
需要开放联机的人打开 MC(装好禁用聊天举报和自定义局域网联机的),进入一个要联机的存档,单击 ESC 到菜单后单击对局域网开放,并单击在线模式按钮,使其切换到 离线模式+UUID 修复。调整好其他参数并确定好端口后点击确认。
接下来返回 ZeroTier 网址,即 https://my.zerotier.com,页面如下:
点击你的 NETWORK ID,如上图中的 8bd5124fd6efe2bc,跳转到这个页面:
当有人连接时,页面类似这样:
选中连接,并点击 Authorize 按钮。
然后记住 Managed IPs 那一栏中联机开放者的 IP(使用 Address 确认连接者,查看方法为 GUI 菜单中的 My Address 或终端输入 zerotier-cli info
查看)
其他参与者
打开 MC,点击多人游戏,单击直接连接,输入联机开放者的 Managed IP 和开放的端口。以上一张图为例,若联机开放端口为 25565 则在直接连接中输入 10.243.63.201:25565
。
Q&A
- 使用 LittleSkin 登录者一发送消息其他人就会强制退出。 解决方法:在开放联机者和参与联机者的 MC 中都安装禁用聊天举报模组
- 参与联机者尝试联机时出现无效会话。 解决方法:在开放联机者的 MC 中安装自定义局域网联机并在开放联机时切换至 离线联机+UUID 修复。