Open CelestialCosmic opened 2 years ago
自己搭建与朋友们一起玩耍用的泰拉瑞亚服务器
我和我的朋友上线的时间并不是总是重叠,一天在翻看灾厄 mod 的 wiki 时,偶然发现泰拉瑞亚也能自己开服,在朋友的强力推动下,我开始研究服务器的搭建
与 minecraft 开服一样,需要一个服务端。根据 wiki 的指引,在官网的最底下的链接下载到了服务器的文件
首先给文件夹下的二进制文件授权,然后执行文件
chmod +x ./TerrariaServer.bin.x86_64 ./TerrariaServer.bin.x86_64
之后会出现一些创建世界的选项,按自己的需求填就行
完成以后服务器就已经开好了,玩原版的话就已经可以 enjoy 了
(我也没想到会这么简单)
先去下开服的组件,然后在此原服务端的基础上覆盖 tmod 的东西进去
把之前的世界和 mod 导入
mv /home/celestial/Mods /home/celestial/.local/share/Terraria/ModLoader/ mv /home/celestial/Worlds /home/celestial/.local/share/Terraria/ModLoader/
还是给授权
chmod 744 tModLoaderServer chmod 744 tModLoaderServer.bin.x86_64
执行
./tModLoaderServer
启用 mod 和世界后,启动服务
一切都很顺畅,除了......服务端是老版的
原来论坛的不是最新的,github 的才是!
再折腾一次
跑起来了,但是一旦关掉终端大家都完蛋
ネコ的博客用 systemd 提供了一个挺不错的支持方式,我就拿来用了
当然,少不了自己再在源代码的基础上进行三次修改
ネコ博客中代码的来源
world=/root/.local/share/Terraria/ModLoader/Worlds/xxx.wld maxplayers= password= worldpath=/opt/terraria/Worlds
[Unit] Description=tModLoader Server After=network.target local-fs.target [Service] Type=forking User=root ExecStart=/home/celestial/1431tmod2/Linux/terraria.sh start ExecStop=/home/celestial/1431tmod2/Linux/terraria.sh stop [Install] WantedBy=multi-user.target
#!/bin/bash USERNAME='root' SCNAME='terraria' BIN_PATH="/home/celestial/1431tmod2/Linux/" SERVICE='tModLoaderServer.bin.x86_64' CONFIG='/home/celestial/1431tmod2/Linux/serverconfig.txt' start() { ps_out=`ps -ef | grep $SERVICE | grep -v 'grep' | grep -v $0` result=$(echo $ps_out | grep "$1") if [[ "$result" != "" ]] ; then echo "$SERVICE is already running!" exit else echo "Starting $SERVICE..." screen -S $SCNAME -dm $BIN_PATH$SERVICE -config $CONFIG exit fi exit } stop() { ps_out=`ps -ef | grep $SERVICE | grep -v 'grep' | grep -v $0` result=$(echo $ps_out | grep "$1") if [[ "$result" != "" ]] ; then echo "Stopping $SERVICE " screen -p 0 -S $SCNAME -X eval 'stuff "say SERVER SHUTTING DOWN IN 15 SECONDS. "\015' sleep 15 screen -p 0 -S $SCNAME -X eval 'stuff "exit"\015' exit else echo "$SERVICE is not running!" exit fi exit } save() { ps_out=`ps -ef | grep $SERVICE | grep -v 'grep' | grep -v $0` result=$(echo $ps_out | grep "$1") if [[ "$result" != "" ]] ; then 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 else echo "$SERVICE is not running!" exit fi } status() { ps_out=`ps -ef | grep $SERVICE | grep -v 'grep' | grep -v $0` result=$(echo $ps_out | grep "$1") if [[ "$result" != "" ]] ; 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
按照ネコ提供的方式,为terraria.sh提供 744 的权限,然后就可以通过 systemctl 的指令来控制开关了
terraria.sh
systemctl
尽管在我的设备上运行的时候出现了奇怪的问题:使用 systemd 控制会卸载所有模组,而直接使用 shell 文件却不会,但现成的 shell 依旧大大减轻了维护的工作量
我的体验还不错,但似乎朋友的卡顿比较严重(出现了获得重复物品的情况),也不知道是线路的问题还是数据跨境安全网关在搞鬼
但这是一个真正意义的“私服”了
ネコ的博客 ウィキモエ中的文章 fandom wiki tModLoader 的 github 界面 泰拉瑞亚官网 泰拉瑞亚论坛 GUI 开服
ネコ的博客
ウィキモエ中的文章
fandom wiki
tModLoader 的 github 界面
泰拉瑞亚官网
泰拉瑞亚论坛
GUI 开服
自己搭建与朋友们一起玩耍用的泰拉瑞亚服务器
起源
我和我的朋友上线的时间并不是总是重叠,一天在翻看灾厄 mod 的 wiki 时,偶然发现泰拉瑞亚也能自己开服,在朋友的强力推动下,我开始研究服务器的搭建
资料收集
与 minecraft 开服一样,需要一个服务端。根据 wiki 的指引,在官网的最底下的链接下载到了服务器的文件
服务器配置
首先给文件夹下的二进制文件授权,然后执行文件
之后会出现一些创建世界的选项,按自己的需求填就行
完成以后服务器就已经开好了,玩原版的话就已经可以 enjoy 了
(我也没想到会这么简单)
tmodloader
先去下开服的组件,然后在此原服务端的基础上覆盖 tmod 的东西进去
把之前的世界和 mod 导入
还是给授权
执行
启用 mod 和世界后,启动服务
一切都很顺畅,除了......服务端是老版的
原来论坛的不是最新的,github 的才是!
再折腾一次
systemd 服务保活
跑起来了,但是一旦关掉终端大家都完蛋
ネコ的博客用 systemd 提供了一个挺不错的支持方式,我就拿来用了
当然,少不了自己再在源代码的基础上进行三次修改
ネコ博客中代码的来源
serverconfig.txt
terraria.service
terraria.sh
按照ネコ提供的方式,为
terraria.sh
提供 744 的权限,然后就可以通过systemctl
的指令来控制开关了尽管在我的设备上运行的时候出现了奇怪的问题:使用 systemd 控制会卸载所有模组,而直接使用 shell 文件却不会,但现成的 shell 依旧大大减轻了维护的工作量
结尾
我的体验还不错,但似乎朋友的卡顿比较严重(出现了获得重复物品的情况),也不知道是线路的问题还是数据跨境安全网关在搞鬼
但这是一个真正意义的“私服”了
参考依据