Linux搭建 Minecraft 服务器

news/2024/11/18 1:26:13/

1、Minecraft简介

Minecraft《我的世界》是由 Mojang Studios 公司开发的一款生存沙盒游戏。

在这里插入图片描述

Minecraft 由瑞典视频游戏程序员和设计师 Markus Alexej Persson 使用Java编程语言创建。
在这里插入图片描述

Minecraft 于 2009 年 5 月首次公开,然后在 2011 年 11 月完全发布,Minecraft 此后已被移植到其他多个平台,并且成为有史以来最畅销的视频游戏。2014 年,Mojang 和 Minecraft 的知识产权被微软以25 亿美元的价格收购。

在《我的世界》中,玩家探索一个程序生成的块状 3D 世界,几乎无限的地形,并能够发现和开采原材料、制作工具和物品,并建造结构、土方工程和简单的机器。根据游戏模式,玩家可以与电脑控制的小怪战斗,以及与同一世界的其他玩家合作或竞争。

游戏模式包括玩家必须获取资源来建造世界并能够生存下去的生存模式,以及玩家拥有无限资源和飞行的创造模式。玩家可以修改游戏,以创造新的游戏机制、物品和资产。

游戏分为国际pe基岩版,以及官方正版pc版,常称java版,游戏的Java版以其强大的第三方拓展模组(Forge / Fabric / Liteloader mod)而知名,它们可以为游戏添加各种新的对象、角色和功能。

官方网站:https://minecraft.net

2、搭建环境选择

Minecraft 服务器端可以是 Windows 或 Linux,Windows 更适用于不熟悉Linux命令的服主,但自带图形窗口的windows对服务器cpu内存资源有一定消耗,因此对于资深的 linux 服务器玩家linux才是更好的选择。

下面准备一台linux服务器,配置2核CPU、8G内存,发行版本选择Ubuntu、Debain、CentOS等,推荐使用Ubuntu Server,如果需要通过互联网访问还需要购买1个公网IP地址,推荐按量付费宽带,可根据需要购买一个域名,绑定到公网IP。

关于云服务器,可选国内三大云厂商阿里云、腾讯云、华为云,不过价格过于昂贵,性能要求不高可以购买他们的轻量应用服务器类型,其他VPS云厂商也数不胜数,比如淘宝搜索Minecraft服务器,购买面板服,如果只是本地测试则更简单,可以使用 VMware Workstation 或 Virtualbox 创建虚拟机。

本篇文章介绍在Linux系统上搭建Minecraft服务端,以及如何使用bungeecord配置为群组模式,本文采用传统的应用部署方式,方便熟悉minecraft服务器端的部署原理和流程,但当前 docker 容器技术大行其道,更推荐使用 docker,能够仅用一条命令几分钟搭建起一个服务端。

docker容器方式搭建请移步:https://blog.csdn.net/networken/article/details/84945172

3、服务器基本配置

服务器准备就绪后,执行以下操作,做一些初始化配置,操作系统版本:Ubuntu Server 22.04 LTS。

1、首先需要使用SSH工具连接到服务器,下载ssh连接工具 tabby 或 xshell ,以xshell为例,勾选两者,下载安装Xshell和Xftp。

在这里插入图片描述

新建ssh连接,输入服务器IP地址,点击连接输入用户名及密码,登录到命令行界面:

在这里插入图片描述

2、修改服务器主机名,执行exit命令退出重新连接使配置生效

root@ubuntu:~# hostnamectl set-hostname mcserver

在这里插入图片描述
3、minecraft服务端依赖java环境,安装java环境,以openjdk为例:

sudo apt update -y
sudo apt install -y openjdk-17-jdk

确认安装成功

mc@mcserver:~$ java --version
openjdk 17.0.3 2022-04-19
OpenJDK Runtime Environment (build 17.0.3+7-Ubuntu-0ubuntu0.22.04.1)
OpenJDK 64-Bit Server VM (build 17.0.3+7-Ubuntu-0ubuntu0.22.04.1, mixed mode, sharing)

