linux搭建 minecraft 我的世界游戏服务器

本篇文章介绍在Linux系统上搭建最新版本Minecraft服务器,并使用bungeecord配置为群组服务器模式。

docker容器方式搭建minecraft服务器查看这篇文章:

https://blog.csdn.net/whatday/article/details/108416397

1.Minecraft简介

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

在这里插入图片描述


minecraft是什么?

在这里插入图片描述

2.搭建环境介绍

1.操作系统版本

本次搭建使用CentOS7.5版本的linux操作系统,版本信息如下:

# cat /etc/redhat-release 
CentOS Linux release 7.5.1804 (Core) 

2.服务器配置

本次搭建使用一台阿里云ECS服务器,配置如下:

在这里插入图片描述


3.放通服务端通信端口

访问minecraft服务端时,默认连接服务器25565端口(可自定义),这里使用默认端口,因此防火墙需要放通该端口:

  • Linux关闭防火墙或者放通25565端口
  • 阿里云控制台配置安全规则,放通25565端口

关闭linux的firewalld防火墙

[root@willcentos ~]# systemctl stop firewalld && systemctl disable firewalld

关闭linux的selinux

[root@willcentos ~]# setenforce 0
[root@willcentos ~]# sed -i 's/enforcing/disabled/g' /etc/selinux/config

阿里云主机放通25565端口:

在这里插入图片描述

4.安装java程序

mc服务端是一个jar文件,运行mc服务端需要java环境支持,执行以下命令安装java:

#使用yum安装java
[root@willcentos ~]# yum install -y java

#查看java版本,确认安装成功
[root@willcentos ~]# java -version
openjdk version "1.8.0_191"
OpenJDK Runtime Environment (build 1.8.0_191-b12)
OpenJDK 64-Bit Server VM (build 25.191-b12, mixed mode)

3.运行单个服务端

下载MC服务端

创建服务端安装目录

在/opt/下创建目录mcworld1,统一存放服务端jar文件、配置文件以及玩家数据。

#创建目录
[root@willcentos ~]# mkdir -p /opt/mcworld1

#查看创建的目录
[root@willcentos ~]# ll /opt/
total 16
drwxr-xr-x 2 root root 4096 Nov 27 13:48 mcworld1

下载MC服务端jar文件

MC服务端核心分为官方版本和其他版本,下面是部分服务端下载链接:

这里使用papermc服务端,访问papermc官网,点击下图红色区域直接下载。

在这里插入图片描述

或者右键获取下载链接,使用wget直接下载到linux的/opt/mcworld1目录下:

#下载papermc
[root@willcentos ~]# wget -P /opt/mcworld1/ https://papermc.io/ci/job/Paper-1.13/469/artifact/paperclip-469.jar

#查看下载的jar文件
[root@willcentos ~]# ll /opt/mcworld1/
total 75464
-rw-r--r-- 1 root root 43435563 Nov 28 12:23 paperclip-469.jar

#为了方便区分,将jar文件重新命名为mcworld1.jar:
[root@willcentos ~]# cd /opt/mcworld1/
[root@willcentos mcworld1]# mv paperclip-469.jar mcworld1.jar

运行MC服务器端

运行以下命令启动papermc服务端:

[root@willcentos ~]# cd /opt/mcworld1/
[root@willcentos mcworld1]# java -Xmx1024M -Xms1024M -jar mcworld1.jar nogui

命令说明:

  • -Xms:初始启动分配的内存(-Xms1024m)
  • -Xmx:最大分配的内存(-Xmx2048m)
  • nogui:用于以基于文本的界面来显示,可减少内存使用。如果使用图形化界面,移除nogui选项。

首次启动会失败,配置文件目录下会生成一个eula.txt 文件,用vim打开,将 eula = false 更改为 eula = true,并保存文件,表示同意许可协议,然后重新执行启动命令:

[root@willcentos mcworld1]# sed -i 's/eula=false/eula=true/g' eula.txt
[root@willcentos mcworld1]# java -Xmx1024M -Xms1024M -jar mcworld1.jar nogui

后台运行mc服务端:

运行服务端后命令行界面就被占用,无法执行其他操作,只能通过CTRL+C结束服务,所以我们使用nohup命令让其在后台执行:

[root@willcentos mcworld1]# nohup java -Xmx1024M -Xms1024M -jar mcworld1.jar nogui > /root/mcworld1.log &

创建启动脚本

由于执行启动命令太繁琐,这里将上面的启动命令写入脚本,下次执行脚本即可快速启动服务端:

[root@willcentos ~]# vim start_mcworld1.sh 
#!/bin/bash
cd /opt/mcworld1
nohup java -Xmx1024M -Xms1024M -jar mcworld1.jar nogui >/root/mcworld1.log &
tail -f /root/mcworld1.log

通过下面的命令可以方便地运行服务端:

