Featured image of post Minecraft(我的世界)服务器搭建教程

Minecraft(我的世界)服务器搭建教程

想搭建MC服务器?看这篇就够了!

《Minecraft》(我的世界)是一款由Mojang Studios开发的沙盒游戏。玩家在一个像素化的开放世界中自由探索、建造、采集资源,并与怪物战斗。游戏分为生存模式和创造模式,前者需要玩家获取资源维持生命,后者则提供无限资源供玩家尽情发挥创意。游戏支持单人和多人模式,因其高度自由和无限可能性,深受全球玩家喜爱。

这篇教程详细介绍了如何搭建Minecraft服务器。只需按照以下步骤逐一操作,你就可以成功搭建一个Minecraft服务器,并与朋友们一起畅游在你创建的游戏世界中。(文中的*号表示可选,跳过也没有影响)

Minecraft 的 Java 版本需求

一般情况下 Minecraft 纯原版的 Java 版本需求如下:

  • 1.0 - 1.11.x 可以使用 Java 6 和 Java 7,但推荐使用 Java 8
  • 1.12(17w13a) - 1.16.5(1.17-21w18a) 需要使用 Java 8
  • 1.17(21w19a) - 1.17.1 需要使用 Java 16,大部分组件也兼容 Java17。
  • 1.18(1.18-pre2) - 1.20.4 需要使用 Java 17
  • 1.20.5(24w14a) 及以上版本需要使用 Java 21

请选择合适的版本,否则会出现兼容性问题

不同需求的服务器选购

  • Minecraft自1.18版本开始,服务端对内存的要求爆炸性增长,至少为4GB起步。像站长和朋友玩的2h2g划着船都会卡死
  • VPS服务器操作系统自身会占用一些内存,Windows系统约占1G,Linux约占200MB,建议使用Linux开服
  • 下方表格推荐的内存配置并不包括操作系统占用量
服务器类型版本 1.6.x或者更老 1.6.x - 1.10.x 1.11.x - 1.14.x 1.15.x - 1.17.x 1.18及以上 参考玩家人数
普通联机生存服 1H1G 2H2G 2H2G 2H4G 2H4G 5人在线
普通联机生存服 2H2G 2H4G 2H6G 4H4G 4H10G 10+人在线
红石电路生存服 2H2G 2H4G 4H4G 4H4G 4H8G 5人在线
红石电路生存服 2H2G 4H4G 4H6G 4H8G 4H10G 10+人在线
中小型模组服 4H4G 4H4G 4H4G 4H6G 4H8G 5人在线
中小型模组服 4H4G 4H6G 4H6G 4H8G 4H10G 10+人在线
大型模组服、整合包 4H8G 4H8G 4H8G 4H10G 6H12G 5人在线
大型模组服、整合包 4H10G 4H10G 4H10G 4H12G 6H14G 10+人在线
基岩生存服 2H2G 2H2G 2H2G 2H4G 2H4G 5人在线
基岩生存服 2H2G 2H2G 2H2G 2H4G 2H4G 10+人在线
基岩插件/模组服 4H4G 4H4G 4H4G 4H4G 4H4G 5人在线
基岩插件/模组服 4H6G 4H6G 4H6G 4H6G 4H8G 10+人在线

请按照你的需求选购合适的服务器,确保性能充足

连接到服务器

首先用SSH连接到你的服务器,不同的操作系统SSH的使用方法有一定差异,但本质都是使用终端。

如果你用的是Linux或Mac系统,可以直接打开系统内置的Terminal(终端命令行)建立SSH会话,不需要安装额外程序。

打开Terminal后,输入以下指令连接到服务器。注意替换成你自己的服务器公网IP

ssh root@<your_server_ip>

如果你用的是Windows系统,你需要安装额外的程序,可以使用我推荐的这款WindTerm

登录成功后会出现以下字样 [root@<你的服务器主机名> ~]# 然后你就可以在后面输入下面列出的指令

现在的服务器会自动选择最优软件源,如果你存在软件源无法连接的问题,请参考linux换源

安装Java

在安装Java版的我的世界服务器端程序前,需要先在服务器上安装Java。Java有很多个版本,请对照上面列出的版本需求进行选择(我的版本是1.21.1->jdk21)

Debian

# 1.安装java
apt install openjdk-21-jre-headless -y
# 2.验证java版本
java -version