4、搭建单个服务端

1、创建服务端安装目录

root@mcserver:~# mkdir -p /opt/minecraft/{jars,instances}

2、下载服务端jar包,下载地址:https://mcversions.net/,选择STABLE RELEASE稳定正式版本,以1.19为例:

在这里插入图片描述

下载后使用 xftp 或 winscp 工具上传到服务器/opt/minecraft/jars目录下。

root@mcserver:~# ls /opt/minecraft/jars/
server.jar

3、创建minecraft服务启动文件,复制粘贴以下内容到命令行

mkdir -p /opt/minecraft/instances/survivalcat >/lib/systemd/system/minecraft-survival.service<<'EOF'
[Unit]
Description=Minecraft Server
Wants=network.target
After=network.target[Service]
Type=simple
WorkingDirectory=/opt/minecraft/instances/survival
ExecStart=/usr/bin/java -Xms2G -Xmx4G -jar /opt/minecraft/jars/server.jar nogui
RestartSec=30
Restart=on-failure
KillMode=process
KillSignal=SIGINT
SuccessExitStatus=130
StandardInput=null[Install]
WantedBy=default.target
EOF

4、执行以下命令启动minecraft服务端

echo "eula=true" > /opt/minecraft/instances/survival/eula.txtsystemctl enable minecraft-survival.servicesystemctl start minecraft-survival.service

查看服务运行状态,等待服务端完全启动

root@mcserver:~# systemctl status minecraft-survival.service 
● minecraft-survival.service - Minecraft ServerLoaded: loaded (/lib/systemd/system/minecraft-survival.service; enabled; vendor preset: enabled)Active: active (running) since Thu 2022-08-04 23:07:02 CST; 1min 33s agoMain PID: 4521 (java)Tasks: 31 (limit: 4538)Memory: 2.8GCPU: 2min 12.737sCGroup: /system.slice/minecraft-survival.service└─4521 /usr/bin/java -Xms2G -Xmx4G -jar /opt/minecraft/jars/server.jar noguiAug 04 23:08:28 mcserver java[4521]: [23:08:28] [Worker-Main-1/INFO]: Preparing spawn area: 42%
Aug 04 23:08:29 mcserver java[4521]: [23:08:29] [Worker-Main-1/INFO]: Preparing spawn area: 54%
Aug 04 23:08:29 mcserver java[4521]: [23:08:29] [Worker-Main-1/INFO]: Preparing spawn area: 54%
Aug 04 23:08:29 mcserver java[4521]: [23:08:29] [Worker-Main-1/INFO]: Preparing spawn area: 54%
Aug 04 23:08:30 mcserver java[4521]: [23:08:30] [Worker-Main-1/INFO]: Preparing spawn area: 68%
Aug 04 23:08:31 mcserver java[4521]: [23:08:31] [Worker-Main-1/INFO]: Preparing spawn area: 78%
Aug 04 23:08:31 mcserver java[4521]: [23:08:31] [Worker-Main-1/INFO]: Preparing spawn area: 78%
Aug 04 23:08:31 mcserver java[4521]: [23:08:31] [Worker-Main-1/INFO]: Preparing spawn area: 78%
Aug 04 23:08:34 mcserver java[4521]: [23:08:34] [Server thread/INFO]: Time elapsed: 61824 ms
Aug 04 23:08:34 mcserver java[4521]: [23:08:34] [Server thread/INFO]: Done (80.392s)! For help, type "help"

5、管理服务启停命令

# 启动服务端
systemctl start minecraft-survival# 停止服务端
systemctl stop minecraft-survival# 重启服务端
systemctl restart minecraft-survival# 查看服务运行状态
systemctl status minecraft-survival# 查看服务启动日志
journalctl -xe

5、客户端登录server端

官方客户端下载地址:https://minecraft.net/zh-hans/download/

这里选择使用第三方客户端HMCL,下载地址:https://hmcl.huangyuhui.net/

本地选择一个目录解压安装即可,安装完成以后需要执行两个操作:添加游戏账户、下载游戏版本。

