如何在Ubuntu 17.04上设置Minetest服务器

注:本教程在Vultr VPS上测试通过,如需部署请前往Vultr.com

Minetest是流行游戏Minecraft的免费开源替代品。该服务器非常易于设置和运行。

先决条件

运行Ubuntu 17.04的1GB + VPS或专用实例。
wget(与 apt install wget)。
文本编辑器。

步骤1:添加Minetest Stable存储库并安装服务器软件

由于Ubuntu倾向于使用Minetest软件包,因此您将使用稳定的PPA。可以使用以下命令添加它。

# add-apt-repository ppa:minetestdevs/stable
# apt update

之后,您可以安装服务器。

# apt install minetest

步骤2:创建用户,打开端口并测试服务器

出于安全性考虑,最好如图所示在其自己的用户中运行服务。

# useradd -mU minetest

这将创建您的 minetest 具有自己的组和运行服务器的主目录的用户。

测试之前,必须打开端口 30000 在Ubuntu的默认防火墙上,否则您将无法连接。

# ufw allow 30000

现在是测试服务器并查看其是否运行的好时机。

# su minetest
$ minetest --server

如果一切顺利,您将受到以下输出的欢迎:

WARNING[Main]: BanManager: creating /home/minetest/.minetest/worlds/world/ipban.txt
WARNING[Main]: NodeDefManager: Ignoring CONTENT_IGNORE redefinition
WARNING[Main]: /! You are using old player file backend. This backend is deprecated and will be removed in next release /!
WARNING[Main]: Switching to SQLite3 or PostgreSQL is advised, please read https://wiki.minetest.net/Database_backends.
ACTION[Main]:         .__               __                   __   
ACTION[Main]:   _____ |__| ____   _____/  |_  ____   _______/  |_ 
ACTION[Main]:  /     |  |/    _/ __    __/ __  /  ___/   __
ACTION[Main]: |  Y Y    |   |    ___/|  |   ___/ ___   |  |  
ACTION[Main]: |__|_|  /__|___|  /___  >__|  ___  >____  > |__|  
ACTION[Main]:       /        /     /          /     /        
ACTION[Main]: World at [/home/minetest/.minetest/worlds/world]
ACTION[Main]: Server for gameid="minetest" listening on 0.0.0.0:30000.

如果您收到上述有关播放器后端的警告,请不要担心,因为下一步将解决此问题。

使用客户端连接到服务器,以查看是否一切正常。您可以随时通过按以下方式停止服务器 Ctrl+C 在外壳里面的键盘上。

步骤3:配置Minetest服务器

首先,您将要下载示例 minetest.conf 配置文件。

$ cd ~/.minetest
$ wget https://raw.githubusercontent.com/minetest/minetest/master/minetest.conf.example
$ mv minetest.conf.example minetest.conf

该文件包含大量可能的设置供您修改和启用(通过取消注释行),但是目前您需要设置一些重要的设置。

服务器的名称和描述(例如):

server_name = Minetest server
server_description = Welcome to my Minetest Server

服务器的IP地址和所需的端口(例如):

bind_address = 203.0.113.1
port = 30000

如果您设置的端口与默认端口不同 30000 确保您更新了防火墙规则。

#ufw delete allow 30000
#ufw allow 

另一个重要的选择是 name。使用指定值连接到Minetest服务器的任何人都将被授予管理员特权。将此设置为所需的用户名,然后为您的帐户设置密码。

您可能会更早回忆起有关播放器后端的警告,因此必须淘汰使用旧后端,如果尚未使用,则必须切换到SQLite3。如果在步骤2中测试服务器时未收到此消息,则可以直接进行步骤4。

$ minetest --server --migrate-players sqlite3 --world ~/.minetest/worlds/world

之后,您应该会看到类似以下消息的内容。

ACTION[Main]: Successfully migrated 1 players
ACTION[Main]: world.mt updated

步骤4:在启动时运行服务器

为了在引导时运行服务器,需要systemd服务文件。幸运的是,这些创建起来非常简单。

退出回到您的root shell,然后将以下内容添加到 /etc/systemd/system/minetest.service

[Unit]
Description=Minetest Server
After=network.target

[Service]
Type=simple
User=minetest
Group=minetest
WorkingDirectory=/home/minetest
ExecStart=/usr/bin/minetest --server
Restart=on-abort

[Install]
WantedBy=multi-user.target

从现在开始,可以通过以下方式启动Minetest服务器 systemctl (并且在重启或Minetest服务器崩溃后会自动这样做)

# systemctl enable minetest.service
# systemctl start minetest.service

同样,您可以通过替换以上命令中的“启动”来检查状态或停止/重新启动Minetest服务器。

结论

您的Minetest服务器应处于活动状态且可用。如果您在连接时遇到任何问题,请确认您的端口已打开,并且在中正确指定了IP地址 minetest.conf。有关管理播放器权限和各种服务器命令的信息,请参见 Minetest维基

注:本教程在Vultr VPS上测试通过,如需部署请前往Vultr.com