
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
terraria-docker 是一个非官方的 Terraria 专用服务器 Docker 容器,支持原版 Terraria 和通过 tModLoader 加载的模组化服务器。该镜像提供了便捷的部署方式,使玩家能够快速搭建自己的 Terraria 服务器。
[!NOTE] 本项目与 Terraria 或 tModLoader 无任何关联。如有问题,请在此处报告。
创建服务器文件目录。例如:Linux 系统可以使用 /opt/TerrariaServer/,Windows 系统可以使用 C:\TerrariaServer\。
运行容器:(请根据需要修改参数值)
dockerdocker run -d --name terraria -p 7777:7777/tcp -v /opt/TerrariaServer/:/opt/terraria/config/ -e WORLDNAME=myworld passivelemon/terraria-docker:terraria-latest
配置服务器访问权限。
创建服务器文件目录。例如:Linux 系统可以使用 /opt/TerrariaServer/,Windows 系统可以使用 C:\TerrariaServer\。
将模组包添加到上述目录的 ModPacks/ 子目录中(详见下方第3步)。
运行容器:(请根据需要修改参数值)
dockerdocker run -d --name tmodloader1.4 -p 7777:7777/tcp -v /opt/TerrariaServer/:/opt/terraria/config/ -e MODPACK=<模组包名称> -e WORLDNAME=myworld passivelemon/terraria-docker:tmodloader-latest
配置服务器访问权限。
根据您的主机系统,选择合适的位置存储服务器文件。确保该位置为空、安全且可访问。例如:Windows 系统可使用 C:\TerrariaServer\,Linux 系统可使用 /opt/TerrariaServer/。
[!NOTE] 为方便说明,我们将此目录称为
<config_dir>。所有尖括号<>中的字段都需要您根据实际情况替换。
在 <config_dir> 中,创建一个名为 Worlds 的目录(名称必须完全一致),如果使用 tModLoader,还需创建 ModPacks 目录。此外,serverconfig.txt 文件(如果您想使用自定义配置)也将存储在此位置,详情见步骤4。
对于您希望服务器使用的每个变量,通过 -e <变量>=<值> 添加到 docker run 命令或 compose 文件中。如果未设置,将使用默认值。
默认情况下,模组化服务器需要定义模组包才能成功运行。
服务器配置详情可参考 Terraria Wiki。
容器变量
| 变量名 | 选项 | 默认值 | 详细说明 |
|---|---|---|---|
PUID | integer | 1000 | 运行服务器的用户ID |
PGID | integer | 1000 | 运行服务器的组ID |
SERVERCONFIG | boolean | 0 | 启用后使用用户定义的配置文件,否则将通过其他环境变量自动生成 |
服务器变量
| 变量名 | 选项 | 默认值 | 详细说明 |
|---|---|---|---|
AUTOCREATE | 1 2 3 | 2 | 当未找到世界名称时自动创建的世界大小 |
BANLIST | string | banlist.txt | 包含被禁玩家列表的文件 |
DIFFICULTY | 0 1 2 3 | 0 | 自动创建世界时使用的难度级别 |
LANGUAGE | en-US de-DE it-IT fr-FR es-ES ru-RU zh-Hans pt-BR pl-PL | en-US | 使用的语言 |
MAXPLAYERS | integer | 8 | 服务器最大玩家数量 |
MODPACK | string | NA | 启动服务器时使用的模组包,仅适用于tModLoader |
MOTD | string | NA | 服务器每日消息 |
NPCSTREAM | integer 0-60 | 15 | 实体跳过帮助值 |
PASSWORD | string | NA | 加入服务器所需的密码 |
PORT | integer | 7777 | 服务器端口 |
PRIORITY | 0 1 2 3 4 5 | 1 | 服务器进程优先级 |
SECURE | boolean | 1 | 作弊保护 |
SEED | string | NA | 自动创建世界时使用的种子 |
UPNP | boolean | 0 | 使用uPNP自动端口转发 |
WORLDNAME | string | World | 世界名称,决定要加载的世界文件 |
旅途模式变量
所有旅途模式变量具有相同的选项,默认值均为 2。
| 变量名 | 选项 | 默认值 |
|---|---|---|
BIOMESPREAD_SETFROZEN | 0 1 2 | 2 |
GODMODE | 0 1 2 | 2 |
INCREASEPLACEMENTRANGE | 0 1 2 | 2 |
RAIN_SETFROZEN | 0 1 2 | 2 |
RAIN_SETSTRENGTH | 0 1 2 | 2 |
SETDIFFICULTY | 0 1 2 | 2 |
SETSPAWNRATE | 0 1 2 | 2 |
TIME_SETDAWN | 0 1 2 | 2 |
TIME_SETDUSK | 0 1 2 | 2 |
TIME_SETFROZEN | 0 1 2 | 2 |
TIME_SETMIDNIGHT | 0 1 2 | 2 |
TIME_SETNOON | 0 1 2 | 2 |
TIME_SETSPEED | 0 1 2 | 2 |
WIND_SETFROZEN | 0 1 2 | 2 |
WIND_SETSTRENGTH | 0 1 2 | 2 |
如果不使用tModLoader,请跳过此步骤。
理想情况下,不应在服务器的modpack文件夹中包含任何仅客户端的模组。客户端模组仅影响客户端(玩家),不会为游戏添加新功能,包括不同的纹理、着色器、RPC等。即使包含这些模组也不会有什么问题,但这是最佳实践。模组包含在modpack文件夹中,因此无需手动获取。
<config_dir>/ModPacks/ 中确保模组包包含 enabled.json 文件以及您想要的模组,否则服务器将无法启动。
如果要继续使用现有世界,请按照此步骤操作。否则,只需跳过它。服务器将自动生成一个新的世界。
如果您提供世界文件并正确设置 WORLDNAME 变量,服务器将使用现有世界。如果使用tModLoader,请确保始终使用相同的modpack加载此世界,否则可能会遇到世界损坏。
C:\Users\<user>\Documents\My Games\Terraria\Worlds\(Windows)或 /home/<user>/.local/share/Terraria/Worlds/(Linux)。C:\Users\<user>\Documents\My Games\Terraria\tModLoader\Worlds\(Windows)或 /home/<user>/.local/share/Terraria/tModLoader/Worlds/(Linux)。<config_dir>/Worlds/。世界文件扩展名为 .wld,如果使用tModLoader,则为 .twld。如果要使用自己的服务器配置,请按照此步骤操作。否则,只需跳过它。服务器将根据您提供的环境变量自动生成配置。
容器中terraria服务器文件的根目录是 /opt/terraria/server/,<config_dir> 中的用户项目挂载在 /opt/terraria/config/。
SERVERCONFIG 设置为1。serverconfig.txt 放入 <config_dir>。服务器配置详情可参考 Terraria Wiki。
| 标签 | 详细说明 |
|---|---|
latest | 与 terraria-latest 相同 |
terraria-latest | 最新的官方Terraria版本 |
terraria-<version> | 特定版本的Terraria |
tmodloader-latest | 最新的tModLoader稳定版本 |
tmodloader-latest-pre | 最新的tModLoader预发布版本(不稳定) |
tmodloader-<year> | 最新的tModLoader年度稳定版本 |
tmodloader-<year>-pre | 最新的tModLoader年度预发布版本(不稳定) |
tmodloader-<version> | 特定版本的tModLoader |
虽然稳定版可能没问题,但建议将服务器固定到特定版本,以避免潜在的存档损坏。
Terraria版本可在 https://github.com/PassiveLemon/terraria-docker/releases/ 查看。
tModLoader版本可在 https://github.com/tModLoader/tModLoader/releases/ 查看(不包含 v 前缀)。
原版服务器
bashdocker run -d --name terraria -p 7777:7777/tcp -v /opt/terrariaServer/:/opt/terraria/config/ -e WORLDNAME=myworld passivelemon/terraria-docker:terraria-latest
模组化服务器
bashdocker run -d --name tmodloader1.4 -p 7777:7777/tcp -v /opt/terrariaServer/:/opt/terraria/config/ -e MODPACK=my_modpack -e WORLDNAME=myworld passivelemon/terraria-docker:tmodloader-latest
基础配置
yamlservices: terraria-docker: image: passivelemon/terraria-docker:terraria-latest container_name: terraria-docker ports: - 7777:7777 volumes: - /opt/terrariaServer/:/opt/terraria/config/
带环境变量的配置
yamlservices: terraria-docker: image: passivelemon/terraria-docker:terraria-latest container_name: terraria-docker ports: - 7777:7777 volumes: - /opt/terrariaServer/:/opt/terraria/config/ environment: WORLDNAME: "myworld" MAXPLAYERS: 16 PASSWORD: "mypassword" MOTD: "欢迎来到我的Terraria服务器" DIFFICULTY: 1
带健康检查的配置
yamlservices: terraria-docker: image: passivelemon/terraria-docker:terraria-latest container_name: terraria-docker ports: - 7777:7777 volumes: - /opt/terrariaServer/:/opt/terraria/config/ environment: WORLDNAME: "myworld" MAXPLAYERS: 16 healthcheck: test: "nc -vz 127.0.0.1 7777 || exit 1" # 如果需要,将7777更改为内部服务器端口 interval: 30s timeout: 5s start_period: 10s retries: 3
| 参数 | 是否必需 | 详细说明 |
|---|---|---|
-d | 是 | 在后台运行容器 |
--name <container name> | 否 | 设置容器名称,可以更改为任何名称 |
-p 7777:7777 | 是 | 服务器使用的默认端口。将主机的7777端口映射到容器的7777端口。 如果在serverconfig中为服务器使用不同的端口,请更改此项。 |
-v <config_dir>:/opt/terraria/config | 是 | 设置保存配置(如世界和serverconfig.txt)的目录。这应该是您在开始时选择的位置 |
passivelemon/terraria-docker:terraria-latest | 是 | Docker镜像。默认情况下,它是最新版本 |
有几种方法可以实现:
完全通过LAN玩游戏。如果服务器和玩家在同一网络上,则可以使用服务器主机的本地IP。
通过***(如Tailscale、ZeroTier等)玩游戏。然后可以按照与LAN相同的逻辑操作。
通过域名或公共IP远程玩游戏。详见下文。
除非计划完全在本地或通过***玩游戏,否则需要进行端口转发,以便网络外部的玩家能够访问服务器。端口转发的一般思路是,当客户端向服务器发送请求(使用特定端口)时,正确设置的端口转发将允许请求通过并到达指定的主机。Terraria默认使用7777,但您可以在配置文件中更改此端口。
如果无法访问网络基础设施,则需要通过LAN或***玩游戏。
通过在浏览器中输入网关IP访问路由器Web界面。可能是 192.168.1.1、172.1.0.1 或其他。这将根据网络设置而有所不同。
找到端口转发部分。路由器管理软件可能会有所不同,但很可能就称为"端口转发"或在"NAT"选项卡下。 例如:对于PFsense,它在NAT下,称为端口转发。输入也可能看起来略有不同。如果不知道自己在做什么,请查阅软件制造商的手册以获取指导。
设置外部或传入端口。这是玩家尝试加入服务器时将输入的端口。
设置内部或传出端口。这是Docker将使用的端口。这是 -p 7777:7777 的第一部分。第二部分是容器端口。这是您放入服务器配置的内容(默认7777)。
设置目标IP。这将是服务器/主机的IP。有很多方法可以找到它。在终端中:Windows使用 ipconfig。大多数Linux发行版使用 ip a 或 ifconfig 或类似命令。查找您的接口(无论是wifi还是有线),并找到您的IPV4地址。它可能看起来像 192.168.1.XXX 或 172.1.0.XXX。同样,可能会有所不同。
找到您的公共IP地址。您可以访问 [whatismyip]([***]
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务