在这里插入图片描述

1、点击添加账户,如果已购买游戏选择微软账户或Mojang账户,否则选择离线模式

在这里插入图片描述
这里采用离线模式,添加一个本地用户,用户名自定义,在高级设置中可以查看到默认生成的UUID:

在这里插入图片描述

注意,采用离线模式,需要修改服务端配置文件,关闭online-mode,找到以下选项改为false

root@mcserver:~# vim /opt/minecraft/instances/survival/server.properties 
...
online-mode=false
...

重启服务端使配置生效

systemctl restart minecraft-survival

2、返回客户端首页,点击下载,点击一个游戏版本进行安装,与服务端版本一致

在这里插入图片描述
3、账号和游戏版本准备好后,返回客户端首页,点击启动游戏

在这里插入图片描述
选择多人游戏

在这里插入图片描述
点击添加服务器

在这里插入图片描述
输入服务器名称和服务器地址,名称可自定义,服务器地址可以是公网IP地址或域名:
在这里插入图片描述
完成后可以看到已成功添加服务器
在这里插入图片描述

点击列表成功登入服务器,执行/list命令可以显示在线的玩家
在这里插入图片描述
查看服务器后端日志,有 steve 用户登录记录

root@mcserver:~# journalctl -f
Jun 09 21:19:44 mcserver java[5581]: [21:19:44] [Worker-Main-1/INFO]: Preparing spawn area: 4%
Jun 09 21:19:45 mcserver java[5581]: [21:19:45] [Server thread/INFO]: Time elapsed: 7130 ms
Jun 09 21:19:45 mcserver java[5581]: [21:19:45] [Server thread/INFO]: Done (20.208s)! For help, type "help"
Jun 09 21:20:45 mcserver java[5581]: [21:20:45] [Server thread/INFO]: steve[/192.168.93.229:10391] logged in with entity id 110 at (-28.5, 70.0, -29.5)
Jun 09 21:20:45 mcserver java[5581]: [21:20:45] [Server thread/INFO]: steve joined the game
Jun 09 21:20:51 mcserver java[5581]: [21:20:51] [Server thread/WARN]: Can't keep up! Is the server overloaded? Running 2017ms or 40 ticks behind
Jun 09 21:21:54 mcserver java[5581]: [21:21:54] [Server thread/INFO]: steve lost connection: Disconnected
Jun 09 21:21:54 mcserver java[5581]: [21:21:54] [Server thread/INFO]: steve left the game
Jun 09 21:44:37 mcserver java[5581]: [21:44:37] [Server thread/INFO]: steve[/192.168.93.229:6745] logged in with entity id 410 at (-34.35809642546795, 63.0, -0.6483614176174147)
Jun 09 21:44:37 mcserver java[5581]: [21:44:37] [Server thread/INFO]: steve joined the game

6、配置ops权限

可以通过修改ops.json文件为用户添加ops权限,添加前需要获取用户名称及UUID,在线用户可以通过https://namemc.com/这个网站查看某个用户的UUID,离线模式可以在创建用户时高级模式中查看,或在服务端 usercache.json 文件中查看已登录到服务器的用户UUID

1、服务端查看离线用户的UUID

root@mcserver:~# cat /opt/minecraft/instances/survival/usercache.json 
[{"name":"steve","uuid":"53909932-f794-33c0-9329-948045a4c1ce","expiresOn":"2022-07-09 21:44:37 +0800"}]

2、配置 ops.json 文件,将用户steve设为op

root@mcserver:~# vim /opt/minecraft/instances/survival/ops.json 
[{"uuid": "53909932-f794-33c0-9329-948045a4c1ce","name": "steve","level": 4}
]

重启服务端使配置生效

systemctl --user restart minecraft-survival

重新使用客户端登录,执行/op steve提示该steve用户已经是管理员,如果需要取消管理员权限执行/deop steve命令:
在这里插入图片描述

op具有很高权限,比如可以修改游戏模式为创造模式,可以使用任何方块和飞行等等:

