Linux/CentOS7搭建泰拉瑞亚原版/mod服务器教程

1.准备服务器/配置swap

选择服务器
我选的是TX云学生服务器,一个月十块钱的,系统选择centOS7.6,64位。安装系统时设置的root密码就是之后远程访问的密码

Windows用PuTTy/macOS用自带的终端连接服务器

ssh root@你的ip

在输入密码的时候是没有显示的,正常输入完点回车就行

检查swap是否够1G,如果够则跳到搭建服务器步骤

free -m

删除原始swap分区

swapoff -a

新增swap分区

dd if=/dev/zero of=/root/swapfile bs=1M count=1024

格式化新分区

mkswap /root/swapfile

设置分区

swapon /root/swapfile

设置开机自启

nano /etc/fstab

在打开的nano窗口最下面添加

/root/swapfile swap swap defaults 0 0

重启

reboot

2.搭建游戏服务器

root用户登陆

su root

安装需要的软件

yum install wget -y
yum install screen -y
yum install unzip -y

开放防火墙

firewall-cmd --permanent --add-port=7777/tcp
firewall-cmd --reload

建立游戏文件夹

cd /opt/
mkdir terraria
mkdir terraria/{bin,downloads}

下载服务端,版本1353

cd /opt/terraria/downloads
wget http://terraria.org/server/terraria-server-1353.zip

解压

unzip terraria-server-1353.zip -d /opt/terraria/bin

设定服务器设置

cd /opt/terraria/bin/1353/Windows
cp -p serverconfig.txt /opt/terraria/
cd /opt/terraria/
nano serverconfig.txt

在打开的nano页面最下面写入

world=/opt/terraria/Worlds/世界的名字.wld
autocreate=2
worldname=世界的名字
difficulty=0
maxplayers=4
password=设定一个密码
worldpath=/opt/terraria/Worlds

名字和密码自定

启动服务器

cd /opt/terraria/bin/1353/Linux
chmod 744 TerrariaServer.bin.x86_64
./TerrariaServer.bin.x86_64 -config /opt/terraria/serverconfig.txt

初次运行需要时间,请耐心等待,在运行成功后的冒号后输入

exit

退出服务器后重新编辑配置文件保证自动化运行

cd /opt/terraria
cp -p serverconfig.txt serverconfig.txt_yyyymmdd
nano serverconfig.txt

在打开的nano窗口中找到autocreate,worldname,difficult,在这三项前添加#改为

#autocreate=2
#worldname=Terraria
#difficulty=1

3.制作自动启动脚本

新建脚本文件

cd /opt/terraria
nano terra_script.sh

在打开的nano窗口输入

#!/bin/bashUSERNAME='root'
SCNAME='root'
TERA_VER='1353'
BIN_PATH="/opt/terraria/bin/$TERA_VER/Linux/"
SERVICE='TerrariaServer.bin.x86_64'
CONFIG='/opt/terraria/serverconfig.txt'ME=`whoami`if [ $ME != $USERNAME ] ; thenecho "Please run the $USERNAME user."exit
fistart() {if pgrep -u $USERNAME -f $SERVICE > /dev/null ; thenecho "$SERVICE is already running!"exitfiecho "Starting $SERVICE..."screen -AmdS $SCNAME $BIN_PATH$SERVICE -config $CONFIGexit
}stop() {if pgrep -u $USERNAME -f $SERVICE > /dev/null ; thenecho "Stopping $SERVICE "elseecho "$SERVICE is not running!"exitfiscreen -p 0 -S $SCNAME -X eval 'stuff "say SERVER SHUTTING DOWN IN 10 SECONDS. "\015'sleep 10screen -p 0 -S $SCNAME -X eval 'stuff "exit"\015'exit
}save() {echo 'World data saving...'screen -p 0 -S $SCNAME -X eval 'stuff "say World saveing..."\015'screen -p 0 -S $SCNAME -X eval 'stuff "save"\015'exit
}status() {if pgrep -u $USERNAME -f $SERVICE > /dev/null ; thenecho "$SERVICE is already running!"exitelseecho "$SERVICE is not running!"exitfi
}case "$1" instart)start;;stop)stop;;save)save;;status)status;;*)echo  $"Usage: $0 {start|stop|status|save}"
esac

