选择服务器
我选的是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
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
新建脚本文件
cd /opt/terraria
nano terra_script.sh
在打开的nano窗口输入
#!/bin/bash
USERNAME='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 ] ; then
echo "Please run the $USERNAME user."
exit
fi
start() {
if pgrep -u $USERNAME -f $SERVICE > /dev/null ; then
echo "$SERVICE is already running!"
exit
fi
echo "Starting $SERVICE..."
screen -AmdS $SCNAME $BIN_PATH$SERVICE -config $CONFIG
exit
}
stop() {
if pgrep -u $USERNAME -f $SERVICE > /dev/null ; then
echo "Stopping $SERVICE "
else
echo "$SERVICE is not running!"
exit
fi
screen -p 0 -S $SCNAME -X eval 'stuff "say SERVER SHUTTING DOWN IN 10 SECONDS. "\015'
sleep 10
screen -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 ; then
echo "$SERVICE is already running!"
exit
else
echo "$SERVICE is not running!"
exit
fi
}
case "$1" in
start)
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
如果重启后服务器可以连得上就说明自启动成功了
安装所需服务
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,就变成五分钟保存一次了,重启的时间也可以自己定义
下载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服只需要把上述的两个修改回最初的设置就可以。