泰拉瑞亚服务器搭建并不复杂:下载官方专用服务端、准备一个.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镜像、配置、价格和库存。
服务器结构与本轮证据

本轮官方包证据:
- ZIP:45,635,619字节;
- SHA-256:
d75c455ac217fd3434448c8f8251c1347f0875a85c438589dc71b557777e9155; - 控制台版本:
Terraria Server v1.4.5.6; - 首次与重开均报告
Listening on port 7777和Server 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只能证明进程监听,不能证明云安全组或运营商网络可达。
如何判断真的启动成功
至少分四层:
- 进程存在;
- 日志显示精确版本与
Server started; - TCP 7777从预期网络可达;
- 同版本Terraria客户端加入,创建角色并进行一次世界操作。
本轮只通过前3层的本机路径,没有第4层。

世界备份和恢复
世界核心文件是:
/srv/terraria/worlds/community.wld
/srv/terraria/worlds/community.wld.bak(若生成)
还应保存:
serverconfig.txt
banlist.txt
当前服务端版本、ZIP SHA-256
tModLoader与模组清单(如果是模组服)
正确备份顺序:
通知玩家 → 服务端save → 正常exit → 确认进程退出
→ 归档世界与配置 → 生成文件清单 → 上传服务器外存储
恢复不是“文件能解压”。应把备份放进全新目录或新服务器,启动并观察是否执行Loading world data,再让客户端进入确认原世界标记。
本轮只完成同一机器同一世界的重开,没有把归档恢复到异机,因此文章不会写“异机恢复已通过”。
更新与回退
- 查询官方Wiki当前服务端包;
- 记录生产版本、世界和配置;
save、exit并确认停服;- 备份到服务器外;
- 新版本解压到新的release目录;
- 用世界副本启动;
- 用同版本客户端进服,测试世界、Boss/事件和保存;
- 通过后切换
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页面核对实时地域、系统、配置、价格和库存。







