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 支持方面表现最佳。
安装准备
更新系统并安装必要依赖:
sudoaptupdate&&sudoaptupgrade-ysudoaptinstall-ylib32gcc-s1 lib32stdc++6curlwgetunzipscreen创建专用用户,避免以 root 身份运行游戏服务:
sudouseradd-m-s/bin/bash steamsudopasswdsteamsu- steam部署步骤
安装 SteamCMD
mkdir-p~/steamcmd&&cd~/steamcmdwgethttps://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gztar-xvzfsteamcmd_linux.tar.gz下载 tModLoader 服务端
tModLoader 在 Steam 上的 App ID 为1281930(专用服务器版本)。通过 SteamCMD 匿名登录下载:
~/steamcmd/steamcmd.sh\+login anonymous\+force_install_dir /home/steam/tmodloader\+app_update1281930validate\+quit下载完成后,服务端文件位于/home/steam/tmodloader/。
配置服务器参数
创建服务器配置文件:
mkdir-p/home/steam/tmodloader/serverconfigcat>/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 服务端的模组存放路径与客户端相同,位于用户家目录下:
mkdir-p/home/steam/.local/share/Terraria/tModLoader/Mods方法一:手动放置 .tmod 文件
将模组的.tmod文件直接上传至上述 Mods 目录:
# 示例:上传 Calamity ModscpCalamityMod.tmod steam@your-server-ip:/home/steam/.local/share/Terraria/tModLoader/Mods/方法二:通过 enabled.json 管理已启用模组
cat>/home/steam/.local/share/Terraria/tModLoader/Mods/enabled.json<<'EOF' [ "CalamityMod", "ThoriumMod", "MagicStorage" ] EOF创建启动脚本
cat>/home/steam/start-tmodloader.sh<<'EOF' #!/bin/bash cd /home/steam/tmodloader ./start-tModLoaderServer.sh \ -config /home/steam/tmodloader/serverconfig/serverconfig.txt \ -nosteam EOFchmod+x /home/steam/start-tmodloader.sh配置 systemd 服务
切换回 root 用户,创建 systemd 服务文件:
sudobash-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'启用并启动服务:
sudosystemctl daemon-reloadsudosystemctlenabletmodloadersudosystemctl start tmodloadersudosystemctl status tmodloader核心功能配置
Steam Workshop 模组自动同步
tModLoader 服务端不直接支持 Workshop 订阅,但可通过 SteamCMD 下载 Workshop 内容:
~/steamcmd/steamcmd.sh\+login anonymous\+workshop_download_item1281930<WORKSHOP_ID>\+quitWorkshop 内容默认下载至:
~/Steam/steamapps/workshop/content/1281930/<WORKSHOP_ID>/编写自动同步脚本,将 Workshop 内容同步至 Mods 目录:
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) 个模组" EOFchmod+x /home/steam/sync-mods.sh防火墙配置
sudoufw allow7777/tcpsudoufw allow7777/udpsudoufw reload进阶用法
模组自动更新定时任务
通过 crontab 定期检查并更新模组,建议在服务器低峰期执行:
crontab-e# 每天凌晨 4 点执行更新04* * * /home/steam/steamcmd/steamcmd.sh +login anonymous +app_update1281930+quit&&/home/steam/sync-mods.sh&&sudosystemctl restart tmodloader多世界管理
可以创建多个配置文件,对应不同主题的世界(如纯净地图、模组地图):
# 创建第二个世界配置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日志监控
# 实时查看服务日志sudojournalctl-utmodloader-f# 查看最近 100 行日志sudojournalctl-utmodloader-n100备份世界文件
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" EOFchmod+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 机型完全够用,价格实惠,线路稳定,非常适合游戏服务器场景。