Debian/Ubuntu搭建Terraria 1.4.4服务器(支持tModLoader)-泰拉瑞亚论坛-游戏笔记-小怪兽BLOG

Debian/Ubuntu搭建Terraria 1.4.4服务器(支持tModLoader)

简介

泰拉瑞亚 1.4 Linux 服务器搭建, tModLoader (后简称 TML) 1.4 服务器搭建(支持mod)。

选择开服务器,我觉得好处还是很明显的

  1. 可以最大支持16个人在同一地图
  2. 无 steam 开黑的网络延迟烦恼,也没有了局域网限制
  3. 可以长时间挂载游戏,不需要受限于房主
  4. 可以同时开多个地图

环境说明

服务器 :物理机40核心/64GB内存/500GB存储/50Mbps上行/1000Mbps下行(如果要安装 TML 建议服务器 在 2核2G 以上),操作系统 :Ubuntu 20.04.5 LTS (Focal Fossa)

游戏本体:steam上的 Terraria 1.4.4.9 ,TML v2023.8.3.3

泰拉的服务器端是免费的,在 官网 或者 Terraria wiki, TML 在 GitHub 获得最新版,也有封装完整的 docker 镜像供大家使用(这个方法我没有试过)

我这里推荐和使用的是利用 steamcmd 安装的方法,先说一下优点:

  1. 服务器与桌面端版本统一起来方便。
  2. 版本更新方便,steamcmd 有专门的指令更新游戏及其 mod,而别的方法需要重新下载安装。
  3. 1.4 版本后的 TML 支持创意工坊直接导入 mod ,这个在服务器端也生效!!!服务器下载 TML 可以自带订阅的 mod

服务器搭建流程

APT换源

为了节省时间,建议第一步就是换源,推荐清华大学镜像源:清华大学开源软件镜像站 | Tsinghua Open Source Mirror

配置软件源

Ubuntu

sudo add-apt-repository multiverse # 配置"multiverse" 软件源
sudo dpkg --add-architecture i386 # 配置 32 位库
sudo apt install -y software-properties-common # 启用非开源软件配置
sudo apt update -y # 更新软件
# 安装steamcmd, 确认同意非开源协议即可( I Agree )
sudo apt install -y steamcmd libsdl2-dev:i386 lib32gcc1

Debian

注意:在Debian 11中,软件包`lib32gcc-s1`已经取代了旧版中的`lib32gcc1`。同时,`steamcmd`包在Debian的non-free仓库中提供。

SteamCMD 是 32 位程序,需添加多架构支持:

sudo dpkg --add-architecture i386
sudo apt update

安装必要的 32 位兼容库:

sudo apt install lib32gcc-s1 lib32stdc++6 libsdl2-2.0-0:i386

安装SteamCMD:

sudo apt install steamcmd

创建用户steam

这里需要配置专门管理 Steam 服务器的系统账号; 除非很有经验, 否则最好不要默认采用 root 账号管理配置服务。

使用 adduser 命令创建一个名为 steam 的新用户:

sudo adduser steam

系统会提示你输入新用户的密码,并填写一些其他信息(如全名、房间号等)。你可以根据需要填写这些信息,或者直接按 Enter 跳过。

将新用户steam添加到 sudo 组(可选)

如果你希望 steam 用户能够执行需要管理员权限的操作,可以将该用户添加到 sudo 组:

sudo usermod -aG sudo steam

切换到新用户steam

su - steam

链接 SteamCMD 可执行文件

/usr/bin/ln -s /usr/games/steamcmd steamcmd

安装运行SteamCMD

cd ~
steamcmd

这里更新取决于和 Steam 服务器的速度, 完成之后就会进入默认的命令行。

d2b5ca33bd20240916170000

输入login + 你的用户名 然后按提示登录即可(第一次登录会需要令牌)

d2b5ca33bd20240916170040

安装 terraria

# 安装 Terraria(它在steam中的代码是 105600,不会改变)
app_update 105600

下载完成后你应该可以在 /home/steam/.steam/SteamApps/common/Terraria 下面看到 Terraria 文件夹

d2b5ca33bd20240916170721

里面的 TerrariaServer.bin.x86_64 就是服务器运行文件了