/gamemode creative

双击空格我们的steve就可以起飞了:
在这里插入图片描述

7、搭建群组服务器

前置要求:单台服务器运行多个服务端,需要调整机器配置,建议至少2核CPU、8G内存,否则很可能因为资源不足导致服务器启动失败。

下面我们使用bungeecord代理软件搭建由多个服务端组成的群组服务器,这里仅仅进行测试,BC代理软件和所有子服全部运行在一台服务器上。

其架构原理如下图所示:
在这里插入图片描述

1、目前已经创建了生存服,在创建一个lobby登录服

创建服务启动文件

mkdir -p /opt/minecraft/instances/lobbycat >/lib/systemd/system/minecraft-lobby.service<<'EOF'
[Unit]
Description=Minecraft Server
Wants=network.target
After=network.target[Service]
Type=simple
WorkingDirectory=/opt/minecraft/instances/lobby
ExecStart=/usr/bin/java -Xms2G -Xmx4G -jar /opt/minecraft/jars/server.jar nogui
RestartSec=30
Restart=on-failure
KillMode=process
KillSignal=SIGINT
SuccessExitStatus=130
StandardInput=null[Install]
WantedBy=default.target
EOF

尝试首次启动服务

echo "eula=true" > /opt/minecraft/instances/lobby/eula.txt
systemctl enable minecraft-lobby
systemctl start minecraft-lobby

由于在同一台服务器启动多个服务端,使用journalctl -xe命令查看日志,提示默认端口25565已被占用导致启动失败,需要修改lobby服务端端口号,修改以下两项:

root@mcserver:~# vim /opt/minecraft/instances/lobby/server.properties
...
online-mode=false
...
server-port=25566
...

重新启动lobby服务端

systemctl restart minecraft-lobby

等待服务端完全启动

root@mcserver:~# systemctl status minecraft-lobby.service 
● minecraft-lobby.service - Minecraft ServerLoaded: loaded (/lib/systemd/system/minecraft-lobby.service; enabled; vendor preset: enabled)Active: active (running) since Thu 2022-08-04 23:20:21 CST; 3min 45s agoMain PID: 5103 (java)Tasks: 31 (limit: 4538)Memory: 2.2GCPU: 2min 38.201sCGroup: /system.slice/minecraft-lobby.service└─5103 /usr/bin/java -Xms2G -Xmx4G -jar /opt/minecraft/jars/server.jar noguiAug 04 23:22:12 mcserver java[5103]: [23:22:12] [Worker-Main-6/INFO]: Preparing spawn area: 95%
Aug 04 23:22:13 mcserver java[5103]: [23:22:13] [Worker-Main-6/INFO]: Preparing spawn area: 95%
Aug 04 23:22:13 mcserver java[5103]: [23:22:13] [Worker-Main-6/INFO]: Preparing spawn area: 95%
Aug 04 23:22:14 mcserver java[5103]: [23:22:14] [Worker-Main-6/INFO]: Preparing spawn area: 96%
Aug 04 23:22:14 mcserver java[5103]: [23:22:14] [Worker-Main-6/INFO]: Preparing spawn area: 96%
Aug 04 23:22:15 mcserver java[5103]: [23:22:15] [Worker-Main-6/INFO]: Preparing spawn area: 96%
Aug 04 23:22:15 mcserver java[5103]: [23:22:15] [Worker-Main-6/INFO]: Preparing spawn area: 97%
Aug 04 23:22:16 mcserver java[5103]: [23:22:16] [Worker-Main-6/INFO]: Preparing spawn area: 98%
Aug 04 23:22:20 mcserver java[5103]: [23:22:20] [Server thread/INFO]: Time elapsed: 88438 ms
Aug 04 23:22:20 mcserver java[5103]: [23:22:20] [Server thread/INFO]: Done (107.973s)! For help, type "help"

客户端添加服务器登录验证,非默认端口时需要添加端口号
在这里插入图片描述

2、下载bungeecord jar包到本地,bungeecord代理端下载地址:https://ci.md-5.net/job/BungeeCord/