这样就分别有了「启动」「关闭」「保存」「重启」了,分别对应

服务器启动 /opt/terraria/terra_script.sh start
服务器停止 /opt/terraria/terra_script.sh stop
服务器重启 /opt/terraria/terra_script.sh restart
确认状态/opt/terraria/terra_script.sh status
保存世界存档 /opt/terraria/terra_script.sh save

启动服务器测试一下脚本是否正常

chmod 744 terra_script.sh
sh -x ./terra_script.sh start

用screen检查是否正常启动

screen -ls

如果出现1 socket in /var/run/screen/S-root/说明成功

如果这时候想进入服务器后台只需要输入

screen -r

就会跳转到服务器后台

设置脚本自动启动

cd /etc/systemd/system
nano terraria.service

在打开的nano窗口输入

[Unit]
Description=Terraria Server
After=network.target local-fs.target[Service]
Type=forking
User=root
ExecStart=/opt/terraria/terra_script.sh start
ExecStop=/opt/terraria/terra_script.sh stop[Install]
WantedBy=multi-user.target

保存退出后输入

systemctl enable terraria

重启

reboot

如果重启后服务器可以连得上就说明自启动成功了

4.设置自动保存等定时任务

安装所需服务

yum install crontabs -y
systemctl enable crond
systemctl start crond

编辑定时任务

nano /etc/crontab

在打开的nano窗口最下面添加

*/10 * * * * root /opt/terraria/terra_script.sh save
0 5 * * * root /opt/terraria/terra_script.sh save
1 5 * * * root reboot

这代表十分钟保存一次,每天凌晨5点保存服务器,5点01分重启服务器。可以将*/10改为*/5,就变成五分钟保存一次了,重启的时间也可以自己定义

5.安装mod

下载tModLoader

cd /opt/terraria/downloads
wget https://github.com/tModLoader/tModLoader/releases/download/v0.11.6.2/tModLoader.Linux.v0.11.6.2.tar.gz

解压到服务器目录

tar -zxvf tModLoader.Linux.v0.11.6.2.tar.gz -C /opt/terraria/bin/1353/Linux

运行tml

cd /opt/terraria/bin/Linux
./tModLoaderServer

随便新建一个世界,接下来一路默认,成功之后输入exit关闭服务器

如果没安装java的话进行以下步骤,安装过请跳过

yum list java*
yum list java-1.8*
yum install java-1.8.0-openjdk* -y

不出意外的话在/opt/terraria/bin/1353/Linux文件夹下已经有一个文件叫tModLoaderServer.bin.x86_64,可以输入

cd /opt/terraria/bin/1353/Linux
ls

进行查看,如果没有的话运行

java -jar tModLoaderInstaller.jar

放入mod及替换世界
使用winscp(windows)或FileZilla(macOS)访问服务器,用户root端口号22
进入路径/root/.local/share/Terraria/ModLoader的文件夹,把要装的mod放进Mods文件夹,要玩的世界改名为“世界的名字”.wld放入Worlds文件夹,将Worlds文件夹内部的其他世界文件删除
(如果重开档可跳过倒入存档步骤。)

修改config文件和自动启动脚本

cd /opt/terraria
nano serverconfig.txt

在打开的nano窗口中,修改"world=/opt/terraria/Worlds/世界的名字.wld"为"world=//root/.local/share/Terraria/ModLoader/Worlds/世界的名字.wld",保存退出nano,接下来修改脚本配置

nano terra_script.sh

在打开的nano窗口中,修改SERVICE='TerrariaServer.bin.x86_64’为SERVICE=‘tModLoaderServer.bin.x86_64’,保存退出nano

重启

reboot

不出意外的话mod服就成功启动了,如果想回到非mod服只需要把上述的两个修改回最初的设置就可以。

Published by

风君子

独自遨游何稽首 揭天掀地慰生平