本站租赁了腾讯云双核4G的轻量应用服务器,该服务器的性能用于这个网站绰绰有余,故在此基础上搭建了MC联机服务器。
本文在此分享一下个人搭建MC服务器的一些经历。
我租赁的服务器系统为ubuntu server 20.04,操作上和常规的linux大同小异。
首先是登陆服务器,可以直接使用腾讯云控制台内的终端,或者通过SSH连接到云服务器。这些在腾讯云官网内均有详细教程,在此不做赘述。
登陆服务器后,需要先下载MC所需要的java运行环境。在终端中输入如下代码即可:
sudo apt install openjdk-8-jre-headless
运行完成后,可以新建一个用户,命名为minecraft,避免MC服务器直接运行在root账户下。
sudo useradd -r -m -U -d /opt/minecraft -s /bin/bash minecraft
接下来需要安装获取mcrcon所需的git软件包。
sudo apt-get install git build-essential
安装完成后,切换到minecraft账户,创建游戏目录,并通过git指令获取github上的mcrcon工具。
sudo su minecraft
mkdir -p ~/{backups,tools,server}
·backups用于存放备份
·tools用于存放mcrcon管理工具
·server则为服务器运行目录
cd ~/tools && git clone https://github.com/Tiiffi/mcrcon.git
cd ~/tools/mcrcon
gcc -std=gnu11 -pedantic -Wall -Wextra -O2 -s -o mcrcon mcrcon.c
该步骤完成后,即下载并编译了mcrcon,若不放心可以用如下代码测试编译结果:
./mcrcon -h
如果编译成功,应该会返回如下内容:
Usage: mcrcon [OPTIONS] [COMMANDS]
Send rcon commands to Minecraft server.
Options:
-H Server address (default: localhost)
-P Port (default: 25575)
-p Rcon password
-t Terminal mode
-s Silent mode
-c Disable colors
-r Output raw packets
-w Wait for specified duration (seconds) between each command (1 - 600s)
-h Print usage
-v Version information
Server address, port and password can be set with following environment variables:
MCRCON_HOST
MCRCON_PORT
MCRCON_PASS
- mcrcon will start in terminal mode if no commands are given
- Command-line options will override environment variables
- Rcon commands with spaces must be enclosed in quotes
Example:
mcrcon -H my.minecraft.server -p password -w 5 "say Server is restarting!" save-all stop
编译成功后,就可以开始下载并配置MC服务器了,本人下载的MC服务器版本为1.16.1,下载地址为:https://launcher.mojang.com/v1/objects/a412fd69db1f81db3f511c1463fd304675244077/server.jar
可以通过wget指令将其下载到刚创建的server文件夹中:
wget https://launcher.mojang.com/v1/objects/a412fd69db1f81db3f511c1463fd304675244077/server.jar -P ~/server
下载完成后,打开server.jar
cd ~/server
java -jar server.jar nogui
初次运行时,它将执行一些操作并创建server.properties和eula.txt文件后停止运行。此时需要打开eula.txt文件,并将false改为true
nano ~/server/eula.txt
更改内容为
eula=true
更改完成后,继续配置server.properties文件
nano ~/server/server.properties
找到以下内容并修改
rcon.password=strong-password # rcon连接密码自行更改设置
enable-rcon=true # 允许rcon连接
op-permission-level=4 # op操作权限为最高,级别为1-4
online-mode=false # 不验证连接Minecraft
配置完成后需要在服务器供应商的防火墙选项中开放25565和25575端口,否则将无法连接到服务器。
![](http://150.158.52.195/wp-content/uploads/2021/12/截屏2021-12-07-19.56.44-1024x453.png)
并执行以下代码
sudo ufw allow 25565/tcp
sudo ufw allow 25575/tcp
到目前为止已经做好了服务器搭建的前期准备工作,接下来即可启动服务器。
创建systemd服务文件:
sudo su
sudo nano /etc/systemd/system/minecraft.service
粘贴以下内容:
[Unit]
Description=Minecraft Server
After=network.target
[Service]
User=minecraft
Nice=1
KillMode=none
SuccessExitStatus=0 1
ProtectHome=true
ProtectSystem=full
PrivateDevices=true
NoNewPrivileges=true
WorkingDirectory=/opt/minecraft/server
ExecStart=/usr/bin/java -Xmx3072M -Xms1024M -jar server.jar nogui
ExecStop=/opt/minecraft/tools/mcrcon/mcrcon -H 127.0.0.1 -P 25575 -p strong-password stop
[Install]
WantedBy=multi-user.target
其中3072M和1024M分别代表MC服务器最大和最小占用内存,可以根据自己服务器配置更改,strong-password则需要改为之前server.properties中自己修改的密码。
重新加载systemed:
sudo systemctl daemon-reload
启动MC服务器:
sudo systemctl start minecraft
查看MC服务器状态:
sudo systemctl status minecraft
如果正确运行,应有如下返回内容:
● minecraft.service - Minecraft Server
Loaded: loaded (/etc/systemd/system/minecraft.service; disabled; vendor preset: enabled)
Active: active (running) since Tue 2021-12-07 17:54:58 CST; 2h 12min ago
Main PID: 31521 (java)
Tasks: 22 (limit: 4612)
Memory: 1.3G
CGroup: /system.slice/minecraft.service
└─31521 /usr/bin/java -Xmx3072M -Xms1024M -jar server.jar nogui
设置MC服务器自启动:
sudo systemctl enable minecraft
如果需要关闭MC服务器,则可通过以下指令实现:
sudo systemctl stop minecraft
同时为了服务器安全,防止被人炸服,备份功能必不可少,可以通过以下步骤配置:
sudo su minecraft
nano ~/tools/backup.sh
粘贴以下内容
#!/bin/bash
function rcon {
/opt/minecraft/tools/mcrcon/mcrcon -H 127.0.0.1 -P 25575 -p strong-password "$1"
}
rcon "save-off"
rcon "save-all"
tar -cvpzf /opt/minecraft/backups/server-$(date +%F_%R).tar.gz /opt/minecraft/server
rcon "save-on"
## Delete older backups
find /opt/minecraft/backups/ -type f -mtime +7 -name '*.gz' -delete
赋予执行权限
chmod +x /opt/minecraft/tools/backup.sh
创建cron作业,每天23:00备份
crontab -e
在打开的文档结尾处粘贴如下内容后保存
0 23 * * * /opt/minecraft/tools/backup.sh
如上设置完成后,MC服务器就会在每天23:00自动备份,同时删除一周前的备份。
测试MC连接
启动MC客户端,在多人游戏中选择添加服务器,在服务器地址栏内输入服务器IP及端口,格式为XXX.XXX.XXX.XXX:25565,然后添加服务器,如果能够成功连接就说明服务器搭建成功。
打开服务器控制台
~/tools/mcrcon/mcrcon -H 127.0.0.1 -P 25575 -p strong-password -t
其中strong-password需要改为上文在server.properties中修改的密码。
回车后即可以进入MC服务器的控制台,这与个人模式下的控制台大同小异,多了一些诸如op、save这类服务器指令,详情可以参看MC wiki
上述就是我个人学习到的ubuntu下搭建MC服务器的方法,希望能对大家有所帮助。