使用 Docker 迁移《饥荒联机版(DST)》专用服务器的完整实战记录

本文记录一次将 原生安装的《饥荒联机版(DST)》专用服务器 平滑迁移至 Docker 容器环境 的全过程。重点不在“如何一键搭建”,而在 配置复用、端口一致性、MOD 自动管理、Shard 分片通信验证 等关键细节。 一、迁移背景与目标 原服务器为 原生 Linux 安装 的 DST Dedicated Server,运行多年,具有以下特点: 迁移目标不是“重装”,而是: 在 Docker 中完整接管运行环境,但不破坏任何已有数据结构与行为逻辑。 核心原则: 二、整体目录结构设计(脱敏示意) 宿主机统一使用一个工作目录: 关键说明: 三、Docker 镜像选择与原则 使用的镜像类型: 原则: Docker 只负责“跑”,不负责“改”。 因此明确禁止镜像行为: 四、Docker Compose 设计要点(概念说明) 1️⃣ 使用 host 网络模式 原因: 👉 所有端口直接由 ini 文件控制 2️⃣ Master / Caves …

使用 Docker 运行 Palworld 专用服务器的一次完整、可控实践记录

一、写在最前面:为什么要“认真”跑一个游戏服务器 很多教程的目标只有一句话: “服务器能跑,能进就行。” 但在真实服务器环境中,这种目标是不够的。 本次实践的目标从一开始就明确为: 这不是“为了折腾”,而是为了避免后期不可控成本。 二、总体设计思想 1. 核心分离原则 在本方案中,Palworld 服务被拆成三层: 层级 角色 处理方式 世界数据 核心资产 永久保存在宿主机 配置文件 行为定义 由管理员手动维护 容器 执行外壳 可随时删除 一句话总结: 世界不属于容器,容器只是世界的“临时执行环境”。 三、目录结构设计(完全脱敏) 以下为逻辑结构示意,非真实路径: 关键点说明 四、Docker Compose 的设计原则(而不是参数堆砌) 1. 镜像使用原则 原因很简单: 运行环境应尽量无状态、无外部依赖 2. 环境变量的克制使用 在 compose 中: 这样做的好处是: 3. 禁止自动生成 / 覆盖配置 明确禁止镜像在启动时: 这是防止世界“被重置”的关键步骤之一。 五、端口策略(完全脱敏说明) 1. 对外端口原则 …

使用 SRV 记录为某网络游戏配置子域名,省去端口号

在运行网络游戏服务器时,如果端口不是默认值,客户端连接时必须输入 域名:端口。这种方式虽然能用,但不够美观,也不方便记忆和分享。 通过配置 DNS 的 SRV 记录,可以让玩家只输入子域名就连接到对应端口,实现“隐藏端口号”的效果。本文将介绍具体做法。 1. 什么是 SRV 记录 SRV(Service Record)是一种 DNS 记录类型,用于指定某个服务在某个主机上的端口号和协议。如果客户端支持 SRV 记录,就能通过它自动找到对应的 IP 和端口,而无需用户手动输入端口号。 SRV 记录的查询格式: _service._protocol.hostname 对于多数网络游戏服务来说: 2. 场景示例 假设: 目标: 玩家只需要输入 play.example.net 就能连接到服务器,不用写端口号。 3. 配置步骤(以 NameSilo 为例) 第一步:添加 A 记录 在 DNS 管理面板中添加一条 A 记录: 类型:A主机名(Host):play值(Value):X.X.X.X(服务器公网 IP)TTL:3600(默认即可) 这样 play.example.net 就能解析到你的服务器 IP。 第二步:添加 SRV …

在饥荒联机版中设置服务器管理员的方法

在《饥荒联机版》(Don’t Starve Together)中,为服务器设置管理员是保证服务器管理与稳定运行的关键步骤。以下是以 Linux 环境为例,介绍的一种标准设置方法。 一、文件路径定位 玩家的服务器存档通常位于以下路径: 该目录下包含服务器的主要配置文件,如 cluster.ini、cluster_token.txt 以及 Master/ 和 Caves/ 等子世界文件夹。 二、添加管理员配置文件 要设置管理员,需要在 Cluster_1/ 目录下新建或编辑文件 adminlist.txt。每位管理员的 Klei ID(形如 KU_XXXXXXXX)需独占一行。例如: 管理员 ID 可通过玩家进入服务器后,在 Master/server_chat_log.txt 中查看: 三、重启服务器使设置生效 完成 adminlist.txt 编辑后,需要重启服务器以使改动生效。服务器只会在启动时读取此配置文件,热更新不支持管理员设置。 四、确认设置是否生效 重启后,可通过查看日志文件确认管理员是否成功加载: 日志中应出现类似: 五、文件权限注意事项 务必保证所有配置文件的权限归属于运行服务器的用户。例如,cluster_token.txt 若归属于 root,可能导致普通用户无法启动服务器。可使用以下命令修复: 将 username 替换为服务器运行用户的名称。 六、管理员权限说明 成为管理员后,可使用控制台指令执行如踢人(/kick)、封禁(/ban)、回档(/rollback)等操作,也可开启调试模式使用高级命令。 以上设置方法适用于使用官方工具启动的本地或专用服务器环境。

Ubuntu 启动 Don’t Starve Together 专用服务器报错:libcurl-gnutls.so.4 缺失的解决方案

在 Ubuntu 系统上运行 Don’t Starve Together Dedicated Server(简称 DST 服务器)时,部分用户会遇到如下错误提示: 这个错误意味着系统中缺少 libcurl-gnutls.so.4 这个共享库。本文将逐步分析这个问题的原因及其解决方法。 问题分析 libcurl-gnutls.so.4 是 libcurl 的一个构建版本,链接方式为 GnuTLS,而不是常见的 OpenSSL。在较新版本的 Ubuntu(如 22.04 或更高)中,该库不再默认安装。因此,尝试运行依赖该库的旧程序时,系统会报找不到该库。 安装缺失的库 可以通过以下命令安装 libcurl3-gnutls,该软件包中包含 libcurl-gnutls.so.4: 执行成功后,可通过以下命令确认库文件是否存在: 如果找到了该库的位置,例如 /usr/lib/x86_64-linux-gnu/libcurl-gnutls.so.4,说明库已经正确安装。 仍然报错?可能是架构不匹配 如果安装了库仍然报错,有可能是因为 DST 服务器程序是 32 位 的,而默认安装的是 64 位 的库。 可使用以下命令检查服务器程序的架构: 输出包含 ELF 32-bit 表示程序是 32 位的,这时需要安装对应的 32 位库版本。 启用 …

Ubuntu 安装 Don’t Starve Together 专用服务器(集中目录 + systemd 自启)

本教程适用于 Ubuntu 20.04/22.04,部署 Don’t Starve Together(DST)联机版专用服务器,采用集中式目录管理结构,即服务端程序、配置文件、世界存档、MOD 均统一放在一个目录下,便于维护、备份和迁移。 📁 路径结构设定 内容 路径示例 安装目录 /home/youruser/Steam/steamapps/common/dst_dedicated_server 存档配置路径 同上,位于 .klei/DoNotStarveTogether/Cluster_1/ 子目录中 启动脚本 start.sh 位于 dst_dedicated_server 根目录下 执行用户 假设为 youruser(普通非 root 用户,请替换为实际用户名) ① 安装依赖和 SteamCMD 执行以下命令安装 32 位运行环境和 SteamCMD: sudo add-apt-repository multiversesudo dpkg –add-architecture i386sudo apt updatesudo apt install lib32gcc-s1 steamcmdsudo apt remove libcurl4-gnutls-devsudo apt …