[root@willcentos ~]# bash start_mcworld1.sh 

使用CTRL+C退出信息打印,服务端将继续在后台运行。

验证是否运行成功:

[root@willcentos ~]# ps -ef | grep java
root     17922 10.4 18.2 3679400 708512 pts/0  Sl   17:24   1:01 java -Xmx1024M -Xms1024M -jar mcworld1.jar nogui

也可以查看运行日志,nohup默认会输出日志到nohup.out,这里已经用 > 命令重新指定输出文件mcworld1.log:

[root@willcentos ~]# cat /root/mcworld1.log 

停止运行MC服务端

要结束服务进程,查看ps -ef第二列显示的进程号,执行以下命令:

[root@willcentos ~]# kill -9 17922

登录MC服务端

1.下载安装官方客户端:

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

下载与服务端版本相同的客户端版本(即最新的1.13.2):

官网注册账号,下载minecraft客户端并安装到个人电脑,启动客户端并登录,登录后界面如下:

在这里插入图片描述

2.配置服务端IP地址并连接

选择开始游戏,然后选择多人游戏

在这里插入图片描述

输入服务器名称,可以自定义,输入服务端IP地址,即阿里云服务器的公网地址,端口默认为25565,所以不用输入,点击完成:

在这里插入图片描述

点击加入服务器:

在这里插入图片描述

成功登录服务器:

在这里插入图片描述

修改配置文件

如果只运行单个mc服务端,到这里mc服务器搭建已经完成,下面只需要修改配置文件,来完成其他配置,配置文件所在目录如下,这里保存了mc的所有数据:

[root@willcentos ~]# ll /opt/mcworld1/
total 42500
-rw-r--r--  1 root root        2 Dec 10 13:20 banned-ips.json
-rw-r--r--  1 root root        2 Dec 10 13:20 banned-players.json
-rw-r--r--  1 root root     1053 Dec 10 13:20 bukkit.yml
drwxr-xr-x  2 root root     4096 Dec 10 12:58 cache
-rw-r--r--  1 root root      598 Dec 10 13:20 commands.yml
-rw-r--r--  1 root root      250 Dec 10 12:59 eula.txt
-rw-r--r--  1 root root     2576 Dec 10 12:59 help.yml
drwxr-xr-x  2 root root     4096 Dec 10 13:20 logs
-rw-r--r--  1 root root        2 Dec 10 13:20 ops.json
-rw-r--r--  1 root root 43435563 Nov 28 12:23 paperclip-469.jar
-rw-r--r--  1 root root     5473 Dec 10 13:20 paper.yml
-rw-r--r--  1 root root        0 Dec 10 12:59 permissions.yml
drwxr-xr-x  3 root root     4096 Dec 10 12:59 plugins
-rw-r--r--  1 root root      757 Dec 10 13:20 server.properties
-rw-r--r--  1 root root     3358 Dec 10 13:20 spigot.yml
-rw-r--r--  1 root root      108 Dec 10 13:20 usercache.json
-rw-r--r--  1 root root       47 Dec 10 12:59 version_history.json
-rw-r--r--  1 root root        2 Dec 10 12:59 whitelist.json
drwxr-xr-x 10 root root     4096 Dec 10 13:35 world
drwxr-xr-x  4 root root     4096 Dec 10 13:35 world_nether
drwxr-xr-x  4 root root     4096 Dec 10 13:35 world_the_end
[root@willcentos ~]# 

查看主配置文件server.properties,其中大部分配置在这里进行修改:

[root@willcentos ~]# cd /opt/mcworld1/
[root@willcentos mcworld1]# vim server.properties 
#Minecraft server properties
#Mon Dec 10 13:20:26 CST 2018
generator-settings=
force-gamemode=false
allow-nether=true
enforce-whitelist=false
gamemode=0
enable-query=false
player-idle-timeout=0
difficulty=1
spawn-monsters=true
op-permission-level=4
pvp=true
snooper-enabled=true
level-type=DEFAULT
hardcore=false
enable-command-block=false
max-players=20
network-compression-threshold=256
resource-pack-sha1=
max-world-size=29999984
server-port=25565
server-ip=
spawn-npcs=true
allow-flight=false
level-name=world
view-distance=10
resource-pack=
spawn-animals=true
white-list=false
generate-structures=true
online-mode=true
max-build-height=256
level-seed=
prevent-proxy-connections=false
use-native-transport=true
motd=A Minecraft Server
enable-rcon=false

4.运行多个服务端

下面我们使用bungeecord代理软件搭建由多个服务端组成的群组服务器,其架构原理如下图所示:

这里仅仅进行测试,BC代理软件和所有子服全部运行在一台服务器上。

在这里插入图片描述

运行mcworld2

