我的世界联机

可能大多数玩家都用的局域网联机或者内网穿透的方法进行联机,但是缺点:必须装相同的 mod,而且有时候延迟高并且卡顿。

本地开服联机工具

我原来使用的是以下工具:

  1. 樱花内网穿透https://www.natfrp.com
  2. OPL 联机工具使用教程
  3. Radmin LAN联机教程 - MC Java 版 使用 Radmin LAN 进行远程联机

人少的话联机体验还是很好的,如果人多的话就会出现卡顿。

MCSManager

官方文档:https://docs.mcsmanager.com/zh_cn

MCSManager 是一款开源、分布式、一键部署、支持 Minecraft 和 Steam 游戏服务器的控制面板。

MCSManager 在 Minecraft 和其他游戏社区内已有一定的流行程度,它可以帮助你:

  • 集中管理多个物理服务器
  • 动态在任何主机上创建游戏服务端
  • 提供安全可靠的多用户权限系统
  • 轻松管理多个服务器

开始部署

环境要求

  • 安装 OpenJDK 环境
  • 镜像部署需要有 Docker 环境

注意事项

  1. 如果通过脚本安装 MCSManager,需要在节点页面安装镜像,并且要应用上。
  2. 如果通过 Docker 部署,则不需要手动安装 JDK 环境,直接上传核心然后启动即可。

部署过程

这里我用1Panel 来管理 MCSManager(用 1Panel 来管理 MCSManager 也是不错的选择)

如果已经安装了 1Panel,就不用另外安装 Docker 环境了,1Panel 安装过程中会自动安装 Docker 环境。
1Panel 的安装教程

MCSManager 的 Linux 自动安装

因为需要注册到系统服务,一键安装脚本必须使用 root 权限 运行。

一键安装命令

1
sudo su -c "wget -qO- https://script.mcsmanager.com/setup_cn.sh | bash"

注意事项

  • 脚本安装的面板,大概率不用手动配置节点。
  • 如果需要手动配置节点,请参考官方文档:节点配置文档

1Panel 使用 Docker 部署 MCSManager

1Panel 应用商店内有 MCSManager,但不是最新版,因此我们还是使用 Docker 来一键部署 MCSManager。

部署步骤

  1. 进入 1Panel,选择 容器编排
  2. 输入以下内容创建 docker-compose.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# docker-compose.yml
services:
web:
image: githubyumao/mcsmanager-web:latest
ports:
- "23333:23333"
volumes:
- /etc/localtime:/etc/localtime:ro
- /opt/1panel/apps/mcsm/web/data:/opt/mcsmanager/web/data
- /opt/1panel/apps/mcsm/web/logs:/opt/mcsmanager/web/logs

daemon:
image: githubyumao/mcsmanager-daemon:latest
restart: unless-stopped
ports:
- "24444:24444"
environment:
- MCSM_DOCKER_WORKSPACE_PATH=/opt/1panel/apps/mcsm/daemon/data/InstanceData
volumes:
- /etc/localtime:/etc/localtime:ro
- /opt/1panel/apps/mcsm/daemon/data:/opt/mcsmanager/daemon/data
- /opt/1panel/apps/mcsm/daemon/logs:/opt/mcsmanager/daemon/logs
- /var/run/docker.sock:/var/run/docker.sock

注意事项

  • Docker 安装的面板需要手动配置节点。
  • 节点配置请参考官方文档:节点配置文档

记得在防火墙中开放以下端口:

  • 23333:MCSManager Web 面板端口
  • 24444:MCSManager 守护进程端口
  • 25565:Minecraft 游戏内默认端口

初始设置

安装完成后打开 MCSManager,第一步设置账号和密码。然后可以跳过教程(基本没什么用)。

初始设置 1
初始设置 2
初始设置 3


配置 JDK 环境镜像

  1. 打开 节点页面镜像管理新增镜像,下载你需要的 JDK 版本
  2. 如果列表中没有你需要的版本,点击 使用 DockerFile 自定义创建
  3. 打开创建 OpenJDK 17 环境镜像复制里面的内容到使用 DockerFile 自定义创建
  4. 将 Dockerfile 中的 17 改为 21 即可创建 JDK21 环境
  5. 构建完成后即可使用

