属于大家的
VPS知识分享站

森林之子服务器搭建:Windows、UDP端口、配置与存档

森林之子开服最容易丢档的配置不是端口,是 SaveMode:continue 会继续指定 slot,new 会新建并覆盖;把 new 长期留在生产配置里,每次重启都可能覆盖掉之前的世界。公网服还要同时通过 UDP 8766、27016、9700 的 Self Test,跳过网络检测不等于玩家真能进。

这篇按 2026年8月3日核对的官方 Steam 配置指南和专用服务端 App 2465200 写,当前工具仍是 Windows only,Build ID 20228410,没实际下载或运行。

当前服务端的关键事实

项目 当前核对结果
服务端工具 Sons Of The Forest Dedicated Server
Steam App ID 2465200
系统 Windows
当前Build ID 20228410
游戏端口 UDP 8766
查询/列表 UDP 27016
Blob同步 UDP 9700
配置 JSON格式dedicatedserver.cfg
数据目录 %LocalAppData%\..\LocalLow\Endnight\SonsOfTheForestDS
最大玩家 官方配置范围1—8
公网 当前正式支持IPv4,启动执行可达性Self Test

第三方Wine容器可以单独实验,但官方App当前仍标Windows,不能把兼容层当作默认支持路线。

配置怎么选

没有本轮负载样本时,只能给Windows采购测试起点:

场景 保守测试起点 上线前观察
2—4人新世界 4核8GB、80GB SSD 初始内存、保存、玩家加入、UDP自检
5—8人长期建筑世界 8核16GB、120GB SSD 建筑/NPC、保存时长、峰值内存、日志增长
旧P2P世界迁移 8核16GB起,额外留完整源/目标副本 角色、建筑、NPC、slot和恢复

MaxPlayers官方范围上限是8,不应为了营销把民间修改更大数字写成官方支持。建筑规模、NPC状态、世界年龄和系统CPU都会改变实际负载。

萤光云2026-08-03只读目录中,44个返回地域均可见Windows Server 2019/2022镜像,五个地域样本包含4核8GB、8核16GB、16核32GB和不同磁盘目录。目录可见不等于实时库存、价格、CPU型号或性能。

准备玩家地域、人数、现有世界、公开/私人、备份周期和维护时间,再到萤光云VPS页面核对实时Windows镜像、SSD、价格和库存。

推荐目录

D:\sons\steamcmd\
D:\sons\server-current\
D:\sons\server-releases\
D:\sons\data\private-01\          # -userdatapath
D:\sons\backups\
D:\sons\ops\
森林之子玩家通过UDP 8766、27016和9700连接Windows专用服务器与持久数据目录的架构

通过-userdatapath把服务端数据移出用户默认AppData,便于多实例、限权、备份和恢复。每个实例使用独立目录和三组不冲突端口。

使用SteamCMD安装App 2465200

PowerShell示意:

$SteamCmd = "D:\sons\steamcmd\steamcmd.exe"
$Install = "D:\sons\server-current"

& $SteamCmd `
  +force_install_dir $Install `
  +login anonymous `
  +app_update 2465200 validate `
  +quit

官方指南当前支持匿名安装。完成后记录:

  • App 2465200和Build ID;
  • 安装目录字节数与剩余SSD;
  • StartSOTFDedicated.bat和实际二进制;
  • 包内默认配置/版本;
  • 更新日期和脚本哈希。

validate通过不等于Self Test或客户端连接通过。

第一次启动和数据目录

使用独立数据路径:

Set-Location D:\sons\server-current
.\StartSOTFDedicated.bat -userdatapath "D:\sons\data\private-01"

具体批处理参数传递方式应在当前包验证。首次启动会在用户数据目录创建缺失的默认文件,之后停服修改:

dedicatedserver.cfg
ownerswhitelist.txt
Saves\
SonsGameSettings.cfg
logs\

服务端配置或owners文件不存在时,Self Test会创建默认文件并要求重新启动。先保存默认文件,不要直接从未知网站复制完整配置。

