特别说明

以下所有操作,对于root、user用户,命令前加sudo均为可选项

环境准备

安装必要的工具:unzipwgetcurltmux

1
2
sudo apt update
sudo apt install -y unzip wget curl tmux

安装 .NET 6.0

特别说明:dotnet-sdk-6.0dotnet-runtime-6.0都可以,但是SDK开发和运行 .NET 程序,而Runtime只运行已编译的 .NET 程序,TShock使用Runtime即可

1
2
3
4
wget https://packages.microsoft.com/config/ubuntu/22.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
sudo apt-get update
sudo apt-get install -y dotnet-runtime-6.0

可选:验证安装是否成功

1
dotnet --version

下载并安装 TShock

1
2
3
4
cd ~
mkdir terraria-server
cd terraria-server
wget https://github.com/Pryaxis/TShock/releases/download/v5.2.4/TShock-5.2.4-for-Terraria-1.4.4.9-linux-amd64-Release.zip

如果服务器下载太慢,可以使用本地网络下载后,将TShock-5.2.4-for-Terraria-1.4.4.9-linux-amd64-Release.zip上传至terraria-server

解压安装包

1
unzip TShock-5.2.4-for-Terraria-1.4.4.9-linux-amd64-Release.zip

如果压缩包里面还是压缩包,继续解压,直到出现TShock.ServerTShock.Installer

在某些版本可能是TShock.Server.dllTShock.Installer

启动 TShock

如果版本较新,以./TShock.Server启动

如果版本较旧,以dotnet TShock.Server.dll启动

生成地图

启动后,根据显控提示,生成地图信息,比如地图大小、难度、玩家个数、端口号等等

打开端口 7777

如果是云服务器,在服务器商的平台,添加安全组,使得0.0.0.0可以通过tcp访问端口号7777即可

如果是个人服务器,进行如下操作

1
2
sudo ufw allow 7777/tcp
sudo ufw reload

挂在后台

当前在游戏显控页面,按Ctrl + C关掉该服务端,然后杀掉进程

1
2
ps aux | grep TShock
sudo kill -9 <PID 进程号>

启动 tmux 会话

1
2
3
4
tmux new -s tshock

cd /root/terraria-server
./TShock.Server

按住Ctrl + B然后松开,再按D

下次想查看控制台时,重新 SSH 登录,然后运行:

1
tmux attach -t tshock

游戏用户管理

当某个游戏用户进入游戏后,在聊天列表输入/register password完成注册

然后,服务器管理员在 tmux 里面操作/user add username password (该操作可能不需要)

最后,再输入/user group username superadmin,那么用户名为username将在游戏里拥有超级管理员的权限