1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > linux搭建 minecraft 我的世界游戏服务器

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

时间:2022-07-01 01:23:38

相关推荐

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

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

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

/whatday/article/details/108416397

1.Minecraft简介

官方网站:

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 -versionopenjdk 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 16drwxr-xr-x 2 root root 4096 Nov 27 13:48 mcworld1

下载MC服务端jar文件

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

官方服务端:/zh-hans/download/server/官方服务端:/papermc服务端:https://papermc.io/downloadsspigot服务端:/jenkins/job/BuildTools/sponge服务端:/

这里使用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/bashcd /opt/mcworld1nohup 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 javaroot17922 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.下载安装官方客户端:

官方客户端下载地址:/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 root1053 Dec 10 13:20 bukkit.ymldrwxr-xr-x 2 root root4096 Dec 10 12:58 cache-rw-r--r-- 1 root root598 Dec 10 13:20 commands.yml-rw-r--r-- 1 root root250 Dec 10 12:59 eula.txt-rw-r--r-- 1 root root2576 Dec 10 12:59 help.ymldrwxr-xr-x 2 root root4096 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 root5473 Dec 10 13:20 paper.yml-rw-r--r-- 1 root root 0 Dec 10 12:59 permissions.ymldrwxr-xr-x 3 root root4096 Dec 10 12:59 plugins-rw-r--r-- 1 root root757 Dec 10 13:20 server.properties-rw-r--r-- 1 root root3358 Dec 10 13:20 spigot.yml-rw-r--r-- 1 root root108 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.jsondrwxr-xr-x 10 root root4096 Dec 10 13:35 worlddrwxr-xr-x 4 root root4096 Dec 10 13:35 world_netherdrwxr-xr-x 4 root root4096 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 generator-settings=force-gamemode=falseallow-nether=trueenforce-whitelist=falsegamemode=0enable-query=falseplayer-idle-timeout=0difficulty=1spawn-monsters=trueop-permission-level=4pvp=truesnooper-enabled=truelevel-type=DEFAULThardcore=falseenable-command-block=falsemax-players=20network-compression-threshold=256resource-pack-sha1=max-world-size=29999984server-port=25565server-ip=spawn-npcs=trueallow-flight=falselevel-name=worldview-distance=10resource-pack=spawn-animals=truewhite-list=falsegenerate-structures=trueonline-mode=truemax-build-height=256level-seed=prevent-proxy-connections=falseuse-native-transport=truemotd=A Minecraft Serverenable-rcon=false

4.运行多个服务端

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

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

运行mcworld2

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

[root@willcentos ~]# mkdir -p /opt/mcworld2[root@willcentos ~]# ll /opttotal 16drwxr-xr-x 8 root root 4096 Dec 10 12:59 mcworld1drwxr-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/bashcd /opt/mcworld2nohup 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 /opttotal 16drwxr-xr-x 2 root root 4096 Nov 29 13:14 bungeecorddrwxr-xr-x 8 root root 4096 Dec 10 12:59 mcworld1drwxr-xr-x 2 root root 4096 Nov 29 12:53 mcworld2

下载bungeecord到bungeecord目录下。

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

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

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

wget -P /opt/bungeecord/ https://ci.md-/job/BungeeCord/lastSuccessfulBuild/artifact/bootstrap/target/BungeeCord.jarwget -P /opt/bungeecord/ https://ci.md-/job/BungeeCord/lastSuccessfulBuild/artifact/module/cmd-alert/target/cmd_alert.jarwget -P /opt/bungeecord/ https://ci.md-/job/BungeeCord/lastSuccessfulBuild/artifact/module/cmd-find/target/cmd_find.jarwget -P /opt/bungeecord/ https://ci.md-/job/BungeeCord/lastSuccessfulBuild/artifact/module/cmd-list/target/cmd_list.jarwget -P /opt/bungeecord/ https://ci.md-/job/BungeeCord/lastSuccessfulBuild/artifact/module/cmd-send/target/cmd_send.jarwget -P /opt/bungeecord/ https://ci.md-/job/BungeeCord/lastSuccessfulBuild/artifact/module/cmd-server/target/cmd_server.jarwget -P /opt/bungeecord/ https://ci.md-/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 root5899 Nov 24 06:26 cmd_alert.jar-rw-r--r-- 1 root root4151 Nov 24 06:26 cmd_find.jar-rw-r--r-- 1 root root4629 Nov 24 06:26 cmd_list.jar-rw-r--r-- 1 root root5579 Nov 24 06:26 cmd_send.jar-rw-r--r-- 1 root root7525 Nov 24 06:26 cmd_server.jar-rw-r--r-- 1 root root6149 Nov 24 06:27 reconnect_yaml.jar

运行bungeecord代理端

创建启动脚本:

[root@willcentos ~]# vim start_bg.sh #!/bin/bashcd /opt/bungeecordnohup 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: 11settings:save-user-cache-on-stop-only: falsesample-count: 12bungeecord: true #改为truelate-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: 11settings:save-user-cache-on-stop-only: falsesample-count: 12bungeecord: true #改为truelate-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:- disabledcommandhereonline_mode: true#这里默认为true不用修改log_commands: falsenetwork_compression_threshold: 256listeners:- query_port: 25565 #改为25565,这样客户端登录时不用再指定端口motd: '&1Another Bungee server'tab_list: GLOBAL_PINGquery_enabled: falseproxy_protocol: falseforced_hosts:pvp.md-: pvpping_passthrough: falsepriorities:- lobbybind_local_address: truehost: 0.0.0.0:25565 #改为25565,这样客户端登录时不用再指定端口max_players: 1tab_size: 60force_default_server: falseconnection_throttle: 4000groups:md_5:- adminlog_pings: trueplayer_limit: -1prevent_proxy_connections: falseforge_support: falsestats: 64afb5df-bd5d-4931-b614-fb6fd71807e3permissions:default:- mand.server- mand.listadmin:- mand.alert- mand.end- mand.ip- mand.reloadip_forward: true #改为truetimeout: 30000servers:lobby:motd: '&1Just another BungeeCord - Forced Host'address: localhost:25566 #lobby代表mcworld1,端口改为25566restricted: falsesurvival:#参考默认lobby项,新增mcworld2,新增更多则每项代表一个服务端。motd: '&1Just another BungeeCord - Forced Host'address: localhost:25567 #survival代表mcworld2,端口改为25567restricted: false

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

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

首先获取java进程号:

[root@willcentos ~]# ps -ef | grep javaroot183731 10 18:00 pts/0 00:01:57 java -Xmx1024M -Xms1024M -jar mcworld1.jar noguiroot183931 12 18:00 pts/0 00:02:29 java -Xmx1024M -Xms1024M -jar mcworld2.jar noguiroot184361 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 /roottotal 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:

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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。