# 新建会话
screen -S Tr
./TerrariaServer.bin.x86_64

注意:千万不要运行Terraria.bin.x86_64这个文件,这是客户端,服务器你是要邀请人来玩游戏而不是自己直接玩游戏。

启动教程在后续TMOD教程里,这里不做过多演示。

tModLoader 服务器搭建

这个需要在本体完成的基础上进行

查找游戏在steam中的代码

steam 选中游戏后右键属性即可查看

d2b5ca33bd20240916171054

我们可以看到 TML 的代码是 1281930 我个人版本是 1569199, 所以执行

# app_update <应用ID> [-beta <测试名称>] [-betapassword <密码>] [validate]
app_update 1281930 1569199 validate # 如果发现安装有问题请加 validate

下载完成后,同样进入 TML 文件夹

d2b5ca33bd20240916171520

# 新建会话
screen -S Tr
./start-tModLoaderServer.sh

注意:同理千万不要运行start-tModLoader.sh这个文件,这是客户端。

Dotnet程序下载缓慢

都是微软抠搜造成的,国外服务器就不考虑这个问题,但是国内貌似就移动友好,联通电信看脸,建议自己手动下载文件再上传到服务器上。

(截至文章发布,现目前用的是8.0版本)下载地址:https://dotnetcli.azureedge.net/dotnet/Runtime/8.0.0/dotnet-runtime-8.0.0-linux-x64.tar.gz

请注意:如果服务器是第一次启动,不管你是否已经有dotnet这个文件夹,服务器都会先删除现有的文件夹再新建同名文件夹,你说气不气人,解决办法就是在该tModLoader目录下的tModLoader-Logs文件夹中新建client.logserver.log这两个文件,文件内容空白就行。

上传到服务器tModLoader目录下dotnet文件夹下,没有该目录就自己新建,然后解压

mkdir dotnet # 新建文件夹
tar -xzvf dotnet-runtime-8.0.0-linux-x64.tar.gz # 解压压缩包

d2b5ca33bd20240916173810

steam 的最大优势是下载后 TML 内的 mod 自带,所带的 mod 就是登录的 steam 账号内 TML 订阅的 mod ,如果需要更新 ,请在 steamcmd 中输出一下指令(和安装一样的指令),就可以更新 mod 了。

请注意服务器 mod 与主机端开启的 mod 应当相同。

启动服务器

启动命令:

bash start-tModLoaderServer.sh

Use steam server (y/n): 选择n,这里的意思是是否启动steam,服务器启动这玩意干嘛?直接拒绝。

n               New World
d <number>      Delete World
m               Mods List
  • n:新建世界
  • d <number>:删除世界<number>
  • m:模组列表

输入m查看模组状态,第一次启动,模组是处于禁止状态。

d2b5ca33bd20240916174521

  • e:开启所有mod
  • d:禁止所有mod
  • c:编辑某个模组的配置
  • r:刷新模组状态并返回世界菜单

一定要先确认模组是否开启再创建世界,尤其是一些大型mod,涉及到地图生成的mod如果是后续开启的话,这个世界是不会生成该模组的专属地形包括生物群落,一定要注意!

输入n新建世界

1       Small
2       Medium
3       Large

这里是世界大小,依次是小-中-大

1       I'm Too Young to Mine
2       Bone Me Plenty
3       I Am Cthulhu Incarnate
4       Journey

d2b5ca33bd20240916175904

对应 我还年轻不想挖矿/ 大力上我 / 我是克苏鲁的化身 / 旅途

1       Random
2       Corrupt
3       Crimson

对应 随机 / 腐败 / 猩红

Enter world name:

输入世界名字

Enter Seed (Leave Blank For Random):

输入种子(留空表示随机):秘密世界种子 – 官方中文 Terraria Wiki

稍微等待一段时间,世界就能创造好(取决于你的大型mod安装数量,不建议同时启用多个大型mod,除非那几个作者是好哥们,否则等着炸档吧)。

世界建好之后会回到主菜单。

d2b5ca33bd20240916180658

输入世界对应的数字,我这里是1:

Max players (press enter for 16): 最大玩家数量,这个和你服务器带宽有关

Server port (press enter for 7777): 设置服务器端口,记得设置服务器防火墙允许通过

