森林之子开服最容易丢档的配置不是端口,是 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\

通过-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是最高风险门禁

官方定义:
Continue:slot存在就加载,不存在就创建;New:创建新Game ID并覆盖指定slot;只要保持New,后续重启继续覆盖。
安全流程:
- 第一次新建测试世界时可临时使用New;
- 确认世界创建后正常停服;
- 立即改为Continue;
- 保存配置哈希和世界副本;
- 重启确认加载原slot;
- 生产门禁拒绝
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就宣称完成。
最低验收:
- 冻结源世界并保存完整原目录;
- 记录文件数量、大小和SHA-256;
- 只在副本中调整目标目录/Steam ID;
- 以
Continue启动指定slot; - 原主持人和至少一名普通玩家加入;
- 检查建筑、箱子、NPC、季节、角色物品和权限;
- 正常保存、停服、重开再检查。
这篇没有完成旧世界迁移,不能提供“复制某个文件就100%成功”的保证。
备份和恢复
至少保存:
<userdatapath>\Saves\
dedicatedserver.cfg
ownerswhitelist.txt
SonsGameSettings.cfg
logs\
App 2465200 Build ID和启动脚本
Windows计划任务/服务与防火墙规则说明
闭环:
通知玩家 → 正常保存停服 → 确认进程退出
→ 归档完整userdatapath → 生成SHA-256 → 异机多代保存
→ 全新路径恢复 → 强制Continue → 客户端检查世界、NPC和角色
同盘ZIP无法抵御实例/磁盘故障。云快照和应用级目录归档互补。
更新和回退
- 记录当前Build ID、配置、slot和文件哈希;
- 正常停服并创建服务器外备份;
- SteamCMD更新到新release目录;
- 恢复世界副本,确认
SaveMode=Continue; - 运行Self Test;
- 客户端加入检查建筑、NPC、权限和保存;
- 通过后切换生产,失败回旧程序和旧世界组合。
不要在生产启动时自动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镜像、配置、价格和库存。