dedicatedserver.cfg最小配置

官方指南的默认结构包含:

{
  "IpAddress": "0.0.0.0",
  "GamePort": 8766,
  "QueryPort": 27016,
  "BlobSyncPort": 9700,
  "ServerName": "Private Sons Server",
  "MaxPlayers": 8,
  "Password": "CHANGE_ME",
  "LanOnly": false,
  "SaveSlot": 1,
  "SaveMode": "Continue",
  "GameMode": "Normal",
  "SaveInterval": 600,
  "IdleDayCycleSpeed": 0.0,
  "IdleTargetFramerate": 5,
  "ActiveTargetFramerate": 60,
  "LogFilesEnabled": true,
  "TimestampLogFilenames": true,
  "TimestampLogEntries": true,
  "SkipNetworkAccessibilityTest": false,
  "GameSettings": {},
  "CustomGameModeSettings": {}
}

JSON不允许漏逗号、弯引号或注释。官方指南某一段文字把冒号误写成分号,但实际示例和JSON标准使用冒号;发布配置必须通过解析器和服务端Self Test。

Get-Content D:\sons\data\private-01\dedicatedserver.cfg -Raw |
  ConvertFrom-Json | Out-Null

SaveMode是最高风险门禁

森林之子新世界临时使用SaveMode New后切回Continue并重开验收的防丢档门禁

官方定义:

  • Continue:slot存在就加载,不存在就创建;
  • New:创建新Game ID并覆盖指定slot;只要保持New,后续重启继续覆盖。

安全流程:

  1. 第一次新建测试世界时可临时使用New;
  2. 确认世界创建后正常停服;
  3. 立即改为Continue;
  4. 保存配置哈希和世界副本;
  5. 重启确认加载原slot;
  6. 生产门禁拒绝SaveMode=New

维护脚本可以在启动前解析JSON,发现New就退出并报警。不要依赖管理员记忆。

三组UDP端口和Self Test

公网服默认需要:

  • UDP 8766 GamePort;
  • UDP 27016 QueryPort;
  • UDP 9700 BlobSyncPort。

Windows防火墙示意:

New-NetFirewallRule -DisplayName "SOTF Game UDP 8766" -Direction Inbound -Protocol UDP -LocalPort 8766 -Action Allow
New-NetFirewallRule -DisplayName "SOTF Query UDP 27016" -Direction Inbound -Protocol UDP -LocalPort 27016 -Action Allow
New-NetFirewallRule -DisplayName "SOTF Blob UDP 9700" -Direction Inbound -Protocol UDP -LocalPort 9700 -Action Allow

云安全组使用同样UDP规则。启动Self Test会核对配置、获取公网IPv4并测试端口可达性;失败会停止启动,并在控制台/日志指出原因。

SkipNetworkAccessibilityTest=true只跳过网络测试,适合NAT loopback等少数环境排查。它不会打开端口,也不会让服务器自动出现在浏览器。云VPS有正常公网IPv4时,不应把跳过测试作为默认配置。

LanOnly、IPv4和多网卡

  • LanOnly=true隐藏公网列表,局域网仍需主机防火墙允许;
  • 当前官方指南说明只正式支持IPv4;
  • IpAddress=0.0.0.0通常监听所有接口;
  • 多网卡时Steam可能选择错误接口,先明确绑定和路由;
  • 同一局域网自测可能受NAT hairpin影响,外网玩家验收更可靠。

ownerswhitelist和权限

ownerswhitelist.txt每行一个Steam ID。Owner拥有最高权限,可以提升/降级管理员、踢人和封禁:

7656119XXXXXXXXXX

只加入可信账号,不在文章使用真实ID。离职、共享账号或权限变更后立即复核。公开服使用密码和权限分层,不能让所有管理员都持有Windows管理员/RDP权限。

世界与旧P2P存档迁移