Automatically forward port? (y/n): 是否开启uPNP自动端口转发,没用,直接按ENTER跳过

Server password (press enter for none): 设置世界密码,不填则不需要密码就能进入世界(小心小人)

泰拉瑞亚服务器只会在每天黎明自动存储世界(每隔 24 分钟)。

如果关闭服务器而未通过控制台发出保存并退出命令(或者如果你是开服并开始游戏),世界可能没有存储最后几分钟的变化。 在箱子之间移动装备并立即关闭服务器,而不明确指定保存并退出命令,可能导致这些物品消失。

确保这个问题消失:始终使用专用服务器,并记住输入“save”/“exit”命令,而不是简单地通过红色 X 按钮关闭控制台窗口。

出现以下界面就表示服务器启动成功

d2b5ca33bd20240916181925

但是关闭终端页面会导致服务器关闭,这个时候就需要我们设置后台运行了。

Screen后台保活

首先查看服务器是否有screen:

screen -v

正常如下:

d2b5ca33bd20240916182416

如果没有提示就是服务器没有安装该软件,输入以下命令安装screen

sudo apt install screen

新建会话

screen -S session_name

session_name 会话名称,自己设置,我这里设置Tr:

screen -S Tr

再输入启动服务器的命令按照上面的步骤设置

bash start-tModLoaderServer.sh

启动完成之后键盘按Ctrl+A+D即可从Screen 会话中分离后,在Screen 会话中运行的程序将继续运行。

重新进入会话:

screen -r session_name

如果想退出会话,直接输入exit即可退出。

模组导入

如果不是从steamcmd安装tmod的话,模组是需要自己上传到服务器上的。

打开本地游戏客户端,进入创意工坊,找到模组整合包,点击左下角将已启用的模组生成为新的整合包

d2b5ca33bd20240916184436

点击导出完整整合包,然后就会弹出文件管理器,进入SaveData文件夹,将里面的ModsModConfigs文件夹一同上传到服务的/home/steam/.local/share/Terraria/tModLoader目录下。

d2b5ca33bd20240916184830

Worlds文件夹是保存世界的。

樱花Frp内网穿透

为什么有公网服务器还需要内网穿透呢?一方面我的物理机是电信单线网络,游戏一般是晚上和朋友玩,但是朋友的网络可能不是电信网络,跨网联机是一件非常痛苦的事情,樱花Frp现在已经很不错了,开个10块钱的青铜会员也有BGP节点,这样自己和朋友的游戏延迟都能得到很大的保证!

官网:Sakura Frp | 樱花内网穿透 — 免费内网穿透_免费端口映射_高速_高防节点_不限流量_Minecraft我的世界_微信开发调试_群辉NAS_无需公网_免备案

不建议使用免费节点,免费晚上高峰期属实是不太好看。

注册登录控制面板之后首先在在页面顶部的菜单栏找到服务——节点状态,查看一下哪个占用率不高:

image

选好自己将要使用的节点,在服务——隧道列表新建:

image

这里有四个地方需要注意:

  1. 泰拉瑞亚是TCP隧道,不是UDP!
  2. 隧道名有限制,记得看提示!
  3. 本地端口要和自己泰拉瑞亚服务器的端口一致,默认7777就可以。
  4. 访问密码一定要设置,以防有些DOG13不停尝试连接服务器导致服务器无响应!

填写无误点击创建就可以了。

回到服务器设置,在官网服务——软件下载,选择【Linux / FreeBSD 启动器】第一个命令,在SSH客户端输入:

sudo bash -c ". <(curl -sSL https://doc.natfrp.com/launcher.sh)"

就可以了。

image

然后会出现IP地址和密码,登录WebUI:

image

image

原本是灰色的,拖上去就会变成绿色已启动的状态。、

回到官网,你会发现隧道列表新建的隧道指示灯会变成绿色,然后在右边端口类型旁边会出现端口,点一下就可以复制,发给你的朋友愉快玩耍吧!

至此服务器搭建完成,由衷希望大家与自己的朋友玩的开心!

结语

晚安,索琳!

请登录后发表评论

    请登录后查看回复内容

专辑封面
正在加载...
请稍候
00:00 / 00:00
播放列表
0 首歌曲
歌词加载中...