如果你细心观察,会发现软件名中带有jre-headless,这是一种简化版的Java OpenJDK 21,它移除了对图形界面应用的支持,由于服务器端不可能安装图形界面应用,所以它非常适合安装在服务器端。

CentOS

# 1.下载RPM包
wget https://download.oracle.com/java/21/latest/jdk-21_linux-x64_bin.rpm
# 2.下载完成后,使用以下命令安装
sudo yum localinstall jdk-21_linux-x64_bin.rpm
# 3.安装完成后,验证 Java 版本,确保是你需要的版本
java -version

Java安装完成后,你还需要在服务器上安装一个叫screen的软件,用来创建可分离的服务器会话,它能让你的服务器端程序在你关闭终端窗口后持续运行。

yum install screen -y

也可以采用systemd创建守护进程的方法,具体步骤在后面。

安装我的世界服务器端程序

🔗自建网盘下载链接:server_1.21.1.jar

🔗经典版本:server_1.12.2.jar | server_1.7.10.jar

现在可以安装服务器端程序了,你可以在命令行中输入wget,后面跟随下载链接。包的下载链接可以在我的世界官方网站 找到,右键下图中这个绿色的超链接,复制链接地址

mine-2

也可以在Windows端下载包,直接点击上图绿色的超链接,浏览器会自动创建下载任务。然后用我推荐的WindTerm上传。将文件拖放到窗口,然后可以发送程序包,但是你应该会遇到以下错误

mine-1

这是因为你没有安装lrzsz,它是一款能够在 Linux 端上传和下载文件的工具,使用了ZMODEM 文件传输协议,相对于 ftp 来说,无需配置文件服务,使用简单方便。安装命令如下:

# CentOS
yum install lrzsz -y
# Ubuntu
apt-get install lrzsz

现在服务器端程序已经上传完毕,默认文件名为server.jar,如果你还想下载其他版本的mc,可以选择给文件重命名

mv server.jar server_<your_version>.jar

配置和运行我的世界服务器

我的世界的服务器端程序下载/上传完成后,接下去就可以运行程序了,在运行前,应该先启动screen对话,进入可分离对话后用指令运行程序就不会因为关闭终端窗口而停止。使用以下指令

# 创建一个新的screen窗口
screen
# 首次启动我的世界程序
java -Xms1024M -Xmx1024M -jar server_<your_version>.jar nogui

启动的参数后面会详细讲解。

第一次使用这个指令时系统报错,提示必须同意用户协议,这并不是真的出现了错误,而是故意设计来引导用户阅读用户协议。以上的指令创建了两个新文件,一个是用户协议eula.txt,一个是配置文件server.properties,用来设置游戏模式、难度等属性。

为了使我的世界程序能够正式运行,需要同意用户协议。可以使用Vim编辑器修改,如果你喜欢也可以用Nano编辑器。如用Vim编辑器,使用以下指令。

mine-1

# 进入用户协议文件
vim eula.txt
# 将eula的false属性改为true

保存并退出eula.txt文件

编辑server.properties文件来设置各种游戏属性

vim server.properties

这个文件里有很多项属性可以设置,其中最重要的是以下几项:

difficulty (难度) – 设置游戏的难度,默认是easy简单,共有peaceful容易、easy简单、normal普通、hard困难几个选项。 gamemode (游戏模式) – 设置游戏的模式,默认是生存模式,可供设置的选项有survival生存模式、creative创造模式、 adventure冒险模式、spectator旁观模式。
pvp – 设置玩家之间能否对打,默认是true,如果改成false,玩家之间将不能互相攻击伤害对方。
max-players(最多玩家数量)– 设置最多玩家数量。

我一般还会修改enable-command-block为true(允许使用指令)

按照你的偏好设置完成后,输入“:wq”并回车保存并退出文件。

正式启动我的世界服务器程序

编辑完eula.txt后就可以正式启动我的世界服务器端程序了,方法是再次使用上面用到的那个java指令,但要按自己需求调整参数

java -Xms2G -Xmx4G -jar server_<your_version>.jar nogui

相比第一次使用这个指令,这次正式启动游戏程序需要把Xms和Xmx参数改成适合自己服务器的。

Xms设置的是服务器启动时的RAM的大小,-Xms2G就是把服务器启动时的RAM设成2G,单位是M或G都可以,如果采用M,就输入Xms2048M。

