自己的服务器搭建时间也有一年了,在此记录一下搭建的过程,以防之后忘记。
- 操作系统:Ubuntu 16.04 LTS
- Minecraft版本:1.16.5
- Java版本1.8
1.17以上mc需要java17及以上版本,部分1.13-1.16插件对于java也有特殊要求,请自行确定安装版本
安装java
由于Minecraft高版本特有的渣优化,渣机建议使用openj9的JVM,能降低内存的占用,但兼容性和稳定性可能会存在一定的问题
如果服务器质量较好,则建议选择hotspot的JVM,能提供更加稳定的服务
hotspot版本
由于openjdk默认使用hotspot,所以直接进行安装即可
1 | sudo apt install openjdk-8-jdk |
openj9版本
可以去IBM Semeru Runtime官网下载符合对应机器和系统的jre或jdk
https://developer.ibm.com/languages/java/semeru-runtimes/downloads/
如果下载速度较慢,可以选择清华镜像进行下载
https://mirrors.tuna.tsinghua.edu.cn/github-release/ibmruntimes/
本人下载的版本为
https://mirrors.tuna.tsinghua.edu.cn/github-release/ibmruntimes/semeru8-binaries/LatestRelease/ibm-semeru-open-jre_x64_linux_8u332b09_openj9-0.32.0.tar.gz
下载到的tar包解压后放入服务器任意位置,并记住bin文件夹下java对应的路径
本人的java文件路径为/var/jre/jdk8u332-b09-jre/bin/java
运行以下命令进行软连接,注意最后的路径为java文件的路径
1 | sudo update-alternatives --install /usr/bin/java java /var/jre/jdk8u332-b09-jre/bin/java 200 |
运行成功提示
1 | update-alternatives: using /var/jre/jdk8u332-b09-jre/bin/java to provide /usr/bin/java (java) in auto mode |
运行以下命令测试java是否成功安装
1 | java -version |
如果出现了以下报错
1 | root@Ubuntu:~# java -version |
此时说明解压后的文件没有运行权限,为文件增加权限
1 | sudo chmod 755 -R /var/jre/jdk8u332-b09-jre |
再次运行,如果出现了java版本则说明安装成功
1 | root@Ubuntu:~# java -version |
安装git
运行如下命令
1 | sudo apt-get update |
如果出现了git版本则说明安装成功
1 | root@Ubuntu:~# git --version |
构建spigot
由于log4j的漏洞存在,所以非常不建议使用2021-12月以前构建出的spigot服务器jar包
进入spigot官网下载BuildTools.jar
https://hub.spigotmc.org/jenkins/job/BuildTools/
运行如下代码进行构建
1 | java -jar BuildTools.jar --rev 1.16.5 |
如果卡在如下环节,可以将手动进入该网站下载server.jar,重命名为minecraft_server.[对应版本号].jar后放在work文件夹下,并重新构建
1 | Starting download of https://launcher.mojang.com/v1/objects/1b557e7b033b583cd9f66746b7a9ab1ec1673ced/server.jar |
如果一切顺利,则构建成功后会显示如下信息,此时除了spigot-[对应版本号].jar外其他文件均可删除
1 | [INFO] ------------------------------------------------------------------------ |
服务器初始化
在jar包同级目录下新建start.sh文件,在文件内输入
1 | java -Xmx[堆最大大小] -Xms[堆初始大小] -jar [构建出的jar包名字] nogui |
关于启动参数的配置这里不再赘述,请根据自己的配置自行调节
为该文件增加权限后运行该文件
1 | sudo chmod +x start.sh |
第一次运行会显示如下错误
1 | [13:06:00] [main/ERROR]: Failed to load properties from file: server.properties |
此时可以发现同级目录下新增了许多文件。将eula.txt文件中最后一句eula=false修改为eula=true,并重新运行该文件
1 | ./start.sh |
等待地图生成完毕,如果出现以下信息,则说明开服成功
1 | [13:08:43] [Server thread/INFO]: Done (91.480s)! For help, type "help" |
如果出现了以下警告信息
1 | [13:08:48] [Server thread/WARN]: Can't keep up! Is the server overloaded? Running 5097ms or 101 ticks behind |
则说明了服务器配置较差,开服初期tps较低,待地图加载完毕后tps将会恢复正常
安装screen
若使用ssh远程连接服务器,则在关闭连接后服务器也会自动关闭,此时需要screen让服务器能在后台持续运行
运行如下命令安装screen
1 | sudo apt install screen |
创建一个screen
1 | screen -S [screen的名字] |
在screen内部和之前一样运行sh文件进行开服,唯一不同的是当关闭连接后服务器将仍然在后台运行
重新进入该screen
1 | screen -r [screen的名字] |
后续的配置
bukkit.yml和spigot.yml多用于服务器调优,这里不再赘述
server.properties中几个重要的配置:
- gamemode 游戏模式
- difficulty 游戏难度
- pvp 是否允许pvp
- max-player 最大玩家数量
- server-port 服务器端口
- 如果是私服,不建议使用默认25565端口,防止有陌生人扫IP进入服务器
- view-distance 服务器视距
- 过大会造成玩家进入和重生时的卡顿,如果服务器带宽不足建议调整为6或者更低
- online-mode 正版验证
- 建议开启
- motd 服务器简介