在/opt/下创建目录mcowrld2,下载或者复制papermc服务端到该目录,这里mcworld1模拟上图的子服A登录服,mcworld2模拟上图的子服B生存服:

[root@willcentos ~]# mkdir -p /opt/mcworld2
[root@willcentos ~]# ll /opt
total 16
drwxr-xr-x 8 root root 4096 Dec 10 12:59 mcworld1
drwxr-xr-x 2 root root 4096 Nov 29 12:53 mcworld2

[root@willcentos ~]# cp /opt/mcworld1/mcworld1.jar /opt/mcworld2/mcworld2.jar
[root@willcentos ~]# ll /opt/mcworld2/
total 42420
-rw-r--r-- 1 root root 43435563 Nov 28 12:23 mcworld2.jar

创建启动脚本

这里将上面的启动命令写入脚本,下次执行脚本即可快速启动服务端:

[root@willcentos ~]# vim start_mcworld2.sh 
#!/bin/bash
cd /opt/mcworld2
nohup java -Xmx1024M -Xms1024M -jar mcworld2.jar nogui >/root/mcworld2.log &
tail -f /root/mcworld2.log

运行服务端,以便生成生成配置文件:

注意先停止mcworld1服务端,以免端口冲突。

[root@willcentos ~]# bash start_mcworld2.sh 
#启动失败,先同意协议
[root@willcentos ~]# sed -i 's/eula=false/eula=true/g' /opt/mcworld2/eula.txt
#重新执行
[root@willcentos ~]# bash start_mcworld2.sh 

下载bg代理软件

在/opt/下创建目录bungeecord:

[root@willcentos ~]# mkdir -p /opt/bungeecord

[root@willcentos ~]# ll /opt
total 16
drwxr-xr-x 2 root root 4096 Nov 29 13:14 bungeecord
drwxr-xr-x 8 root root 4096 Dec 10 12:59 mcworld1
drwxr-xr-x 2 root root 4096 Nov 29 12:53 mcworld2

下载bungeecord到bungeecord目录下。

bungeecord代理端下载地址:https://ci.md-5.net/job/BungeeCord/

选择红色区域所有文件下载,或者右键获取下载链接:

在这里插入图片描述

这里在官网获取下载链接,直接下载到linux对应目录下:

wget -P /opt/bungeecord/ https://ci.md-5.net/job/BungeeCord/lastSuccessfulBuild/artifact/bootstrap/target/BungeeCord.jar
wget -P /opt/bungeecord/ https://ci.md-5.net/job/BungeeCord/lastSuccessfulBuild/artifact/module/cmd-alert/target/cmd_alert.jar
wget -P /opt/bungeecord/ https://ci.md-5.net/job/BungeeCord/lastSuccessfulBuild/artifact/module/cmd-find/target/cmd_find.jar
wget -P /opt/bungeecord/ https://ci.md-5.net/job/BungeeCord/lastSuccessfulBuild/artifact/module/cmd-list/target/cmd_list.jar
wget -P /opt/bungeecord/ https://ci.md-5.net/job/BungeeCord/lastSuccessfulBuild/artifact/module/cmd-send/target/cmd_send.jar
wget -P /opt/bungeecord/ https://ci.md-5.net/job/BungeeCord/lastSuccessfulBuild/artifact/module/cmd-server/target/cmd_server.jar
wget -P /opt/bungeecord/ https://ci.md-5.net/job/BungeeCord/lastSuccessfulBuild/artifact/module/reconnect-yaml/target/reconnect_yaml.jar

查看下载的文件:

[root@willcentos ~]# ll /opt/bungeecord/
total 10108
-rw-r--r-- 1 root root 10297582 Nov 24 06:26 BungeeCord.jar
-rw-r--r-- 1 root root     5899 Nov 24 06:26 cmd_alert.jar
-rw-r--r-- 1 root root     4151 Nov 24 06:26 cmd_find.jar
-rw-r--r-- 1 root root     4629 Nov 24 06:26 cmd_list.jar
-rw-r--r-- 1 root root     5579 Nov 24 06:26 cmd_send.jar
-rw-r--r-- 1 root root     7525 Nov 24 06:26 cmd_server.jar
-rw-r--r-- 1 root root     6149 Nov 24 06:27 reconnect_yaml.jar

运行bungeecord代理端

创建启动脚本:

[root@willcentos ~]# vim start_bg.sh 
#!/bin/bash
cd /opt/bungeecord
nohup java -Xmx256M -jar BungeeCord.jar >/root/bg.log &
tail -f /root/bg.log

运行代理端,以便生成配置文件:

[root@willcentos ~]# bash start_bg.sh 

修改配置文件

修改mcworld1配置文件:

[root@willcentos ~]# cd /opt/mcworld1/
[root@willcentos mcworld1]# vim server.properties 

server-port=25566   #端口改为25566或者自定义

online-mode=false   #关闭验证

配置支持bungeecord