服务端世界在用户数据目录Saves下。迁移旧P2P世界时,服务器世界状态和玩家本地角色状态可能位于不同位置,不能只复制一个slot就宣称完成。

最低验收:

  1. 冻结源世界并保存完整原目录;
  2. 记录文件数量、大小和SHA-256;
  3. 只在副本中调整目标目录/Steam ID;
  4. Continue启动指定slot;
  5. 原主持人和至少一名普通玩家加入;
  6. 检查建筑、箱子、NPC、季节、角色物品和权限;
  7. 正常保存、停服、重开再检查。

这篇没有完成旧世界迁移,不能提供“复制某个文件就100%成功”的保证。

备份和恢复

至少保存:

<userdatapath>\Saves\
dedicatedserver.cfg
ownerswhitelist.txt
SonsGameSettings.cfg
logs\
App 2465200 Build ID和启动脚本
Windows计划任务/服务与防火墙规则说明

闭环:

通知玩家 → 正常保存停服 → 确认进程退出
→ 归档完整userdatapath → 生成SHA-256 → 异机多代保存
→ 全新路径恢复 → 强制Continue → 客户端检查世界、NPC和角色

同盘ZIP无法抵御实例/磁盘故障。云快照和应用级目录归档互补。

更新和回退

  1. 记录当前Build ID、配置、slot和文件哈希;
  2. 正常停服并创建服务器外备份;
  3. SteamCMD更新到新release目录;
  4. 恢复世界副本,确认SaveMode=Continue
  5. 运行Self Test;
  6. 客户端加入检查建筑、NPC、权限和保存;
  7. 通过后切换生产,失败回旧程序和旧世界组合。

不要在生产启动时自动validate并覆盖唯一程序目录。

常见故障

Self Test说端口关闭

逐一核对8766、27016、9700均为UDP,检查Windows防火墙、云安全组、公网IPv4和端口冲突。不要只开GamePort。

配置无效无法启动

用PowerShell ConvertFrom-Json检查语法,再看控制台指出的字段范围。删除错误文件会重建默认值,但先保存副本。

每次重启都是新世界

立即停服,检查SaveMode是否仍是New、SaveSlot是否变化、userdatapath是否指向另一个目录。恢复最近的服务器外备份。

列表里找不到,但跳过检测能启动

跳过检测不等于公网可用。恢复false,或从外部网络验证三组端口、查询列表和客户端连接。

Owner没有权限

检查ownerswhitelist.txt路径、Steam ID、换行格式和本次进程实际userdatapath。不要把显示名当Steam ID。

FAQ

森林之子专用服务器支持Linux吗?

当前App 2465200元数据为Windows only。Wine/容器是社区兼容路线,本文未验证。

必须开放哪些端口?

默认公网配置需要UDP 8766、27016和9700;修改后以dedicatedserver.cfg和实际监听为准。

SkipNetworkAccessibilityTest可以解决端口问题吗?

不能。它只跳过自检,不会修复防火墙、公网IP或端口转发。

SaveMode用New还是Continue?

生产服用Continue。New会覆盖指定slot,长期保留有严重丢档风险。

8核16GB一定能稳定8人吗?

不能保证。这篇没有建筑/NPC/多人负载测试,配置只是采购测试起点。

购买前清单

  • Windows Server实时镜像和App 2465200当前Build;
  • 玩家地域、人数、公开/私人和密码;
  • UDP 8766、27016、9700与公网IPv4;
  • userdatapath、SaveSlot和强制Continue门禁;
  • owners与RDP权限分层;
  • 旧世界来源、角色和NPC验收;
  • SSD、日志、服务器外多代备份;
  • DDoS、扩容、退款和迁移条款。

继续阅读:云服务器配置选择海外地域怎么选测试IP与丢包安全组配置服务器备份恢复。准备好世界与玩家信息后,再到萤光云VPS产品页核对实时Windows镜像、配置、价格和库存。

赞(0)
未经允许不得转载:VPS知识分享站 » 森林之子服务器搭建:Windows、UDP端口、配置与存档