- 积分
- 1282
- 帖子
- 主题
- 精华
贡献- 份
爱心- 心
- 钻石
- 颗
- 人气
- 点
- 下界之星
- 枚
- 最后登录
- 1970-1-1
- 注册时间
- 2015-6-17
来自:广西 | 本帖最后由 1669013708 于 2022-10-25 17:23 编辑
如何在Centos系统内用 vanillaFabric核心 和 velocity 群组代理搭建一个高版本红石生电服务器
1.说明
生电玩法一直是mc非常有趣的玩法之一,但是在站内一直没有一个系统的开服教程,正好趁着暑假有空,来填补这个空白。(挂科预定
本文将介绍如何在redhat/centos下打造属于你自己生电服,隔壁的小伙伴们都羡慕极了~
重要说明
本篇文章的最后一章——杂项,是从买来主机,安装系统,升级核心,直到能够配置mc服务端的全过程。如果你是第一次使用centos,最后那些希望能给你一点参考。
也就是说,第三章将直接从配置服务端开始。
我会在文章末尾把本次用到软件,资料,以及搭建好的服务端上传的网盘链接贴上,各位有需要自取
你必须拥有基本的linux知识,了解基本的命令等,本篇文章不会有太基础的内容
本文若有任何疏漏之处,还请各位大佬多多斧正;若对教程有任何疑问,欢迎评论或者私信。谢谢各位。
本文中示范的软件,硬件以及环境配置如下
硬件
CPU: 锐龙R7-5800H
内存:16G单条
硬盘:512G SSD
软件
python版本:python3.9.7
jdk版本:OpenJDK Runtime Environment (Alibaba Dragonwell)-17.0.3.0.3+7-GA
mc核心:VanilaFabric服务端1.18.1
系统
centos stream 8
|
为何jdk使用了Dragonwell
简单来说,就是比官方的jdk占用小,运行效率高。
CPU占用和内存占用极其稳定, 即使进行大规模跑图、生成实体,tnt爆炸也几乎无波动 经测试,在用于开mc服务器的时候,节省 20~40% 左右的内存,提升 10~30% 左右的CPU效率 以上内容来自mcbbs, id:紅葉
|
2.介绍
2.1 架构介绍
以TIS为例,使用velocity群组代理,连接三个主要服务器,分别为生存服(Servival),镜像服(Mirror)以及创造服(Creative)。并且使用了另外的一个服务器作为跨服聊天服务器(ChatBridge)。
![]()
生存服务器、镜像服务器和创造服务器结构的主体部分。三个服务器在计算机上同时运行,有着不同作用。 生存服务器是主服务器,作为生电生存的平台。 创造服务器可以有若干个,可以作为生电机器的展示和交流平台等。 镜像服务器是生存服务器的副本,用来进行机器实装前的测试等工作。 以上内容来自b站专栏,id:春雨尋风
这三个主要服务器均是MCDR + vanillaFabric的服务器组合,通过velocity群组服代理与用户通信,通过charbridge server进行跨服对话。
MCDR仓库在此。
MCDR插件列表在此。
之后搭建镜像服时会使用MCDR插件。
|
3.搭建服务端
3.1 配置jdk
我本次使用的是alibaba的dragonwell版本的jdk。
当然,若是使用zulujdk等其他版本也是一样的过程。
首先下载dragonwell,一般情况下下载x64_linux版本就行。
官网链接
你可以用wget直接下载到你的linux主机上,也可以先下载到自己的主力机上,再通过SFTP服务上传,更方便。
若有其他版本的java建议卸载一下
解压jdk到/usr/local文件夹下
- tar -zvxf Alibaba_Dragonwell_17.0.3.0.3+7_x64_linux.tar.gz -C /usr/local
复制代码 配置环境变量
在最后添加以下内容
- #java path config
- JAVA_HOME=/usr/local/dragonwell-17.0.3.0.3+7-GA
- CLASS_PATH=$JAVA_HOME/lib
- PATH=$JAVA_HOME/bin:$PATH
- export JAVA_HOME CLASS_PATH PATH
复制代码 保存退出后,使其生效
可以输入java -version查看是否配置成功
- [root@localhost ~]# java -version
- openjdk version "17.0.3" 2022-04-19
- OpenJDK Runtime Environment (Alibaba Dragonwell)-17.0.3.0.3+7-GA (build 17.0.3+7)
- OpenJDK 64-Bit Server VM (Alibaba Dragonwell)-17.0.3.0.3+7-GA (build 17.0.3+7, mixed mode, sharing)
复制代码 |
3.2 配置velocity
velocity是类似于BungeeCord的群组代理,非常适合于这种使用VanillaFabric核心的情况。对高版本(1.13+)支持较好,转发效率高。对于模组服不建议使用。
以下服务端类型因为支持使用 Velocity 的modern转发协议,因此推荐使用 Velocity 进行跨服: 1.13+(含) 的 Paper(需要构建版本高于1.13 Build377)(及其非Forge Mod支持的分支) 服务端 任意版本,安装了FabricProxy Mod 的 VanilaFabric 服务端 以上内容来自mcbbs, id: 贺兰兰
下载Velocity
可以下载stable稳定版本的Velocity
但是注意,若服务端为mc1.19.1及以上带有公钥验证的版本,请使用development开发版本。
访问官网以下载
或者使用使用wget下载
- # 新建一个文件夹,用来放Velocity所需文件
- mkdir mc
- # 下载稳定版本Velocity到mc文件夹
- wget -P mc https://api.papermc.io/v2/projects/velocity/versions/3.1.1/builds/98/downloads/velocity-3.1.1-98.jar
- # 开发版本更新速度太快,请自行到官网下载完再上传至服务器。
复制代码 第一次运行以生成配置文件
- # cd到mc文件夹,这是刚才存放Velocity的文件夹
- cd mc
- # 新建并编辑脚本文件
- vi start.sh
复制代码 将以下内容放进去
注意:占用内存设置可大可小,若你服务器时常在线人数只有个位数,完全可以改为256M或512M
- #!/bin/sh
- java -Xms1G -Xmx1G -XX:+UseG1GC -XX:G1HeapRegionSize=4M -XX:+UnlockExperimentalVMOptions -XX:+ParallelRefProcEnabled -XX:+AlwaysPreTouch -XX:MaxInlineLevel=15 -jar velocity*.jar
复制代码 保存退出后运行bash start.sh,开始运行,你可以看到以下内容,代表运行成功。
- [root@localhost mc]# bash start.sh
- [14:38:21 INFO]: Booting up Velocity 3.1.1...
- [14:38:21 INFO]: Loading localizations...
- [14:38:21 INFO]: Connections will use epoll channels, libdeflate (Linux x86_64) compression, OpenSSL 1.1.x (Linux x86_64) ciphers
- [14:38:21 WARN]: Player info forwarding is disabled! All players will appear to be connecting from the proxy and will have offline-mode UUIDs.
- [14:38:21 INFO]: Loading plugins...
- [14:38:21 INFO]: Loaded 0 plugins
- [14:38:21 INFO]: Listening on /[0:0:0:0:0:0:0:0%0]:25577
- [14:38:21 INFO]: Velocity and some of its plugins collect metrics and send them to bStats ([url]https://bStats.org[/url]).
- [14:38:21 INFO]: bStats collects some basic information for plugin authors, like how many people use
- [14:38:21 INFO]: their plugin and their total player count. It's recommended to keep bStats enabled, but
- [14:38:21 INFO]: if you're not comfortable with this, you can opt-out by editing the config.txt file in
- [14:38:21 INFO]: the '/plugins/bStats/' folder and setting enabled to false.
- [14:38:21 INFO]: Done (0.51s)!
- >
复制代码 使用end命令退出,然后修改配置文件
在本文中,我将只说明必要的修改项,其余保持默认即可。若有其他需求,你可以浏览这个帖子(感谢贺兰兰)查看详细配置说明。配置说明在文章中部。
下面开始说明主要配置项目(mc1.19.1及以上配置项目在下方)
- bind = "0.0.0.0:25577",表示将监听来自所有ip地址,端口25577的连接,可以按需更改。
- motd = " add3A Velocity Server",这项将在玩家mc服务器列表内显示服务器介绍信息,按需更改。
- show-max-players = 500,这项将在玩家服务器列表内显示最大玩家数量。注意:Velocity不能真正的限制玩家数量,如有需要,请在下游服务器设置人数上限。
- online-mode = true,启用正版登录。
- player-info-forwarding-mode = "NONE"修改为player-info-forwarding-mode = "modern",使用Velocity原生转发玩家的 IP 和 UUID。
- forwarding-secret = "wVt1HBsKmLmM",将引号内的字符串记住,将来要用。
- kick-existing-players = false,可以修改为true,在开启正版登录情况下,若有相同用户名的玩家重复登录服务器,将服务器内的玩家踢出以令新玩家进入。
- 修改[servers]信息,一共有三个主要服务器,可以参考以下设置,按需更改。
- [servers]
- # Configure your servers here. Each key represents the server's name, and the value
- # represents the IP address of the server to connect to.
- # 在下面配置你的服务器信息
- survival = "127.0.0.1:30066"
- mirror = "127.0.0.1:30067"
- creative = "127.0.0.1:30068"
- # In what order we should try servers when a player logs in or is kicked from a server.
- # 若玩家被踢出服务器或第一次连接服务器,则按照以下顺序连接
- # 若要尝试多个服务器,则按照以下配置
- # try = ["survival","creative"]
- try = ["survival"]
复制代码
- 修改[forced-hosts]信息,以下内容仅供参考,按需更改。
- [forced-hosts]
- # Configure your forced hosts here.
- "survival.example.com" = ["survival"]
- "mirror.example.com" = ["mirror"]
- "creative.example.com" = ["creative"]
复制代码 修改完成,[advanced]设置无需更改,保存退出。
mc1.19.1版本及以上配置项目如下。
- bind = "0.0.0.0:25577",表示将监听来自所有ip地址,端口25577的连接,可以按需更改。
- motd = " add3A Velocity Server",这项将在玩家mc服务器列表内显示服务器介绍信息,按需更改。
- show-max-players = 500,这项将在玩家服务器列表内显示最大玩家数量。注意:Velocity不能真正的限制玩家数量,如有需要,请在下游服务器设置人数上限。
- online-mode = true,启用正版登录。
- force-key-authentication = true,强制公钥验证,我的建议是改为false,配合NoChatReports模组禁用玩家举报。
- player-info-forwarding-mode = "none",将其改为morden,使用Velocity原生转发玩家的 IP 和 UUID。
- forwarding-secret-file = "forwarding.secret",和之前的Velocity版本不同,将密钥字符串保存到了相同目录下的forwarding.secret文件中,请将其打开复制保存备用。
- kick-existing-players = false,可以修改为true,在开启正版登录情况下,若有相同用户名的玩家重复登录服务器,将服务器内的玩家踢出以令新玩家进入。
- 修改[servers]信息,以下内容供参考。
- [servers]
- # Configure your servers here. Each key represents the server's name, and the value
- # represents the IP address of the server to connect to.
- survival = "127.0.0.1:30066"
- mirror = "127.0.0.1:30067"
- creative = "127.0.0.1:30068"
复制代码
- 修改[forced-hosts]信息,以下内容供参考。
- [forced-hosts]
- # Configure your forced hosts here.
- "survival.example.com" = [
- "survival"
- ]
- "mirror.example.com" = [
- "mirror"
- ]
- "creative.example.com" = [
- "creative"
- ]
复制代码
放行centos防火墙端口
若是使用腾讯云,阿里云等云主机厂商,记得在控制台内放行25577端口(以本文为例)。
并且由于以上两个厂商的安装的系统默认不开启系统防火墙,以下代码可以忽略。
- firewall-cmd --zone=public --add-port=25577/tcp --permanent
- firewall-cmd --reload
复制代码 |
3.3 搭建MCDR框架以及搭建mc服务端
MCDReforged(以下简称 MCDR)是一个可以在完全不对 Minecraft 服务端进行修改的情况下,通过可自定义的插件系统,提供对服务端的管理能力的工具 小至计算器、高亮玩家、b 站弹幕姬,大至操控计分板、管理结构文件、自助备份回档,都可以通过 MCDR 及相配套的插件实现 以上内容来自MCDR仓库。
3.3.1 初始化MCDR
建议安装python3.9,不但是因为MCDR依赖python3.6-3.9,而且某些MCDR插件仅支持此python版本。
点击此处访问MCDR文档。
安装MCDR
使用清华源来加速下载
- pip3 install mcdreforged -i https://pypi.tuna.tsinghua.edu.cn/simple
复制代码 初始化MCDR
在mcdrs文件夹中运行MCDR,使用以下命令初始化MCDR运行环境。
- # 新建mcdrs文件夹并转到mcdrs文件夹
- mkdir mcdrs && cd mcdrs
- # 初始化MCDR
- python3 -m mcdreforged init
复制代码
运行成功后,类似于以下提示
- [root@localhost ~]# mkdir mcdrs && cd mcdrs
- [root@localhost mcdrs]# python3 -m mcdreforged init
- Initialized environment for MCDReforged in /root/mcdrs
复制代码 |
3.3.2 配置survival子服务端
在fabricmc网站下载服务端。本次演示mc版本是1.18.1,你也可以安装其他版本。
下载fabric服务端
服务端核心下载
注意:要将服务端核心下载到存放mcdr文件夹的server文件夹内。
- cd server
- curl -OJ https://meta.fabricmc.net/v2/versions/loader/1.18.1/0.14.8/0.11.0/server/jar
复制代码 启动MCDR的同时启动mc服务端
退回上一个目录,修改MCDR配置文件,以启动服务端。
可以按照以下配置修改,其他默认即可
- language: en_us,可以修改为zh_cn,这样输出为中文。
- start_command: java -Xms1G -Xmx2G -jar minecraft_server.jar nogui,将启动命令中 *.jar 文件修改为你的服务器核心的文件名,最大和最小内存自行修改。例如:java -Xmx6G -jar fabric-server-mc.1.18.1-loader.0.14.8-launcher.0.11.0.jar nogui
修改结束,保存退出。
启动MCDR
因为是第一次启动,会让你同意eula
- [Server] [16:37:36] [main/ERROR]: Failed to load properties from file: server.properties
- [Server] [16:37:36] [main/WARN]: Failed to load eula.txt
- [Server] [16:37:36] [main/INFO]: You need to agree to the EULA in order to run the server. Go to eula.txt for more info.
- [MCDR] [16:37:36] [MainThread/INFO]: 服务端进程返回代码: 0
- [MCDR] [16:37:36] [MainThread/INFO]: 服务端已关闭
- [MCDR] [16:37:36] [MainThread/INFO]: 正在关闭 MCDR
- [MCDR] [16:37:36] [MainThread/INFO]: 正在关闭高级控制台
- >
- [MCDR] [16:37:37] [MainThread/INFO]: bye
复制代码 修改eula.txt
现在,请做两件事
1) 退回上级目录,将mcdrs文件夹(存放mcdr的文件夹)另存为副本,等会配置creative子服务端时更方便。
- # 转到用户目录
- cd ~
- # 创建mcdrc文件夹,用于存放Creative子服务器的文件
- mkdir mcdrc
- # 复制文件
- cp -r mcdrs/* mcdrc/
复制代码 2) 由于镜像服的同步功能使用了MCDR的插件,事先将mcdrs下的文件另存到Mirror文件夹下,等会配置Mirror子服务端时更方便。
- # 退回上级目录
- cd ..
- # 转到mcdrs目录
- cd mcdrs
- # 创建 Mirror 文件夹
- mkdir Mirror
- # 将mcdrc文件夹下的文件复制到mcdrs/Mirror文件夹下
- cp -r /root/mcdrc/* Mirror/
复制代码 现在,就可以编辑survival子服务端的server.properties配置文件了
- cd server
- vi server.properties
复制代码
- difficulty=easy可以修改为hard。
- max-players=20可以自行设置最大人数。
- online-mode=true,由于之前在Velocity配置文件内设置了"Modern"转发模式,正版服务器可以无需更改。
- server-port=25565,端口按照之前在Velocity配置的端口设置,我设置为30066。
其他无需修改,保存退出即可。
由于使用了Velocity转发,要在mods文件夹内安装FabricProxy-Lite
Fabric-API网站在此处
FabricProxy-Lite网站在此处
- # 转到mods文件夹
- cd mods
- # 下载Fabric-API
- wget https://cdn.modrinth.com/data/P7dR8mSH/versions/0.46.6+1.18/fabric-api-0.46.6%2B1.18.jar
- # 下载FabricProxy-Lite
- wget https://cdn.modrinth.com/data/8dI2tmqs/versions/v1.1.6/FabricProxy-Lite-1.1.6.jar
复制代码 现在要启用服务端,需要修改第一次启动FabricProxy-Lite模组的配置文件
- # 转到mcdrs文件夹内
- cd /root/mcdrs
- # 启动MCDR
- python3 -m mcdreforged
复制代码 成功启动后输入stop停止服务端运行。
- # 转到配置文件的文件夹
- cd cd server/config
- # 修改配置文件
- vi FabricProxy-Lite.toml
复制代码 将hackEarlySend = false,改成true,便于minihud等模组正确渲染结构。
现在将之前保存的Velocity的配置文件的字符串复制过来。
secret = "",将字符串填入引号内部。保存退出。
现在,可以启动suivival服务端看能否连接上了
- # 转到mcdrs文件夹
- cd /root/mcdrs
- # 启动MCDR
- python3 -m mcdreforged
复制代码 大功告成
(若不设置上一步的secret,就会出现如下图所示的错误)
Velocity连接成功提示 ![]()
Survival服务端连接成功提示 ![]()
|
3.3.3 配置Mirror子服务端
我使用了MCDR插件列表中的MirrorServerReforged插件,其Mirror存放在Survival子服务端下。
仓库地址在此。
将这个插件下载到./mcdrs/plugin目录下。
- # 转到./mcdrs/plugin目录
- cd /root/mcdrs/plugin
- # 下载MirrorServerReforged插件
- wget [url]https://github.com/EMUnion/MirrorServerReforged/releases/download/1.0.3/MirrorServerReforged-v1.0.3.mcdr[/url]
复制代码 启动一次MCDR以生成配置文件
- # 转到上级目录
- cd ..
- # 启动MCDR
- python3 -m mcdreforged
- # 停止运行
- stop
复制代码 编辑MirrorServerReforged配置文件
- cd config
- vi MirrorServerReforged.json
复制代码 rcon要打开,便于控制Mirror服务端,配置如下,以便参考
- {
- "world":[
- "world"
- ],
- "command":"python3 -m mcdreforged",
- "rcon":{
- "enable":true,
- "host":"localhost",
- "port":25575,
- "password":"password"
- }
- }
复制代码 保存退出
Mirror子服务端也需要安装FabricProxy-Lite
直接将之前下载的mod和配置文件复制一份就行。
- cd ..
- # 复制mod
- cp server/mods/* Mirror/server/mods/
- # 复制配置文件
- cp -r server/config Mirror/server/
复制代码 编辑Mirror子服务端的server.properties
- cd Mirror/server
- vi server.properties
复制代码
- rcon.port=25575,确保rcon端口是25575。
- difficulty=easy可以修改为hard。
- max-players=20可以自行设置最大人数。
- online-mode=true,由于之前在Velocity配置文件内设置了"Modern"转发模式,正版服务器可以无需更改。
- server-port=25565,端口按照之前在Velocity配置的端口设置,我设置为30067。
- enable-rcon=false,将其改为true以启用rcon。
- rcon.password=,将之前设置的rcon密码填入。例如:password。
设置完成,保存退出。
测试是否工作正常
- # 回到mcdrs文件夹
- cd /root/mcdrs
- # 启动survival子服务端
- python3 -m mcdreforged
复制代码- # 转到Velocity文件夹
- cd mc
- # 启动Velocity代理
- bash strat.sh
复制代码 登录游戏,查看插件是否运行正常
可以输入指令
命令列表 !!msr help - 显示帮助信息 !!msr sync - 同步服务器地图至镜像 !!msr reload - 重载配置文件 !!msr start - 启动镜像服务器 !!msr stop - 关闭镜像服务器(需要开启Rcon) !!msr init - 初始化镜像服务器(仅MCDR类服务器可用) !!msr status - 查看镜像服务器状态 以上内容来自msr仓库,点击访问
启动参数参数中内存果然要调大一点,不然启动得慢
运行完美
![]()
|
3.3.4 配置Creative子服务端
Creative子服务端就没那么繁琐了
编辑server.properties
- cd /root/mcdrc/server
- vi server.properties
复制代码
- gamemode=survival,改为creative。
- enable-command-block=false,可以改为true,启用命令方块。
- difficulty=easy,可以改为hard,困难模式。
- max-players=20,可以更改人数上限。
- online-mode=true,是否开启正版验证。
- server-port=25565,端口改为之前在Velocity配置文件内的端口。如:30068。
- level-type=,这一项可能没有,可以直接在最后一行添加,可以设置为超平坦flat。
将之前的FabricProxy和配置文件复制一份
- cd ~
- # 复制mod
- cp mcdrs/server/mods/* mcdrc/server/mods/
- # 复制配置文件
- cp -r mcdrs/server/config mcdrc/server/
复制代码 测试是否能够切换服务器
![]()
![]()
大功告成
|
4.跨服聊天搭建
使用MCDR的ChatBridge插件实现跨服聊天功能。
仓库地址在此。
4.1 服务端环境搭建
事先安装pycryptodome以及colorlog的python包
需要Python 3.6+
- # 安装python包
- pip3 install pycryptodome -i [url]https://pypi.tuna.tsinghua.edu.cn/simple[/url]
- pip3 install colorlog -i [url]https://pypi.tuna.tsinghua.edu.cn/simple[/url]
复制代码 |
4.1.1 配置服务端
下载插件到chatbridge文件夹
- # cd到用户文件夹
- cd ~
- # 新建文件夹,用来存放文件。
- mkdir chatbridge
- cd chatbridge
- # 下载插件
- wget [url]https://github.com/TISUnion/ChatBridge/releases/download/v2.2.0/ChatBridge.pyz[/url]
复制代码 第一次运行会生成配置文件
- [root@localhost chatbridge]# python3 ChatBridge.pyz server
- Configure file not found!
- Default example configure generated
- Traceback (most recent call last):
- File "/usr/lib64/python3.9/runpy.py", line 197, in _run_module_as_main
- return _run_code(code, main_globals, None,
- File "/usr/lib64/python3.9/runpy.py", line 87, in _run_code
- exec(code, run_globals)
- File "/root/chatbridge/ChatBridge.pyz/__main__.py", line 4, in <module>
- File "/root/chatbridge/ChatBridge.pyz/chatbridge/cli_entry.py", line 43, in main
- File "/root/chatbridge/ChatBridge.pyz/chatbridge/cli_entry.py", line 15, in server
- File "/root/chatbridge/ChatBridge.pyz/chatbridge/impl/cli/cli_server.py", line 81, in main
- File "/root/chatbridge/ChatBridge.pyz/chatbridge/impl/utils.py", line 20, in load_config
- FileNotFoundError: ChatBridge_server.json
复制代码 编辑配置文件
- vi ChatBridge_server.json
复制代码 以下配置供参考
- {
- "aes_key": "ThistheSecret",
- "hostname": "localhost",
- "port": 30001,
- "clients": [
- {
- "name": "survival",
- "password": "survival"
- },
- {
- "name": "mirror",
- "password": "mirror"
- },
- {
- "name": "creative",
- "password": "creative"
- }
- ],
- "show_chat": true,
- "log_chat": false
- }
复制代码 保存退出。
使用python3 ChatBridge.pyz server运行跨服聊天服务端。
|
4.1.2 配置客户端(以Survival子服务端为例)
由于使用了MCDR,客户端配置很简单。
将插件下载到mcdrs/plugins文件夹下
- # 转到plugins文件夹下
- cd ~/mcdrs/plugins
- # 下载插件
- wget [url]https://github.com/TISUnion/ChatBridge/releases/download/v2.2.0/ChatBridge.pyz[/url]
- # 退回上级目录
- cd ..
- # 启动MCDR
- python3 -m mcdreforged
复制代码 第一次启动会生成配置文件,需要修改
- # 停止Survival子服务端
- stop
- # 编辑配置文件
- vi config/chatbridge/config.json
复制代码 按照之前的设置服务端的信息修改配置文件。以下供参考。
- {
- "aes_key": "Th**theSecret",
- "name": "survival",
- "password": "survival",
- "server_hostname": "127.0.0.1",
- "server_port": 30001,
- "debug": false
- }
复制代码 保存退出。
使用python3 -m mcdreforged启动Survival子服务端。
再把另外两个子服务端也按照上面的步骤配置一遍,测试效果。
完美
![]()
可以在各个子服务器文件夹内将python3 -m mcdreforged保存为脚本文件,这样下次启动更方便。
|
5.插件及模组推荐
经过这么长时间的搭建,终于是可以正常游玩了。但是呢,优化模组以及有趣的插件必不可少。我在这里推荐几项。
5.1 Fabric模组推荐
下载好的模组直接拖入mods文件夹就行
- Startlight,光照优化,下载网址
- Concurrent Chunk Management Engine(C^2M引擎),区块加载优化,下载网址
- Carpet Mod,为你的服务器添加更多功能,不解释,下载网址
- [PCA]plusls-carpet-addition,Carpet附属,PCA同步协议,用于容器预览(客户端配合Masa Gadget使用),玩家(假人)数据同步等,具体介绍以及下载网址
- [GCA]gugle-carpet-addition,Carpet附属,用于查看假人背包,假人开服自动上线等功能,具体介绍以及下载网址
- servux,唯一作用便是为了传递结构,便于在安装了minihud模组的客户端上正确渲染结构。但是使用minihud的史莱姆区块渲染仍然需要种子。下载网址
- Lithium(锂),原版优化,下载网址
5.2 MCDR插件推荐
下载好的插件放入plugins。请详细阅读Readme,确保安装好需要的python包。
插件列表
- QuickBackupM,多槽位备份,回档。仓库
- Timed QBM,定时触发QBM备份。仓库
- Minecraft Data API,获得玩家数据的API。仓库
- Join MOTD,向玩家发送欢迎信息。仓库
- Here,高亮玩家,显示坐标。仓库
- Beep,@某人,@ all可作用于所有玩家。仓库
- DayCountNBT,获取开服时间。仓库
- Stats Helper,获取玩家信息,计分板。仓库
- Simple OP,获取op,创造服可用。仓库
|
x.杂项
说明
以下内容是我从刚开始买来主机装系统,配置完环境,直到能用于正常配置mc服务端的所有过程。如果你是新手,第一次配置服务端,可以仔细阅读。希望对你有所启发。
x.1 安装系统
x.1.1 制作启动盘
准备一个u盘(16G足够),记得把数据备份出来,写盘后数据会全部丢失。
推荐软件:FedoraMediaWriter,使用这个软件制作的linux系统启动盘安装的bug比较少。如果你使用软碟通等软件记得把写入方式改为RAW,否则可能会出现找不到安装源的问题。
打开软件,点击“选择.iso文件”,下一步
![]()
点击“选择”,选择你的系统镜像文件
![]()
耐心等待
![]()
大功告成
![]()
注意:windows上无法直接将u盘格式化,请用这个软件将其重置后才能正常使用
![]()
|
x.1.2 开始安装系统
进bios/uefi将u盘设为第一启动项
大多数电脑狂按delete能进bios,某些电脑可能特殊,自行百度。
将"Boot Option #1"和"~ #2"都设置为你的u盘。然后"save & exit"保存退出。
![]()
选第一项,开始安装centos stream 8
![]()
注意:若选择使用软碟通制作的启动盘,在此处会出现无法进入安装程序的问题。
可以翻到下面,选择中文
![]()
键盘可以不用选,汉语和英语键盘布局一样的。
语言支持最好添加一个英文(美国)。
![]()
软件选择直接最小安装。无需其他软件。
安装目的地选择时把你的硬盘打上勾,可能会提示分区,可以直接删除全部,系统会帮你自动分区。
![]()
root账户和普通账户要设置一下,密码简单的情况下需要点两下完成才能设置成功
![]()
设置全部完成后如下图所示,最后点击开始安装
![]()
安装完成后重启即可
![]()
|
x.2 配置网络
输入root账号密码登录系统,注意密码输入时不可见
- CentOS Stream 8
- Kernel 4.18.0-383.e18.x86_64 on an x86_64
- localhost login: root
- Password:
- Last login: Sat Jun 25 11:42:27 on tty1
- [root@localhost ~]#
复制代码 输入nmcli查看当前网络
- [root@localhost ~]# nmcli
- eno1: unavailable
- "Realtek RTL8111/8168/8411"
- ethernet (r8169), 50:A1:32:1F:32:D9, hw, mtu 1500
- enp1s0: unavailable
- "Realtek RTL8111/8168/8411"
- ethernet (r8169), 50:A1:32:1F:32:D8, hw, mtu 1500
- lo: unmanaged
- "lo"
- loopback (unknown), 00:00:00:00:00:00, sw, mtu 65536
- Use "nmcli device show" to get complete information about known devices and
- "nmcli connection show" to get an overview on active connection profiles.
- Consult nmcli(1) and nmcli-examples(7) manual pages for complete usage details.
复制代码 显然,我们没有连上任何网络。
由于我这台主机比较新,而众所周知,centos的内核版本比较旧,导致每次主机一开机报错一大片;我的wifi6无线网卡也无法显示。这就需要我们更新内核版本,下一部分会讲到。
照常理来说,连网只要一根网线就行了,可是现在身边既没网线,又没路由器,接下来分享一个应急的办法。
将你的手机和电脑用usb线连起来,我以vivo手机为例:设置->其他网络与连接->个人热点->其他共享方式->通过USB共享网络打开开关。当然,其他手机也可以直接在设置里搜索,这里不再赘述。
打开开关后,再次输入nmcli,会多出一个连接,出现connected to ...的字样并且变为绿色时,说明已经连上网了。
由于系统对汉字没有支持,所以connected to后面的字符为方框,我这里用...代替了
- [root@localhost ~]# nmcli
- enp5s0f3u2: connected to ... 1
- "vivo iQOO Neo5"
- ethernet (rndis_host), 1E:39:13:6C:48:71, hw, mtu 1500
- ip4 default
- inet4 192.168.124.143/24
- route4 192.168.124.0/24 metric 100
- route4 default via 192.168.124.7 metric 100
- inet6 fe80:7026:abb5:86b6:13e0/64
- route6 fe80::/64 metric 1024
- eno1: unavailable
- "Realtek RTL8111/8168/8411"
- ethernet (r8169), 50:A1:32:1F:32:D9, hw, mtu 1500
- enp1s0: unavailable
- "Realtek RTL8111/8168/8411"
- ethernet (r8169), 50:A1:32:1F:32:D8, hw, mtu 1500
- lo: unmanaged
- "lo"
- loopback (unknown), 00:00:00:00:00:00, sw, mtu 65536
- Use "nmcli device show" to get complete information about known devices and
- "nmcli connection show" to get an overview on active connection profiles.
- Consult nmcli(1) and nmcli-examples(7) manual pages for complete usage details.
复制代码 但是有时候多出来的连接仍然是灰色,不能自动配置网络,那就需要手动配置了
输入nmtui,打开文本界面(光敏性癫痫警告)
![]()
打开第一个Edit a connection,看左边一栏是否有你手机创建的网络连接,若没有,选择右边的Add(我这里左边有了手机的共享,但是汉字无法显示,只有框框)
![]()
有线连接选第二个Ethernet
![]()
有线连接名称随意,第二行的设备名不要搞错,我刚刚连手机的是enp5s0f3u2,也就是说第二行要填刚刚nmcli命令下方的顶格的名称,例如:eno1, enp1s0等等。
![]()
下方的设置默认就行,选择OK返回。再选择Back返回到最开始的界面。
![]()
再选择第二个Activate a connection
![]()
选择USB Ethernet下方的连接,再点击右边的Activate,激活连接。退出这个页面,已经连上网了。
|
x.3 升级内核
为了确保系统正常,最重要的是更新驱动,不然开机时的一排排error真是让人“赏心悦目”。这里使用安装ELRepo源,自行编译的方法升级内核,原因是官方的更新慢,无法适用我的主机。而且不能自行选择功能。
x.3.1 下载内核源代码
可以打开这个内核网站查看内核版本
建议下载stable版的内核源代码
安装一下wget以及tar工具
下载内核(后面的链接可自行替换)
- wget [url]https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.18.6.tar.xz[/url]
复制代码
若此种方法速度过慢,可以先在主力机上下载好,使用u盘拷贝。下面介绍此种方法。
注意:u盘必须为fat32格式
将文件拷贝进你的u盘,将u盘插进你的linux主机。
创建挂载目录
看存储设备名称
![]()
看最后一行,确定为14.7G的设备,名称为sda1.
挂载u盘
转到挂载目录
列出文件
- [root@localhost usb]# ls
- linux-5.18.6.tar.xz 'System Volume Information'
复制代码 将其拷贝到主机上
- cp linux-5.18.6.tar.xz /root/5.18.6.tar.xz
复制代码 解除目录占用,取消挂载
解压文件
- cd /root
- xz -d 5.18.6.tar.xz
- tar -xf 5.18.6.tar
复制代码 |
x.3.2 编译前的准备
安装epel源
安装依赖
- dnf install gcc make ncurses-devel openssl-devel flex bison elfutils-libelf-devel
复制代码 安装编译过程中需要的软件
- dnf install python39 bc perl
复制代码 将当前版本配置文件复制到前面解压的内核源代码文件夹内
- cd /root/linux-5.18.6
- cp /boot/config* .config
复制代码 然后编辑此配置文件
直接在命令模式下输入/CONFIG_SYSTEM_TRUSTED_KEYS,回车
找到这一行,按i键变为编辑模式,将引号内"certs/rhel.pem"清空
这行变为CONFIG_SYSTEM_TRUSTED_KEYS=""
按esc变为命令模式,输入/CONFIG_DEBUG_INFO_BTF,查找后将后面的y改为n
按esc变为命令模式,输入:wq保存退出
|
x.3.3 开始编译
配置文件更改设置
有许多配置能够自行更改 用enter键切换目录,用空格键选择功能
![]()
比如要添加NTFS以及exFAT的支持 File systems ---> DOS/FAT/EXFAT/NT Filesystems --->
![]()
记得按Save后再Exit
编译内核
-j 数字是将编译任务分成多少份,能加快进度。
时间可能需要1到2小时,请耐心等待
安装内核模块
最后安装核心文件
![]()
安装完成后输入reboot重启
启动项第一个应该就是5.18.6版本的内核了
正常启动
跳转到内核源码目录,将内核源代码以及编译后的清理干净。当然,也可以直接将文件夹删掉。
|
x.3.4 连接无线网
现在主机开机后已经不会出现一排排的[error]了,代表驱动已经安装上了,我的无线网卡也显示成功了。
然而,显示的是"plugin missing"状态,需要一些操作才能联网。
![]()
安装NetworkManager-wifi
- dnf install NetworkManager-wifi
复制代码 安装后reboot重启,wifi网卡应该已经启动,如果未启动执行nmcli r wifi on开启无线网
配置wifi
可以使用文本编辑界面,简单易用。
![]()
选第二个Activate a connection,在Wi-Fi一栏下面有wifi名称,在要连的的wifi回车,输入密码就行了,连上以后退出。可以输入nmcli看连接情况。
![]()
![]()
你也可以使用命令行来连接wifi
#扫描可用于连接wifi nmcli dev wifi #添加一个wifi的连接 nmcli dev wifi con “无线网络名称” password “无线网络密码” name “任意连接名称(删除,修改时用)” #添加成功后查看已创建的wifi连接 nmcli conn 以上内容来自CSDN
设定静态ip
由于要搭服务器,dhcp最好关掉,ip动态会比较麻烦
可以看一下ip,网关等信息,待会可以直接输入
![]()
显然,第一个就是网关,后面的是ip
先cd到网络配置文件目录
- cd /etc/sysconfig/network-scripts
复制代码 列出文件
- [root@localhost ~]# cd /etc/sysconfig/network-scripts
- [root@localhost network-scripts]# ls
- ifcfg-Connectify-me ifcfg-eno1 ifcfg-enp1s0 ifcfg-····_1 keys-Connectify-me
复制代码 可以看到一共有5个配置文件,现在来编辑我连上的wifi,将其改为静态
- # 要将配置文件名改为你的
- vi ifcfg-Connectify-me
复制代码 按i进入编辑模式,将BOOTPROTO=dhcp改为BOOTPROTO=static,并在后面添加以下内容
- IPADDR= # ip地址
- NETMASK= # 子网掩码
- GATEWAY= # 网关
- DNS1= # DNS1
- DNS2= # DNS2
复制代码 贴上我的配置供参考
![]()
按ESC进入命令模式,:wq保存退出
可以reboot重启看是否配置成功。
|
至此,全部章节结束,现在可以正式开始你的mc之旅了。
感谢你的阅读。
我会将本次用到的文件以及配置好的服务端上传至网盘,各位有需要自取。
链接
感谢名单及参考资料
更新日志
2.0 2022.10.25 增加了关于mc1.19.2注意事项。 1.3 2022.9.11 增加了几句提示语句,修改了部分语句问题。 1.2 2022.9.04 更改代码框内不合适的地方,修改某些表达问题。 1.1 2022.6.28 更改排版问题,修改了一些表达问题。 1.0 2022.6.27 文章发布。
|
|
评分查看全部评分
|