[root@willcentos mcworld1]# vim spigot.yml 
......
config-version: 11
settings:
  save-user-cache-on-stop-only: false
  sample-count: 12
  bungeecord: true   #改为true
  late-bind: false

启动mcworld1服务端:

[root@willcentos ~]# bash start_mcworld1.sh 

修改mcworld2配置文件:

[root@willcentos ~]# cd /opt/mcworld2/
[root@willcentos mcworld2]# vim server.properties 

server-port=25567   #端口改为25567或者自定义

online-mode=false   #关闭验证

配置支持bungeecord

[root@willcentos mcworld2]# vim spigot.yml 
......
config-version: 11
settings:
  save-user-cache-on-stop-only: false
  sample-count: 12
  bungeecord: true   #改为true
  late-bind: false

重新启动mcworld2服务端:

ps aux | grep java

[root@willcentos ~]# bash start_mcworld2.sh 

修改bungeecord配置文件:

[root@willcentos ~]# cd /opt/bungeecord/
[root@willcentos bungeecord]# vim config.yml 
disabled_commands:
- disabledcommandhere
online_mode: true      #这里默认为true不用修改
log_commands: false
network_compression_threshold: 256
listeners:
- query_port: 25565    #改为25565,这样客户端登录时不用再指定端口
  motd: '&1Another Bungee server'
  tab_list: GLOBAL_PING
  query_enabled: false
  proxy_protocol: false
  forced_hosts:
    pvp.md-5.net: pvp
  ping_passthrough: false
  priorities:
  - lobby
  bind_local_address: true
  host: 0.0.0.0:25565  #改为25565,这样客户端登录时不用再指定端口
  max_players: 1
  tab_size: 60
  force_default_server: false
connection_throttle: 4000
groups:
  md_5:
  - admin
log_pings: true
player_limit: -1
prevent_proxy_connections: false
forge_support: false
stats: 64afb5df-bd5d-4931-b614-fb6fd71807e3
permissions:
  default:
  - bungeecord.command.server
  - bungeecord.command.list
  admin:
  - bungeecord.command.alert
  - bungeecord.command.end
  - bungeecord.command.ip
  - bungeecord.command.reload
ip_forward: true    #改为true
timeout: 30000
servers:
  lobby:
    motd: '&1Just another BungeeCord - Forced Host'
    address: localhost:25566   #lobby代表mcworld1,端口改为25566
    restricted: false
  survival:                    #参考默认lobby项,新增mcworld2,新增更多则每项代表一个服务端。
    motd: '&1Just another BungeeCord - Forced Host'
    address: localhost:25567   #survival代表mcworld2,端口改为25567
    restricted: false

3.重新启动mc服务器端和代理端

修改配置后需要重新启动才能生效,这里将所有服务端停止并重新运行:

首先获取java进程号:

[root@willcentos ~]# ps -ef | grep java
root     18373     1 10 18:00 pts/0    00:01:57 java -Xmx1024M -Xms1024M -jar mcworld1.jar nogui
root     18393     1 12 18:00 pts/0    00:02:29 java -Xmx1024M -Xms1024M -jar mcworld2.jar nogui
root     18436     1  0 18:00 pts/0    00:00:05 java -Xmx256M -jar BungeeCord.jar

杀掉相关进程号:

[root@willcentos ~]# kill -9 18373 

[root@willcentos ~]# kill -9 18393

[root@willcentos ~]# kill -9 18436

查看启动脚本:

[root@willcentos ~]# ll /root
total 52
-rw-r--r-- 1 root root 3309 Dec 10 18:04 bg.log
-rw-r--r-- 1 root root 7432 Dec 10 18:03 mcworld1.log
-rw-r--r-- 1 root root 7096 Dec 10 18:03 mcworld2.log
-rw-r--r-- 1 root root  108 Dec 10 18:44 start_bg.sh
-rw-r--r-- 1 root root  133 Dec 10 18:43 start_mcworld1.sh
-rw-r--r-- 1 root root  133 Dec 10 18:44 start_mcworld2.sh

依次重新启动mcworld1 mcworld2 bungeecord:

[root@willcentos ~]# bash start_mcworld1.sh 

[root@willcentos ~]# bash start_mcworld2.sh 

[root@willcentos ~]# bash start_bg.sh 

基本原理:

在这里插入图片描述

客户端登录验证

登录信息配置相同:

在这里插入图片描述

在这里插入图片描述

成功登陆服务端:

运行/server命令,可以看到当前所在服务器为lobby,也即mcworld1服务端:

在这里插入图片描述

我们执行/server survival命令切换到survival服务端,也即mcworld2服务端。

再次执行/server可以看到我们当前所在服务器为survival:

在这里插入图片描述

至此群组服务器搭建完成,接下来可以自行通过修改服务端配置文件进行其他调整。

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值