属于大家的
VPS知识分享站

泰拉瑞亚服务器搭建教程:1.4.5.6、Linux、端口与存档

泰拉瑞亚服务器搭建并不复杂:下载官方专用服务端、准备一个.wld世界文件、开放TCP 7777,再把进程交给systemd。但真正容易出问题的是版本错配、把7777开成UDP、更新前没有停服备份,以及只看“进程存在”却没确认原世界能再次打开。

本文在2026年8月3日获取并核验官方terraria-server-1456.zip,用包内1.4.5.6 macOS服务端创建最小世界、验证TCP 7777、保存退出并重新加载同一世界。本轮没有Terraria客户端、没有公网或萤光云VPS,也没有在原生Linux运行;Linux命令来自官方包和Official Terraria Wiki,不会冒充Linux实测。

结论先看

  • 当前官方专用服务器包:1.4.5.6;
  • 默认端口:TCP 7777;
  • 小型原版朋友服可以从2核4GB、40GB SSD测试;
  • 世界核心文件是.wld,但配置、封禁列表和滚动备份也应成套保存;
  • 原版服务端与tModLoader是两条版本链,不能把原版测试结论直接套给模组服;
  • 文章中的玩家数和配置只是采购起点,最终以目标世界与真实客户端峰值为准。

原版服还是tModLoader服

需求 选择
朋友一起玩官方原版内容 官方TerrariaServer
使用tModLoader Workshop模组 tModLoader专用服务端
保留旧模组世界 先固定tModLoader与模组版本,副本升级
只需要地图插件或管理功能 先确认工具是否修改服务端和存档,不要混装

原版客户端加入原版服务端时要保持版本一致。tModLoader还多了加载器版本、模组版本和依赖顺序。正在运营旧模组世界时,不要为了“追最新版”一次性升级所有组件。

配置起点怎么选

Terraria服务端相对轻量,但世界生成、Boss战、探索、实体和模组会改变负载。

场景 建议测试起点 重点观察
2–4人原版小世界 2核4GB、40GB SSD 世界生成CPU、峰值内存、7777网络
5–10人长期原版 4核8GB、60GB SSD Boss战、地图增长、备份时间
tModLoader模组服 4核8GB起,按模组加余量 加载器版本、模组内存、更新回退

这不是固定承载表。本轮只在0名玩家的最小世界测试,不能外推多人或模组服。地域仍应靠玩家测试IP决定:让主要玩家在候选节点做延迟、抖动和丢包测试。

购买前把玩家地域、人数、原版或tModLoader、世界大小、模组清单和备份周期列出来,再到萤光云VPS产品页确认实时地域、Linux镜像、配置、价格和库存。

服务器结构与本轮证据

Terraria玩家通过TCP 7777连接官方服务端并保存世界文件和配置的架构

本轮官方包证据:

  • ZIP:45,635,619字节;
  • SHA-256:d75c455ac217fd3434448c8f8251c1347f0875a85c438589dc71b557777e9155
  • 控制台版本:Terraria Server v1.4.5.6
  • 首次与重开均报告Listening on port 7777Server started
  • 世界文件:3,023,306字节;
  • 第二次启动从原世界执行Loading world data: 100%
  • 两次正常退出码均为0。

TCP探针连接会在服务端日志显示一个来源正在连接,但没有完成Terraria客户端握手,所以不能写成“玩家已进服”。

Linux部署步骤

以下以Ubuntu 22.04 x86_64为例。官方包内Linux二进制是x86_64,购买ARM实例前要先确认架构兼容。

1. 创建普通用户和目录

sudo adduser --system --home /srv/terraria --group terraria
sudo install -d -o terraria -g terraria \
  /opt/terraria/releases /srv/terraria/worlds /srv/terraria/backups

2. 下载当前官方包

Official Terraria Wiki当前示例为:

cd /tmp
wget https://terraria.org/api/download/pc-dedicated-server/terraria-server-1456.zip
sha256sum terraria-server-1456.zip
unzip -t terraria-server-1456.zip

如果官方Wiki已经指向新文件,不要继续下载1456。记录实际URL、Last-Modified、字节数和SHA-256。

3. 解压Linux服务端

sudo -u terraria mkdir -p /opt/terraria/releases/1456
sudo -u terraria unzip terraria-server-1456.zip '1456/Linux/*' -d /tmp/terraria-unpack
sudo -u terraria cp -a /tmp/terraria-unpack/1456/Linux/. /opt/terraria/releases/1456/
sudo chmod +x /opt/terraria/releases/1456/TerrariaServer \
  /opt/terraria/releases/1456/TerrariaServer.bin.x86_64
sudo ln -sfn /opt/terraria/releases/1456 /opt/terraria/current

不要把新版本覆盖到唯一旧目录。保留旧程序和更新前世界副本,才有回退条件。

4. 创建serverconfig.txt

world=/srv/terraria/worlds/community.wld
autocreate=1
seed=your-world-seed
worldname=Community World
difficulty=0
maxplayers=8
port=7777
password=CHANGE_ME
motd=Welcome to the server
worldrollbackstokeep=3
secure=1
language=zh-Hans
upnp=0
priority=3

字段说明:

  • autocreate=1创建小世界,2为中世界,3为大世界;已有世界时直接指定world
  • difficulty=0/1/2/3分别是经典、专家、大师、旅行。
  • maxplayers是连接上限,不等于服务器一定能稳定承载该值。
  • 云服务器不需要UPnP,设为0并通过安全组显式放行。
  • 密码不要写入公开仓库;脚本中的CHANGE_ME必须在上线前替换。

5. 首次启动