Xmx设置的是服务器运行时允许使用的最大RAM的值,-Xmx4G就是限制游戏最多使用4G的RAM。具体设置多少要看自己选择的服务器RAM大小有多少,如果服务器只有1G或2G就不能设这么高。

指令中的-jar后面跟随的就是要运行的jar文件名称,就是我们上面下载的jar文件。如果没有重命名,就得把命令中的server_<your_version>.jar改成server.jar,如果你下载的是其他版本的我的世界服务器jar文件或命名成了其他名称,就改成相应的名称。

指令中的nogui就是要求服务器不要启动图形用户界面,因为服务器不需要图形用户界面。

输入指令回车后等待一段时间,游戏程序就启动完成了,启动成功时,会显示如下界面

mine-3

主要是这行文字:[Server thread/INFO]: Done (20.041s)! For help, type “help”

因为之前使用了screen,所以现在可以按Ctrl + A + D键离开当前会话而不会终结进程。

赋予用户OP(管理员)权限

现在有一个问题:要赋予用户OP权限,否则无法使用指令,甚至无法破坏方块。

在如图运行中程序的下方空位输入 op <要给予权限的用户名>,回车执行,出现Made <用户名> a server operator则说明成功赋予

mine-4

同样的,deop <用户名>可以移除权限

设置OP权限等级

在Minecraft服务器中,OP权限有不同的等级,具体如下:

  • 1级: 可以绕过生存模式限制并放置和破坏命令方块。
  • 2级: 可以使用部分管理命令,如/clear、/difficulty、/effect等。
  • 3级: 可以使用所有的管理命令,但不包括权限管理命令。
  • 4级: 拥有完全的管理员权限,可以执行所有命令,包括/op和/deop来管理其他OP玩家。

使用op命令默认会给予最高的4级权限,但是我们或许不想给用户这么高的权限,可以通过编辑 ops.json 文件来设置不同玩家的OP权限等级,ops.json文件通常位于你的Minecraft服务器根目录下,找到该文件并编辑。 打开ops.json文件,你会看到如下格式的内容:

[
  {
    "uuid": "玩家的UUID",
    "name": "玩家名",
    "level": 4,
    "bypassesPlayerLimit": false
  }
]

level 字段决定了玩家的OP等级,你可以自行设置,然后保存并关闭ops.json文件,重启服务器以应用更改。

新版Minecraft(1.7+)还可以在游戏中直接通过命令设置OP权限等级:

/op 玩家名 等级

连接到我的世界服务器

在电脑上用我的世界启动器(下载地址 )启动游戏后,依次选择多人游戏->添加服务器

然后在服务器地址中输入<你的服务器ip>:25565,因为默认端口为25565。点击完成即可添加完毕,选中你的服务器点击加入,就可以连接到服务器的游戏世界了。

*创建 systemd 守护进程

如果你觉得 java 命令启动太过麻烦,又或者是想要防止进程终止,你可以设置 systemd 守护进程。

新建并修改 minecraft.service 服务配置文件

vim /etc/systemd/system/minecraft.service

在文件中加入以下内容

[Unit]
Description=Minecraft Server
After=network.target
[Service]
# 设置用户和组
User=root
Group=root
# 设置服务器的工作目录
WorkingDirectory=/home/software/minecraft
# 启动服务器的命令
ExecStart=/usr/bin/java -Xms2G -Xmx4G -jar server_<your_version>.jar nogui
# 允许服务重新启动
Restart=on-failure
# 如果需要,在启动服务前进行延迟等待
ExecStartPre=/bin/sleep 10
[Install]
WantedBy=multi-user.target

重新加载 systemd 配置

每次创建或修改服务文件后,都需要重新加载 systemd 配置以使更改生效

systemctl daemon-reload

启用服务

使用以下命令启用服务,这样它会在系统启动时自动启动

systemctl enable minecraft

启动服务

使用以下命令启动 Minecraft 服务器

systemctl start minecraft

检查服务状态

你可以使用以下命令检查 Minecraft 服务器的状态,确保它的运行状态

systemctl status minecraft

如果状态中出现[Server thread/INFO]: Done (20.041s)! For help, type “help"这句话,那么你的 Minecraft 服务器就成功启动了,并且它正在后台运行。

发表了13篇文章 · 总计1万7千字
本博客已稳定运行
载入旅行者一号离地球距离信息...
miit 晋ICP备2024043071号-1 | police 晋公网安备14090002000501 | moe 萌ICP备20258688号
nix