点击右侧BungeeCored.jar,下载并上传到服务器
在这里插入图片描述
上传到linux对应目录下:

root@mcserver:~# ls /opt/minecraft/jars/
BungeeCord.jar  server.jar

3、创建BungeeCord服务启动文件,复制粘贴以下内容到命令行

mkdir -p /opt/minecraft/instances/bungeecordcat >/lib/systemd/system/minecraft-bungeecord.service<<'EOF'
[Unit]
Description=Minecraft Server
Wants=network.target
After=network.target[Service]
Type=simple
WorkingDirectory=/opt/minecraft/instances/bungeecord
ExecStart=/usr/bin/java -Xms2G -Xmx4G -jar /opt/minecraft/jars/BungeeCord.jar nogui
RestartSec=30
Restart=on-failure
KillMode=process
KillSignal=SIGINT
SuccessExitStatus=130
StandardInput=null[Install]
WantedBy=default.target
EOF

4、启动BungeeCord服务端

systemctl enable minecraft-bungeecord.service
systemctl start minecraft-bungeecord.service

查看服务运行状态,等待服务端完全启动

root@mcserver:~# systemctl status minecraft-bungeecord.service 
● minecraft-bungeecord.service - Minecraft ServerLoaded: loaded (/lib/systemd/system/minecraft-bungeecord.service; enabled; vendor preset: enabled)Active: active (running) since Thu 2022-08-04 23:34:23 CST; 11s agoMain PID: 5300 (java)Tasks: 26 (limit: 4538)Memory: 154.5MCPU: 3.643sCGroup: /system.slice/minecraft-bungeecord.service└─5300 /usr/bin/java -Xms2G -Xmx4G -jar /opt/minecraft/jars/BungeeCord.jar noguiAug 04 23:34:31 mcserver java[5300]: [104B blob data]
Aug 04 23:34:31 mcserver java[5300]: [104B blob data]
Aug 04 23:34:31 mcserver java[5300]: [57B blob data]
Aug 04 23:34:31 mcserver java[5300]: [117B blob data]
Aug 04 23:34:31 mcserver java[5300]: [105B blob data]
Aug 04 23:34:31 mcserver java[5300]: [109B blob data]
Aug 04 23:34:31 mcserver java[5300]: [107B blob data]
Aug 04 23:34:31 mcserver java[5300]: [105B blob data]
Aug 04 23:34:31 mcserver java[5300]: [105B blob data]
Aug 04 23:34:31 mcserver java[5300]: [44B blob data]

5、修改BungeeCord配置文件,改动配置项如下,其他默认即可:

root@mcserver:~# vim /opt/minecraft/instances/bungeecord/config.yml 
listeners:
......
online_mode: false
......
servers:lobby:motd: '&1Just another BungeeCord - Forced Host'address: localhost:25566restricted: falsesurvival:motd: '&1Just another BungeeCord - Forced Host'address: localhost:25565restricted: false

重新启动服务

systemctl restart minecraft-bungeecord

6、客户端添加服务器验证
在这里插入图片描述

登录后执行/server命令,将提示你当前所在的服务器,执行/server survival将切换到survival服务器

在这里插入图片描述

查看此时的数据目录结构:

root@mcserver:~# sudo apt install -y treeroot@mcserver:~# tree -L 3 /opt/minecraft/
/opt/minecraft/
├── instances
│   ├── bungeecord
│   │   ├── config.yml
│   │   ├── locations.yml
│   │   ├── modules
│   │   ├── modules.yml
│   │   ├── plugins
│   │   ├── proxy.log.0
│   │   └── proxy.log.0.lck
│   ├── lobby
│   │   ├── banned-ips.json
│   │   ├── banned-players.json
│   │   ├── crash-reports
│   │   ├── eula.txt
│   │   ├── libraries
│   │   ├── logs
│   │   ├── ops.json
│   │   ├── server.properties
│   │   ├── usercache.json
│   │   ├── versions
│   │   ├── whitelist.json
│   │   └── world
│   └── survival
│       ├── banned-ips.json
│       ├── banned-players.json
│       ├── eula.txt
│       ├── libraries
│       ├── logs
│       ├── ops.json
│       ├── server.properties
│       ├── usercache.json
│       ├── versions
│       ├── whitelist.json
│       └── world
└── jars├── BungeeCord.jar└── server.jar16 directories, 21 files

