手把手搭建泰拉瑞亚专用服务器,和朋友随时联机
最近又跟朋友回坑泰拉瑞亚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两条命令装好sudoaptupdatesudoaptinstall-ydocker.io启动并设置开机自启然后验证一下sudosystemctlenable--nowdockerdocker--version能看到版本号就说明装好了。三、首次运行创建世界先建一个目录专门存世界存档这样容器删了存档还在mkdir-p~/terraria/world然后交互式地跑一次容器来生成世界dockerrun-it--rm\-p7777:7777\-v~/terraria/world:/root/.local/share/Terraria/Worlds\ryshe/terraria:latest\-world/root/.local/share/Terraria/Worlds/myworld.wld\-autocreate2\-worldnamemyworld几个参数说明一下-autocreate 2自动生成世界1小、2中、3大。三四个人玩选中型完全够大世界生成慢、后期也更吃内存-worldname世界名字-world世界文件的保存路径注意这是容器内路径照抄即可跑起来之后它会自动生成世界并启动服务看到类似Server started的字样就说明世界建好了。这时候在控制台输入exit回车世界会自动保存并退出容器。去~/terraria/world目录看一眼能看到myworld.wld文件就成功了。四、后台长期运行世界建好之后以后都用这条命令后台启动dockerrun-d\--nameterraria\--restartunless-stopped\-p7777:7777\-v~/terraria/world:/root/.local/share/Terraria/Worlds\-eWORLD_FILENAMEmyworld.wld\-eTSHOCK_LANGUAGEzh_CN\ryshe/terraria:latest其中WORLD_FILENAME填你上一步创建的世界文件名--restart unless-stopped保证服务器重启后服务器端自动拉起。想看服务端日志的话执行docker logs -f terraria就行。五、放行端口进游戏服务器本地的防火墙放行 7777sudoufw allow7777另外记得去云服务器控制台的安全组里也把 7777 端口放行这一步漏了的话外面怎么都连不上是最常见的坑。然后打开游戏多人模式 → 通过 IP 加入 → 选角色 → 输入服务器公网 IP → 端口填 7777就能进来了。六、进阶设个密码限制人数公开 IP 的服务器建议设个密码免得被路人误闯进来拆家。TShock 的配置文件config.json就在存档目录里容器启动后会自动生成编辑~/terraria/world/config.json找到这几项改掉{ServerPassword:你和朋友的暗号,MaxSlots:8,PvpMode:0}ServerPassword服务器密码留空就是不设密码MaxSlots最大在线人数小团体设 8 足够人太多低配机器会吃力PvpMode0 是关闭 PVP想开红对蓝互殴就改成 1改完重启容器生效dockerrestart terraria七、顺手做个备份世界文件都在~/terraria/world目录下定期打包备份一下几秒钟的事tarczvf 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 一条命令的事一台机器可以物尽其用。如果你的小团体也在被联机体验折磨真心建议试一下。