cd /opt/terraria/current
sudo -u terraria ./TerrariaServer -config /srv/terraria/serverconfig.txt

就绪至少检查:

Terraria Server v1.4.5.6
Listening on port 7777
Server started

并在服务器上检查:

ss -lntp | grep 7777

注意是TCP监听,不是UDP。

systemd常驻运行

创建/etc/systemd/system/terraria.service

[Unit]
Description=Terraria Dedicated Server
Wants=network-online.target
After=network-online.target

[Service]
Type=simple
User=terraria
Group=terraria
WorkingDirectory=/opt/terraria/current
ExecStart=/opt/terraria/current/TerrariaServer -config /srv/terraria/serverconfig.txt
Restart=on-failure
RestartSec=10
NoNewPrivileges=true
PrivateTmp=true
LimitNOFILE=65535

[Install]
WantedBy=multi-user.target

然后:

sudo systemctl daemon-reload
sudo systemctl enable --now terraria
sudo systemctl status terraria --no-pager
sudo journalctl -u terraria -n 100 --no-pager

直接用systemd发送交互式save并不方便。正式环境应选择能安全发送控制台命令的管理方式,或在维护窗口通过服务端正常退出。不要用kill -9作为日常停服方法。

安全组和防火墙

只开放:

  • TCP 7777:Terraria游戏端口;
  • TCP 22:仅管理员固定来源IP;
  • 监控或面板端口:确实启用时限制来源,不对全球开放。

UFW:

sudo ufw allow 7777/tcp
sudo ufw reload
sudo ufw status numbered

公网测试必须从服务器外执行。服务器本机连127.0.0.1只能证明进程监听,不能证明云安全组或运营商网络可达。

如何判断真的启动成功

至少分四层:

  1. 进程存在;
  2. 日志显示精确版本与Server started
  3. TCP 7777从预期网络可达;
  4. 同版本Terraria客户端加入,创建角色并进行一次世界操作。

本轮只通过前3层的本机路径,没有第4层。

泰拉瑞亚1.4.5.6世界创建、TCP 7777监听、保存和重开的G006最小实测证据

世界备份和恢复

世界核心文件是:

/srv/terraria/worlds/community.wld
/srv/terraria/worlds/community.wld.bak(若生成)

还应保存:

serverconfig.txt
banlist.txt
当前服务端版本、ZIP SHA-256
tModLoader与模组清单(如果是模组服)

正确备份顺序:

通知玩家 → 服务端save → 正常exit → 确认进程退出
→ 归档世界与配置 → 生成文件清单 → 上传服务器外存储

恢复不是“文件能解压”。应把备份放进全新目录或新服务器,启动并观察是否执行Loading world data,再让客户端进入确认原世界标记。

本轮只完成同一机器同一世界的重开,没有把归档恢复到异机,因此文章不会写“异机恢复已通过”。

更新与回退

  1. 查询官方Wiki当前服务端包;
  2. 记录生产版本、世界和配置;
  3. saveexit并确认停服;
  4. 备份到服务器外;
  5. 新版本解压到新的release目录;
  6. 用世界副本启动;
  7. 用同版本客户端进服,测试世界、Boss/事件和保存;
  8. 通过后切换current,失败时恢复旧程序与旧世界组合。

tModLoader服还要固定加载器和全部模组版本。不要在唯一世界上同时更新游戏、加载器和十几个模组。

常见故障

客户端一直Found Server但连不上

检查服务端与客户端版本、TCP 7777、安全组、UFW和公网NAT。不要只看控制台Server started

服务端启动后立即退出

检查世界路径写权限、配置文件路径、x86_64架构和包是否完整。用:

file TerrariaServer.bin.x86_64
id terraria
namei -l /srv/terraria/worlds/community.wld
journalctl -u terraria -n 200 --no-pager

更新后提示版本不一致

确保服务端和所有客户端已到同一正式版本;tModLoader玩家还要核对加载器和模组。

重启后世界丢失

常见原因是world路径写错、运行用户无权限、启动了新世界或停服前未保存。先停止新世界写入,保留现场,再从备份副本排查。

内存没有满但仍卡

看单核CPU、世界生成、Boss事件、磁盘I/O和网络抖动。平均CPU低不代表主线程没有瞬时打满。

FAQ

泰拉瑞亚服务器默认端口是什么?

TCP 7777。云安全组与主机防火墙都要按TCP放行。

1.4.5.6是永远的最新版吗?

不是。它是2026-08-03本轮官方包版本。发布或部署当天应重新查看Official Terraria Wiki的下载链接。

2核4GB够吗?

可作为少量玩家原版小世界测试起点,但本轮没有玩家负载。大型世界、多人活动和模组服要按峰值观察并扩容。

原版客户端能加入tModLoader服吗?

通常不能按原版路径直接加入。加载器与模组版本必须匹配,另做版本矩阵。

.wld.bak算完整备份吗?

它是有用的本机回滚点,但同盘故障、误删或账号问题会同时影响。还需要服务器外多代备份和恢复演练。

购买前检查

  • 主要玩家地域与晚高峰网络;
  • 原版还是tModLoader;
  • 当前世界大小、难度、人数与模组;
  • x86_64 Linux镜像和TCP 7777策略;
  • 系统盘容量、备份空间和扩容方式;
  • 公网IPv4、DDoS处理、退款与迁移条件。

继续阅读:云服务器配置选择海外地域怎么选服务器测试IP方法安全组端口配置云服务器备份方法。确认测试条件后,再在萤光云VPS页面核对实时地域、系统、配置、价格和库存。

赞(0)
未经允许不得转载:VPS知识分享站 » 泰拉瑞亚服务器搭建教程:1.4.5.6、Linux、端口与存档