属于大家的
VPS知识分享站

Core Keeper服务器搭建:Linux、Game ID、世界与备份

Core Keeper 开服有两条连接路线:默认走 Steam relay 生成 Game ID,或者显式设 -port 用 IP 直连和 PC 商店间连接。它不是“所有部署都必须开放某个固定端口”。Linux 服务端还需要图形生成能力:官方包明确要求 -batchmode,别用 -nographics,无桌面服务器一般用 Xvfb 提供最小显示环境。

这篇按 2026年8月3日核对的开发者置顶 FAQ,并通过 SteamCMD 下载了当前 Linux App 1963720 Build 23543502,验证边界正文里写清楚。

先选Game ID还是IP直连

方式 Game ID / Steam relay IP Direct Connection
启用方式 不传-port 显式传-port PORT
玩家加入 Join Game输入Game ID Join Game Via IP输入地址、端口和密码
入站端口 官方README不要求你指定Direct端口 必须精确放行你选择的UDP端口
PC商店范围 当前包说明默认Steam用户 Direct Connection用于跨PC商店连接
隐私 Game ID本身具有加入能力 公网IP会暴露给玩家,玩家IP也会暴露给服务端
适用场景 Steam朋友服、减少网络配置 跨商店、固定公网地址、需要直接控制入口

Game ID不是可以公开展示的无害编号。包内README说明它提供与密码相近的加入能力,只发给允许进入的玩家;泄露后更换Game ID。

当前官方包确认了什么

项目 2026-08-03核验结果
专用服务端App 1963720
系统 Windows、Linux
Linux Build ID 23543502
manifest安装大小 681,463,016字节
Linux入口 CoreKeeperServer,官方提供_launch.sh
必需模式 -batchmode,不能用-nographics替代
Game ID输出 安装目录旁GameInfo.txt
默认数据 Core Keeper保存位置下DedicatedServer
退出方式 官方FAQ建议在控制台输入q

官方FAQ给出的世界目录:

Windows: %USERPROFILE%\AppData\LocalLow\Pugstorm\Core Keeper\DedicatedServer\worlds
Linux:   ~/.config/unity3d/Pugstorm/Core Keeper/DedicatedServer/worlds

使用-datapath可以把不同实例的数据隔离到更清楚的位置。

本轮为什么没有写成实测通过

Core Keeper App 1963720包内核验和Apple Silicon amd64仿真Mono断言失败证据边界

本轮完成了App下载和依赖准备,Unity 6000.0.59f2已创建Mesa llvmpipe OpenGL 4.5设备;进入MonoManager ReloadAssembly后,在amd64仿真中触发:

x86-codegen.h:410
condition `offset == (gint32)offset' not met
Caught fatal signal - signo:6

因此:

  • 没有GameInfo.txt
  • 没有Game ID;
  • 没有世界文件;
  • 没有正常退出和重开;
  • 不能把App下载成功当作服务器启动成功。

这只说明当前Apple Silicon的linux/amd64仿真路径不可用,不说明原生x86_64 Linux有相同问题。后续最小验证只需换原生x86_64环境完成GameInfo、世界、q停服和重开,不需要为了文章做完整多人部署。

配置怎么选

没有运行和玩家样本时,配置只能作为测试起点:

场景 采购测试起点 需要观察
2—4人新世界 2核4GB、40GB SSD 首次世界生成、内存、保存时长
5—8人长期世界 4核8GB、60GB SSD 世界增长、玩家峰值、备份窗口
更高人数/模组/跨商店 4核8GB以上,先做兼容和负载测试 官方包提示高人数可能不稳定

包内参数默认-maxplayers 8,虽然接受更高数字,但官方明确提示需要更多资源或可能不稳定。不要把“参数能填写16”写成“官方支持稳定16人”。

准备玩家使用的PC商店、Game ID或IP直连、人数、世界来源、模组和备份周期,再到萤光云VPS页面核对实时Linux/Windows镜像、SSD、价格和库存。

推荐目录结构

Core Keeper通过Game ID Steam relay或指定UDP端口IP直连的两种服务器连接架构
/opt/corekeeper/current/            # App 1963720程序
/opt/corekeeper/releases/           # 旧Build回退
/srv/corekeeper/private-01/         # -datapath实例数据
/srv/corekeeper/logs/
/srv/corekeeper/backups/

每个实例使用独立datapath、Game ID或Direct端口。不要让测试服和生产服共用同一个world index。

用SteamCMD安装Linux服务端

sudo adduser --system --home /opt/corekeeper --group corekeeper
sudo mkdir -p /opt/corekeeper/current /srv/corekeeper/{private-01,logs,backups}

steamcmd \
  +force_install_dir /opt/corekeeper/current \
  +login anonymous \
  +app_update 1963720 validate \
  +quit

当前官方包实际使用App 1963720。部分旧教程还额外安装Steam runtime App 1007;是否需要应以当前README.txt_launch.sh和目标发行版实际错误为准,不要无条件复制。

安装后记录:

du -sh /opt/corekeeper/current
sha256sum /opt/corekeeper/current/CoreKeeperServer
sed -n '1,240p' /opt/corekeeper/current/README.txt
sed -n '1,260p' /opt/corekeeper/current/ARGUMENTS.txt

Linux为什么需要Xvfb

包内README明确说明部分程序化生成在GPU完成,所以:

  • 使用-batchmode
  • 不使用-nographics
  • 无桌面Linux通过Xvfb提供虚拟显示;
  • 官方_launch.sh会检查libxi6xvfb并启动:99
  • 容器也要提供可用的图形后端,不能只复制Unity无头模板。

Ubuntu示意:

sudo apt update
sudo apt install -y xvfb libxi6

优先先运行官方_launch.sh,只有理解当前脚本后才改成自己的systemd包装器。

Game ID朋友服启动参数

不传-port,让服务端走Steam relay:

cd /opt/corekeeper/current

./_launch.sh \
  -datapath /srv/corekeeper/private-01 \
  -world 0 \
  -worldname "Private Core Keeper" \
  -worldseed "CHANGE_TO_YOUR_SEED" \
  -worldmode Normal \
  -maxplayers 8

启动后不要只看进程。检查:

cat /opt/corekeeper/current/GameInfo.txt
tail -n 200 /opt/corekeeper/current/CoreKeeperServerLog.txt
find /srv/corekeeper/private-01 -maxdepth 3 -type f -print

GameInfo.txt会提示Game ID、允许平台和被忽略/无效参数。真实Game ID不要写进公开日志工单。

IP直连与跨PC商店

需要Direct Connection时显式设置:

./_launch.sh \
  -datapath /srv/corekeeper/private-01 \
  -world 0 \
  -worldname "Private Core Keeper" \
  -port 7778 \
  -ip 0.0.0.0 \
  -password "CHANGE_ME" \
  -maxplayers 8

这里的7778只是你选择的示例端口,不是所有Core Keeper服务器的强制默认值。主机防火墙和云安全组放行相同UDP端口:

sudo ufw allow 7778/udp
ss -lunp | grep ':7778'

客户端使用IP;PORT;;PASSWORD格式可以由GameInfo.txt生成。服务器IP和玩家IP会互相暴露,公开社区应在隐私告知和日志留存上有明确规则。

当前包内重要参数

  • -world 029:世界索引;
  • -worldname:玩家看到的名称;
  • -worldseed:只在新世界首次生成时生效;
  • -worldmode:Normal、Hard、Creative或Casual;
  • -season:季节活动;
  • -datapath:保存路径;
  • -gameid:自定义Game ID,格式不合法会随机生成;
  • -port-ip:只能通过命令行启用Direct Connection;
  • -maxplayers:默认8,提高需要额外验证。

多数参数也能保存到ServerConfig.json,但port/ip写在JSON中不会生效。修改后以GameInfo.txt为准,不要只看配置文件。

正常停服、备份和重开

官方FAQ建议在控制台输入q退出。可靠流程:

通知玩家 → 控制台q → 等待进程退出
→ 归档datapath、GameInfo和ServerConfig → 生成SHA-256
→ 复制到服务器外多代存储 → 新程序目录恢复
→ 启动同一world index → 检查GameInfo → 客户端进入原世界

不要直接关闭终端、强杀Unity进程或只备份一个未知扩展名的世界文件。完整datapath更能保留worlds、worldgenparams、backups和配置关系。

世界种子和worldgenparams

包内README说明,专用服务器没有普通客户端的世界生成UI。要复用自定义生成参数:

  1. 在正常Core Keeper客户端创建目标参数世界;
  2. 从客户端保存目录取得对应worldgenparams文件;
  3. 复制到服务端datapath/worldgenparams
  4. 重命名为目标world index;
  5. 新建世界时使用相同seed;
  6. 先在副本验证,再作为生产世界。

这和复制现有世界不是一回事。worldseed对已经创建的世界不会重新生成地图。

模组和更新

Core Keeper当前有官方模组支持站点和Steam Workshop开放测试,但服务器、客户端、商店和模组框架的组合可能不同。保存:

  • 服务端Build ID;
  • 模组来源、ID、版本、依赖和哈希;
  • 允许的平台;
  • 世界副本;
  • 更新前后GameInfo和日志;
  • 成套回退的程序、模组与世界。

先验证原版Game ID/Direct Connection和世界重开,再加入模组,避免把网络、Xvfb和模组错误混在一起。

常见故障

服务端没有GameInfo.txt

先看CoreKeeperServerLog.txt和控制台。程序可能在图形、Mono、权限、参数或Steam初始化阶段提前退出。没有GameInfo不能算启动通过。

Linux提示没有显示设备

确认使用官方_launch.sh或Xvfb,且没有添加-nographics。当前官方README说明生成依赖GPU。

设置了端口但玩家仍用Game ID失败

Game ID和Direct Connection是两条连接路径。检查GameInfo.txt的允许平台、IP、端口、密码和无效参数,再按目标方式验收。

改了worldseed但地图没变化

seed只在世界首次创建时生效。换一个空world index或正确迁移worldgenparams,不要覆盖生产世界。

关闭终端后进程仍在

开发者FAQ提醒直接关窗口可能让进程留在后台。使用控制台q,再检查进程和日志。

FAQ

Core Keeper必须开放7778吗?

不是。默认Game ID/Steam relay不要求设置Direct端口;只有传-port时才开放你选择的UDP端口,7778只是包内示例。

Linux可以用-nographics吗?

当前官方README明确不可以,因为部分世界生成依赖GPU;使用-batchmode和Xvfb。

默认最多几人?

默认8人。提高-maxplayers可能需要更多资源或不稳定,这篇没有验证更高人数。

本文实测启动成功了吗?

没有。App下载和包内核验完成,但当前amd64仿真在Mono阶段崩溃,未生成GameInfo或世界。

如何判断原生Linux最小验证通过?

生成GameInfo和世界、用q正常停服,再启动同一datapath并读取原世界即可;不必先做完整多人部署。

购买前清单

  • Steam Game ID还是IP Direct Connection;
  • 玩家PC商店和跨商店需求;
  • 原生x86_64 Linux或Windows镜像;
  • Xvfb/GPU生成依赖;
  • 世界索引、seed、worldgenparams和旧世界来源;
  • 模组、Build ID和更新策略;
  • SSD、datapath多代异机备份;
  • 公网IP、端口、DDoS、扩容和迁移条款。

继续阅读:云服务器配置选择服务器地域怎么选测试IP与线路安全组规则备份恢复。确定连接方式后,再到萤光云VPS页面查看实时Linux/Windows镜像、配置、价格和库存。

赞(0)
未经允许不得转载:VPS知识分享站 » Core Keeper服务器搭建:Linux、Game ID、世界与备份