部署 Minecraft 服务器

  1. 下载服务端核心

首先选择你的加载器并下载服务端 .jar 文件:

需要下载服务端(server)的 .jar 结尾文件。

  1. 打开 MCSManager 的 应用实例页面,点击 新增应用(前提你得有节点存在)
  2. 选择 Minecraft Java 版游戏服务器继续
  3. 选择 上传单个服务端软件,输入实例名称
  4. 将启动命令修改为:
1
java -server -Dfile.encoding=UTF-8 -Duser.language=zh -Duser.country=CN -jar ${ProgramName} -installServer
  1. 上传你下载的核心文件,此时启动命令会自动发生变化

  2. 创建完成后,点击 应用实例设置容器化

  3. 启用 Docker 容器,Docker 镜像选择合适的版本(例如 mcsm-custom:21

  4. 网络模式改为 host,保存后点击 开启启动

  5. 修改启动命令

等待实例加载完成后会自动停止。打开 文件管理,找到以下文件之一:

  • minecraft_server.1.12.2.jar(版本号不同显示不同)
  • run.sh

然后打开 应用实例设置,修改启动命令:

1
2
3
4
5
# 如果使用 jar 文件启动
java -Dfile.encoding=UTF-8 -jar minecraft_server.1.12.2.jar

# 如果使用 run.sh 启动
bash run.sh

根据文件管理内生成的不同文件自行选择或更改为合适的命令。

  1. 同意 EULA 并启动

启动命令更改完成以后再次点击 开启运行实例,观察终端输出,系统会提示你打开服务端配置文件,将 eula.txt 中的:

1
eula=false

修改为:

1
eula=true

然后再次运行实例,成功后会显示加载世界等绿色成功信息。

  1. 非正版玩家设置

如果你不是正版玩家,打开服务端配置文件 server.properties,修改正版验证选项:

1
online-mode=false

每次修改配置后需要重新启动实例才能生效。


客户端连接

前面我们放行的游戏内端口是 25565,使用以下格式连接:

1
你的服务器IP:25565

在本地使用 PCL 启动器下载对应的 Minecraft 版本和 mod 加载器即可。

IPv4 端口占用问题

如果你的服务器没有 IPv6 只有 IPv4,可能会报错提示端口被占用无法绑定 25565。此时可以打开服务端配置文件 server.properties,将 server-ip 设置为:

1
server-ip=0.0.0.0

MOD 安装

  1. 在 MC 百科等平台查看该 MOD 是否需要双端安装,还是仅需客户端或服务端安装
  2. 服务端 MOD 放在文件管理内根目录的 mods 文件夹中
  3. 重启服务即可生效

整合包安装

  1. 找到你想玩的整合包的 .zip 文件
  2. 在 MCSManager 中上传整合包服务端文件 .zip
  3. 确保压缩包内包含 server.jar 核心文件
  4. 修改启动命令:
1
java -jar server.jar --installServer
  1. 方法同上,首次运行后找到生成的启动文件,再次修改启动命令

如果服务端整合包内有run.sh也可以直接运行该命令

  1. 本地需要安装版本相同的客户端整合包才可以正常游玩

Minecraft 支持插件的服务端核心对比

仅支持插件(无模组)

核心 插件生态 模组 性能 维护状态 一句话总结
Paper Bukkit/Spigot ★★★★★ 活跃 生产环境首选,极致优化
Spigot Bukkit/Spigot ★★★☆☆ 活跃 经典稳定,生态最老
Purpur Bukkit/Spigot ★★★★☆ 活跃 Paper 的超集,特性自由开关
Pufferfish Bukkit/Spigot ★★★★☆ 活跃 高并发优化,适合大服
Tuinity Bukkit/Spigot ★★★★☆ 已并入 Paper 多线程优化,已停更
Yatopia Bukkit/Spigot ★★★★☆ 已停更 Tuinity 的再优化版

插件 + Forge 模组(混合端)

核心 插件生态 模组 版本范围 维护状态 一句话总结
Mohist Paper/Spigot Forge 1.16–1.21 活跃 最主流插件+Forge 混合端
Arclight Paper/Spigot Forge 1.19–1.21 活跃 轻量级混合端,1.20+ 推荐
Sponge SpongeAPI Forge/Fabric 1.16+ 活跃 高版本 Mod 支持,插件生态小
CatServer Bukkit/Spigot Forge 1.12.2–1.16.5 已停更 国内早期混合端
KCauldron/Thermos/Uranium Bukkit/Spigot Forge ≤1.7.10 已停更 老版本专用

快速选择指南

需求场景 推荐核心
只要插件 Paper / Purpur
插件 + Forge Mod Mohist(1.16–1.21) / Arclight(1.20+)
插件 + Fabric Mod Sponge(Fabric)

下载入口

插件服安装(皮肤插件)

如果你学会了上面的安装教程,也可以看一下插件服的安装过程

Paper 核心安装与插件部署

安装步骤

  1. 在 MCSManager 中创建实例,上传下载好的 Paper 核心文件(例如 paper-1.20.4.jar
  2. 修改启动命令为安装命令:
1
java -jar server.jar --installServer

注意:请将 server.jar 替换为你实际上传的核心文件名称。

  1. 点击启动,等待安装完成后实例会自动停止

安装完成后,修改启动命令为:

1
java -jar server.jar -nogui

注意:请将 server.jar 替换为实际文件名称。

插件安装

安装完成后,打开 文件管理,你会看到根目录下多了一个 plugins 文件夹,这就是存放插件的地方。

  • 将下载好的 .jar 格式插件文件上传至 plugins

Fabric 服务端通过模组支持 Bukkit 插件

通过 Cardboard 模组,Fabric 服务端可以兼容运行 Bukkit/Spigot 插件。

下载 Fabric 服务端

访问官方页面下载对应版本的 Fabric 服务端:

按照与 Paper 服务端相同的方式部署并运行一次,完成基础环境初始化。

安装必要模组

在文件管理中找到 mods 文件夹,上传以下模组文件(需下载与服务器版本对应的版本):

模组名称 说明 下载地址
Fabric API 大多数 Fabric Mod 的依赖模组 CurseForge
Cardboard Bukkit 插件支持模组 Cardboard 官网
iCommon API Cardboard 的依赖模组 Modrinth

请确保所有模组版本与你的 Minecraft 服务端版本一致。

启动后观察终端输出,当出现以下内容时:

1
Downloading io.papermc:paper-api:1.17-dev...

请耐心等待一段时间,就可以安装插件了。
插件安装

依赖下载完成后,打开 文件管理,根目录下会多出一个 plugins 文件夹,这就是存放插件的地方。

  • 将下载好的 .jar 格式插件文件上传至 plugins 文件夹
  • 重启服务器实例即可加载插件

注意事项

  1. 并非所有 Bukkit/Spigot 插件都能在 Cardboard 上完美运行,建议先在测试环境验证兼容性
  2. 部分依赖 NMS(Net Minecraft Server)的插件可能无法正常工作
  3. Cardboard 目前仍在开发中,高版本支持可能不够稳定,建议优先选择 1.17-1.20 版本进行测试
  4. 如果遇到插件加载失败,可查看 logs 文件夹中的日志文件排查问题

下载皮肤插件SkinsRestorer文档下载对应版本的插件放进plugins,然后启动就好了。
游戏内设置皮肤的方法使用命令 /skin set 皮肤名称 我的世界皮肤站点

Minecraft命令

在MCSManager终端设置你为管理员op 你的名字然后你就可以在游戏内/op 玩家名字来给予管理员作弊权限。
下面是一些有趣的命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
/gamerule keepInventory true :开启死亡不掉落
/op ID :给予玩家管理员 第一次需在后台输入
/deop ID :卸掉玩家管理员
/list:列出在服务器上的玩家
/whitelist add ID : 添加服务器白名单。(前提你开启的白名单权限)
/whitelist list : 查看服务器白名单。
/whitelist off : 在此服务器上禁用白名单验证。
/whitelist on : 在此服务器上启用白名单验证。
/ban ID : 将玩家封禁
/ban-ip : 将IP地址封禁
/tp id :传送过去
/tp id :你自己的ip :将某人传送到你身边
/scoreboard objectives add death deathCount "死亡次数" :显示玩家死亡次数,下面的命令和这个要一起用
/scoreboard objectives setdisplay sidebar death :将记分对象名称为desth的记分板显示在右侧