查看当前服务器列表
在这里插入图片描述
以上就是单个服务器及群组服务器的基本搭建方法,在实际搭建时仍有很多参数和配置需要调整,以及不计其数的插件集成。


http://www.ppmy.cn/news/687113.html

相关文章

搭建MineCraft私服

最近购买了腾讯云的云主机&#xff0c;因为腾讯云最近在办活动——校园云计划&#xff0c;所以我只花了1软妹币/月就购进了一台CPU1核、内存1G、带宽1M、系统盘linux8G的云主机了&#xff0c;这无疑是给我们学生大大的福利啊&#xff08;这个安利可以忽视&#xff09; 拿到云主…

我的世界(MC)服务器搭建(详细+稳定+崩服自启)

我的世界服务器搭建 先输入以下代码&#xff08;进入root用户&#xff09; sudo su root 相当于获得OP权限控制Linux生死的 然后安装Java sudo yum install java-1.8.0-openjdk 中间会有让你选择 是否blablabala 输入Y即可 安装完毕后开始下载1.13.2服务端&#xff1b; 直…

【Minecraft开服教程】使用 MCSM 面板一键搭建我的世界服务器,并内网穿透公网远程联机

文章目录 前言1.Mcsmanager安装2.创建Minecraft服务器3.本地测试联机4. 内网穿透4.1 安装cpolar内网穿透4.2 创建隧道映射内网端口 5.远程联机测试6. 配置固定远程联机端口地址6.1 保留一个固定TCP地址6.2 配置固定TCP地址 7. 使用固定公网地址远程联机 前言 MCSManager是一个…

如何使用Win10搭建我的世界Minecraft服务器

简单几步在windwos搭建我的世界服务器,并通过cpolar工具将本地服务暴露到公网连接 1. Java环境搭建 以windows10系统为例&#xff0c;配置java环境&#xff0c;搭建我的世界服务器,下载最新版java版本 Java Downloads | Oracle 选择exe文件&#xff0c;下载完成后双击安装包…

【从零开始的MC服务器】第三步:了解开服文件

上一期我们完成了开服的全部的前期基础&#xff0c;今天我们来讲讲开服之后&#xff0c;多了的服务器文件 【plugins文件夹】 这个文件夹里面存放的&#xff0c;都是服务器的插件&#xff0c;之前说过服务器分为模组服和插件服&#xff0c;那么这个文件夹就是专门放插件的。 【…

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

Debian系统使用MCSManager9面板搭建MC Java版MOD服务器的教程&#xff0c;本教程用的Fabric1.19.3服务端&#xff0c;用其他服务端的也可以参考一下。 视频教程&#xff1a;https://www.bilibili.com/video/BV1Zd4y1h7zG/ 我的世界(MC) Fabric 1.19.3 开服教程&#xff0c;新手…

MC个人服务器搭建

1.首先需要一台服务器(废话) 我使用的服务器是阿里云ubuntu18.04 登录进去 ssh root<你的服务器公网IP>ps:下列的命令提示权限不够前面加sudo就可以了 2.安装java 查看java版本 java -version我的版本 openjdk version "1.8.0_252" OpenJDK Runtime Enviro…

超详细!在我的世界(MC)中使用cocricot模组搭建一个咖啡厅

在我的世界中使用cocricot模组搭建一个咖啡厅 0. 关于我的世界1. 购买我的世界2. 安装forge和optiFine3. 安装JustEnoughIDs4. 安装LittleTiles5. 安装cocricot6. 安装WorldEdit7. 搭建一个简易却精美的咖啡厅8. 添加光影 0. 关于我的世界 今天写一点轻松的内容&#xff0c;不…