最近在腾讯云上买了一台服务器,不知道该干啥用,配置了一个Minecraft服务器,喜欢我的世界的小伙伴们一起来玩耍啊
原文参考 Setting up a Minecraft server using Systemd
1. 准备
1.1 准备一台centos 7.X的服务器
1.2 配置入站规则
1.3 配置环境
# 升级系统
root# yum -y update
显示类似如下内容,说明安装成功
openjdk version "1.8.0_181"
OpenJDK Runtime Environment (build 1.8.0_181-b13)
OpenJDK 64-Bit Server VM (build 25.181-b13, mixed mode)
2. 创建用户
为minecraft创建独立的用户环境
"/var/minecraft" -s
这个用户的主目录在/var/minecraft,不用设置密码,所以也就不能通过minecraft用户登录
{backup/server,build/spigot,build/mcrcon,server
主目录下有三个文件夹
- build: 生产环境,下载编译都在这里
- backup: 生成好的文件会备份在这里
- server: 服务器所在文件夹
3. 创建脚本
#!/bin/env bash
# Download
wget https://hub.spigotmc.org/jenkins/job/BuildTools/lastSuccessfulBuild/artifact/target/BuildTools.jar -O BuildTools.jar &> lastdl.log && echo "Download Successful"
# Build
# use --rev version to overwrite latest with given argument else use latest
java -Xmx1024M -jar BuildTools.jar --rev ${1:-latest} &> lastbuild.log && echo "Build Successful"
# Backup
mv ../../server/spigot.jar ../../backup/server/`date +"%Y-%m-%H-spigot.jar"` && echo "Backup Successful"
# Install
mv spigot-1.*.jar ../../server/spigot.jar && echo "Install Successful"
将以上内容粘贴到/var/minecraft/build/spigot/update.sh
修改文件权限
root# chmod +x /var/minecraft/build/spigot/update.sh
root# chown minecraft.minecraft -R /var/minecraft/
4. 更新脚本
cd ~/build/spigot
minecraft> ./update.sh
这一步需要一些时间,主要依赖于github网站的连接速度,如果出错,可能是运行内存过少,需要自行查看日志lastbuild.log进行查看。也可将update.sh中的脚本在命令行中直接执行。
可以多运行几次尝试,成功运行会生成/var/minecraft/server/spigot.jar
尝试运行minecraft(注意会在当前文件夹生成游戏文件,当心造成混乱)
minecraft> cd ~/server
minecraft> java -jar spigot.jar
如果服务器内存过小,可能会报错,需要添加类似-Xmx512M限定内存使用
运行成功会在/var/minecraft/server/生成如下文件
5. 下载编译mcrcon
mcrcon可以连接到minecraft上运行一些简单的操作,具体怎么用没研究,可以参考原文
root# su minecraft
minecraft> cd ~/build/mcrcon
minecraft> git clone git://git.code.sf.net/p/mcrcon/code mcrcon-code
minecraft> cd mcrcon-code
minecraft> gcc mcrcon.c -o mcrcon
minecraft> cp mcrcon ~/
如果服务器已启动,可以通过如下方式连接
minecraft> ./mcrcon -H localhost -P $port -p $password -t
$port、$password两个参数在service.properties中设置
rcon.port=$port
rcon.password=$password
enable-rcon=true
另外,还需要设置eula.txt
eula=true
设置service.properties (避免正版验证)
online-mode=false
6. 配置服务
[Unit]
Description=Minecraft Server
Documentation=
Wants=network.target
After=network.target
[Service]
User=minecraft
Group=minecraft
Nice=5
EnvironmentFile=-/var/minecraft/unit.conf
KillMode=none
SuccessExitStatus=0 1
ProtectHome=true
ProtectSystem=full
PrivateDevices=true
NoNewPrivileges=true
PrivateTmp=true
InaccessibleDirectories=/root /sys /srv -/opt /media -/lost+found
ReadWriteDirectories=/var/minecraft/server
WorkingDirectory=/var/minecraft/server
ExecStart=/usr/bin/java -Xmx1024M -Xms1024M -jar spigot.jar --noconsole
ExecStop=/var/minecraft/mcrcon -H localhost -P $port -p $password stop
[Install]
WantedBy=multi-user.target
将以上内容粘贴到/etc/systemd/system/minecraft.service
启动服务
root# systemctl daemon-reload
root# service minecraft start
使用service minecraft status可以查看运行状态,如果有错误,可以到/var/minecraft/server/logs/latest.log查看
7. 升级
root# su minecraft
minecraft> cd ~/build/spigot/
minecraft> ./update.sh
Download Successful
Build Successful
Backup Successful
Install Successful
minecraft> exit
root# systemctl restart minecraft
8. 联机
只要登入minecraft输入你的主机公网ip,就可以联机了
无需正版账号,网上找找minecraft启动器安装就行,注意minecraft的版本,推荐几个启动器
Hello Minecraft! Launcher - 受欢迎的 Minecraft 启动器
BakaXL
java下载地址
9. 拓展
如果主机的配置比我好,建议使用docker
https://hub.docker.com/r/itzg/minecraft-server
里面有详细的使用命令
支持各种类型 minecraft-server
- Spigot
- PaperSpigot
- SpongeVanilla
- Fabric