tModLoader 专用服务器搭建教程:Terraria泰拉瑞亚 模组联机全攻略
Terraria 作为一款经典的 2D 沙盒冒险游戏,拥有极其丰富的 Mod 生态。tModLoader 是官方支持的模组加载框架,让玩家可以通过 Steam Workshop 一键订阅并使用数千个社区 Mod。然而,要在多人模式下让所有玩家共享同一套模组配置,搭建一台专用的 tModLoader 服务器是最可靠的解决方案。
本教程将指导你在 Linux 服务器上通过 SteamCMD 安装 tModLoader 专用服务端,配置 Steam Workshop 模组自动同步,并通过 systemd 实现开机自启和进程守护。无论是小型私人房间还是公开社区服务器,本方案均可满足需求。
整个部署过程对服务器性能要求适中,加载大量模组时内存占用会显著上升,因此选择合适的机型非常关键。下文将给出推荐配置,并详细说明每一步操作。
服务器配置
推荐使用雨云服务器 rainyun-com 部署 tModLoader 专用服务端。注册填优惠码 2026off 领 5 折优惠券,选择 2 核 4GB 机型 即可流畅运行含 20~30 个中等体量模组的服务器。若计划加载 Calamity、Thorium 等大型内容模组,建议关注内存余量,必要时升级至 4 核 8GB。
操作系统推荐选择 Ubuntu 22.04 LTS 或 Debian 12,这两个发行版在 SteamCMD 兼容性和 systemd 支持方面表现最佳。
安装准备
更新系统并安装必要依赖:
bash
sudo apt update && sudo apt upgrade -y
sudo apt install -y lib32gcc-s1 lib32stdc++6 curl wget unzip screen
创建专用用户,避免以 root 身份运行游戏服务:
bash
sudo useradd -m -s /bin/bash steam
sudo passwd steam
su - steam
部署步骤
安装 SteamCMD
bash
mkdir -p ~/steamcmd && cd ~/steamcmd
wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz
tar -xvzf steamcmd_linux.tar.gz
下载 tModLoader 服务端
tModLoader 在 Steam 上的 App ID 为 1281930(专用服务器版本)。通过 SteamCMD 匿名登录下载:
bash
~/steamcmd/steamcmd.sh \
+login anonymous \
+force_install_dir /home/steam/tmodloader \
+app_update 1281930 validate \
+quit
下载完成后,服务端文件位于 /home/steam/tmodloader/。
配置服务器参数
创建服务器配置文件:
bash
mkdir -p /home/steam/tmodloader/serverconfig
cat > /home/steam/tmodloader/serverconfig/serverconfig.txt << 'EOF'
# 世界文件路径
worldpath=/home/steam/.local/share/Terraria/tModLoader/Worlds/
# 世界文件名(无扩展名)
world=/home/steam/.local/share/Terraria/tModLoader/Worlds/MyWorld.wld
# 最大玩家数
maxplayers=8
# 服务器端口
port=7777
# 服务器密码(留空则无密码)
password=
# 自动创建世界时的大小(1=小 2=中 3=大)
autocreate=2
# 世界名称(自动创建时使用)
worldname=MyWorld
# 服务器名称(在服务器列表显示)
servername=My tModLoader Server
# 难度(0=经典 1=专家 2=大师 3=旅途)
difficulty=1
EOF
配置模组目录
tModLoader 服务端的模组存放路径与客户端相同,位于用户家目录下:
bash
mkdir -p /home/steam/.local/share/Terraria/tModLoader/Mods
方法一:手动放置 .tmod 文件
将模组的 .tmod 文件直接上传至上述 Mods 目录:
bash
# 示例:上传 Calamity Mod
scp CalamityMod.tmod steam@your-server-ip:/home/steam/.local/share/Terraria/tModLoader/Mods/
方法二:通过 enabled.json 管理已启用模组
bash
cat > /home/steam/.local/share/Terraria/tModLoader/Mods/enabled.json << 'EOF'
[
"CalamityMod",
"ThoriumMod",
"MagicStorage"
]
EOF
创建启动脚本
bash
cat > /home/steam/start-tmodloader.sh << 'EOF'
#!/bin/bash
cd /home/steam/tmodloader
./start-tModLoaderServer.sh \
-config /home/steam/tmodloader/serverconfig/serverconfig.txt \
-nosteam
EOF
chmod +x /home/steam/start-tmodloader.sh
配置 systemd 服务
切换回 root 用户,创建 systemd 服务文件:
bash
sudo bash -c 'cat > /etc/systemd/system/tmodloader.service << EOF
[Unit]
Description=tModLoader Dedicated Server
After=network.target
[Service]
Type=simple
User=steam
WorkingDirectory=/home/steam/tmodloader
ExecStart=/home/steam/start-tmodloader.sh
Restart=on-failure
RestartSec=10
StandardOutput=journal
StandardError=journal
[Install]
WantedBy=multi-user.target
EOF'
启用并启动服务:
bash
sudo systemctl daemon-reload
sudo systemctl enable tmodloader
sudo systemctl start tmodloader
sudo systemctl status tmodloader
核心功能配置
Steam Workshop 模组自动同步
tModLoader 服务端不直接支持 Workshop 订阅,但可通过 SteamCMD 下载 Workshop 内容:
bash
~/steamcmd/steamcmd.sh \
+login anonymous \
+workshop_download_item 1281930 <WORKSHOP_ID> \
+quit
Workshop 内容默认下载至:
~/Steam/steamapps/workshop/content/1281930/<WORKSHOP_ID>/
编写自动同步脚本,将 Workshop 内容同步至 Mods 目录:
bash
cat > /home/steam/sync-mods.sh << 'EOF'
#!/bin/bash
WORKSHOP_DIR="/home/steam/Steam/steamapps/workshop/content/1281930"
MODS_DIR="/home/steam/.local/share/Terraria/tModLoader/Mods"
for mod_dir in "$WORKSHOP_DIR"/*/; do
find "$mod_dir" -name "*.tmod" -exec cp {} "$MODS_DIR/" \;
done
echo "模组同步完成,共同步 $(ls $MODS_DIR/*.tmod 2>/dev/null | wc -l) 个模组"
EOF
chmod +x /home/steam/sync-mods.sh
防火墙配置
bash
sudo ufw allow 7777/tcp
sudo ufw allow 7777/udp
sudo ufw reload
进阶用法
模组自动更新定时任务
通过 crontab 定期检查并更新模组,建议在服务器低峰期执行:
bash
crontab -e
# 每天凌晨 4 点执行更新
0 4 * * * /home/steam/steamcmd/steamcmd.sh +login anonymous +app_update 1281930 +quit && /home/steam/sync-mods.sh && sudo systemctl restart tmodloader
多世界管理
可以创建多个配置文件,对应不同主题的世界(如纯净地图、模组地图):
bash
# 创建第二个世界配置
cp /home/steam/tmodloader/serverconfig/serverconfig.txt \
/home/steam/tmodloader/serverconfig/serverconfig-calamity.txt
# 修改端口和世界路径,避免冲突
sed -i 's/port=7777/port=7778/' /home/steam/tmodloader/serverconfig/serverconfig-calamity.txt
日志监控
bash
# 实时查看服务日志
sudo journalctl -u tmodloader -f
# 查看最近 100 行日志
sudo journalctl -u tmodloader -n 100
备份世界文件
bash
cat > /home/steam/backup-world.sh << 'EOF'
#!/bin/bash
BACKUP_DIR="/home/steam/backups"
WORLD_DIR="/home/steam/.local/share/Terraria/tModLoader/Worlds"
DATE=$(date +%Y%m%d_%H%M%S)
mkdir -p "$BACKUP_DIR"
tar -czf "$BACKUP_DIR/worlds_$DATE.tar.gz" "$WORLD_DIR"
# 保留最近 7 天备份
find "$BACKUP_DIR" -name "worlds_*.tar.gz" -mtime +7 -delete
echo "备份完成:$BACKUP_DIR/worlds_$DATE.tar.gz"
EOF
chmod +x /home/steam/backup-world.sh
# 每 6 小时自动备份
echo "0 */6 * * * /home/steam/backup-world.sh" | crontab -
常见问题排查
问题 1:服务器启动后无法连接
检查防火墙是否放行 7777 端口,同时确认 serverconfig.txt 中 port 配置正确。可通过 netstat -tlnp | grep 7777 验证端口是否在监听。
问题 2:加载模组时服务器崩溃
通常是内存不足导致。查看 sudo journalctl -u tmodloader -n 50 中是否有 OutOfMemoryException。临时解决方案:添加 Swap 空间,长期建议升级机型。
问题 3:客户端与服务端模组版本不一致
确保服务端和客户端使用完全相同的模组版本。建议通过 enabled.json 锁定版本,并在 README 中告知玩家订阅列表。
问题 4:SteamCMD 下载速度慢
可尝试切换 Steam 下载区域,或通过中间机器下载后 scp 传输至服务器。
问题 5:服务进程异常退出
systemd 会自动在 10 秒后重启服务(RestartSec=10)。若频繁重启,检查磁盘空间:df -h,世界文件损坏也会导致循环崩溃,此时需从备份恢复。
搭建 tModLoader 专用服务器能极大提升 Terraria 模组多人体验,玩家无需手动同步模组即可加入。如果你还没有合适的服务器,推荐选择雨云服务器 rainyun-com ,注册时填入优惠码 2026off 可领取 5 折优惠券,2 核 4GB 机型 完全够用,价格实惠,线路稳定,非常适合游戏服务器场景。