欢迎光临
我们一直在努力

手把手搭建泰拉瑞亚专用服务器,和朋友随时联机

最近又跟朋友回坑泰拉瑞亚(Terraria),一开始用的是游戏自带的"开房间"联机,体验真的很劝退:主机卡一下全房间一起卡,主机一下线大家就玩不了,而且跨网络联机延迟高得离谱,boss 战里人物漂移是家常便饭。

折腾了一晚上之后我决定直接把服务端搬到云服务器上,开个 24 小时在线的专用服务器。效果立竿见影:不管谁在线都能进,延迟稳定,主机也不用一直挂着游戏。整个过程比想象中简单,用 Docker 二十分钟就能搞定,这篇把完整流程记下来,照着抄就行。

一、准备工作

一台云服务器就够了,泰拉瑞亚服务端非常轻量,配置要求可以参考下表:

项目建议
配置 2~4 人玩 1 核 1G 起步,5~8 人建议 2 核 2G
系统 Ubuntu 22.04 LTS
带宽 3M 以上即可,这游戏流量很小
需要放行的端口 7777(游戏连接)

我自己用的是雨云rainyun-com的 2 核 2G 机器,挂一个中型世界五六个人玩很流畅,注册填码:2026off,可领5折,一个月十来块钱。大厂的轻量应用服务器也能跑,优势是节点多、品牌大,缺点是同配置月付要高一些,按自己预算选就行。

二、安装 Docker

服务端我们用社区维护的 ryshe/terraria 镜像(可以去 Docker Hub 搜这个名字看说明),它把泰拉瑞亚服务端和 TShock 打包好了,省得自己装 .NET 运行库和一堆依赖。TShock 是泰拉瑞亚最常用的服务端增强工具,自带权限管理和反作弊,开公开服基本离不开它,这个镜像直接内置了。

之所以用 Docker 而不是手动装服务端,一是环境隔离干净,搞坏了删掉容器重来就行;二是以后游戏更新版本,重新拉个新镜像就完成升级,不用重新折腾环境。

Ubuntu 22.04 自带的软件源里就有 Docker,两条命令装好:

sudo apt update
sudo apt install -y docker.io

启动并设置开机自启,然后验证一下:

sudo systemctl enable –now docker
docker –version

能看到版本号就说明装好了。

三、首次运行:创建世界

先建一个目录专门存世界存档,这样容器删了存档还在:

mkdir -p ~/terraria/world

然后交互式地跑一次容器来生成世界:

docker run -it –rm \\
-p 7777:7777 \\
-v ~/terraria/world:/root/.local/share/Terraria/Worlds \\
ryshe/terraria:latest \\
-world /root/.local/share/Terraria/Worlds/myworld.wld \\
-autocreate 2 \\
-worldname "myworld"

几个参数说明一下:

  • -autocreate 2:自动生成世界,1=小、2=中、3=大。三四个人玩选中型完全够,大世界生成慢、后期也更吃内存
  • -worldname:世界名字
  • -world:世界文件的保存路径,注意这是容器内路径,照抄即可

跑起来之后它会自动生成世界并启动服务,看到类似 Server started 的字样就说明世界建好了。这时候在控制台输入 exit 回车,世界会自动保存并退出容器。去 ~/terraria/world 目录看一眼,能看到 myworld.wld 文件就成功了。

四、后台长期运行

世界建好之后,以后都用这条命令后台启动:

docker run -d \\
–name terraria \\
–restart unless-stopped \\
-p 7777:7777 \\
-v ~/terraria/world:/root/.local/share/Terraria/Worlds \\
-e WORLD_FILENAME=myworld.wld \\
-e TSHOCK_LANGUAGE=zh_CN \\
ryshe/terraria:latest

其中 WORLD_FILENAME 填你上一步创建的世界文件名,–restart unless-stopped 保证服务器重启后服务器端自动拉起。想看服务端日志的话执行 docker logs -f terraria 就行。

五、放行端口,进游戏

服务器本地的防火墙放行 7777:

sudo ufw allow 7777

另外记得去云服务器控制台的安全组里也把 7777 端口放行,这一步漏了的话外面怎么都连不上,是最常见的坑。

然后打开游戏:多人模式 → 通过 IP 加入 → 选角色 → 输入服务器公网 IP → 端口填 7777,就能进来了。

六、进阶:设个密码,限制人数

公开 IP 的服务器建议设个密码,免得被路人误闯进来拆家。TShock 的配置文件 config.json 就在存档目录里(容器启动后会自动生成),编辑 ~/terraria/world/config.json,找到这几项改掉:

{
"ServerPassword": "你和朋友的暗号",
"MaxSlots": 8,
"PvpMode": 0
}

  • ServerPassword:服务器密码,留空就是不设密码
  • MaxSlots:最大在线人数,小团体设 8 足够,人太多低配机器会吃力
  • PvpMode:0 是关闭 PVP,想开红对蓝互殴就改成 1

改完重启容器生效:

docker restart terraria

七、顺手做个备份

世界文件都在 ~/terraria/world 目录下,定期打包备份一下,几秒钟的事:

tar czvf terraria-backup-$(date +%Y%m%d).tar.gz -C ~/terraria world

建议每周备份一次,泰拉瑞亚的世界文件不大,备份几乎不占空间,但真遇到存档损坏的时候你会感谢自己。

常见问题

问:进游戏提示版本不一致? 答:客户端和服务端版本必须完全一致。镜像的 tag 跟着游戏版本走(比如 vanilla-1.4.5.2 这样的命名),如果你的游戏更新了新版本,去 Docker Hub 搜 ryshe/terraria 找到对应版本的 tag,替换掉命令里的 latest,重新 pull 再启动即可。

问:就两三个人玩,开多大配置合适? 答:1 核 1G 跑个小世界足够了,雨云rainyun-com最低配月付就十几块,先开一个月试试水,人多了再升级配置也来得及,配置是可以随时升的。

问:想装插件怎么办? 答:这个镜像自带 TShock,支持插件。在宿主机建个目录放 .dll 插件文件,启动时加一行 -v ~/terraria/plugins:/plugins 挂载进去就行。

问:换服务器了,存档能迁走吗? 答:可以。存档就是 ~/terraria/world 里的 .wld 文件,用 scp 或者打包下载到本地,再上传到新服务器同样的目录,启动命令里的 WORLD_FILENAME 改成对应的文件名即可,进度一点儿不丢。

总结

整套流程就是:装 Docker → 交互式跑一次生成世界 → 后台启动 → 放行端口,熟练的话二十分钟搞定。有了自己的专用服务器,世界 24 小时在线,朋友想什么时候玩就什么时候玩,进度自动保存,也不用再看主机脸色了。

这套方案还有个隐藏好处:同一个服务器以后想换着玩别的游戏,比如饥荒联机版、星露谷物语,照样是 Docker 一条命令的事,一台机器可以物尽其用。如果你的小团体也在被联机体验折磨,真心建议试一下。

赞(0)
未经允许不得转载:171主机测评 » 手把手搭建泰拉瑞亚专用服务器,和朋友随时联机
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址