先说结论:僵尸毁灭工程服务器搭建首先要选对版本分支。用于长期世界时,默认应选择当前稳定版 Build 41;Build 42 多人功能仍属于 unstable 测试分支,应使用独立测试实例、独立服务器名和独立备份,不能直接拿唯一生产存档试升级。当前服务器主要使用 UDP 16261 和 UDP 16262,旧教程中的 8766/8767 是早期版本信息。
本文用 64 位 Linux、SteamCMD 和稳定版讲解从安装、首次管理员密码、配置、端口、模组、存档、更新到恢复的完整流程,并单独说明 Build 42 测试边界。
适合谁:需要为固定好友或社区建立长期 Knox Country 世界,并希望自己控制沙盒规则、模组和存档的管理员。
最重要的原则:稳定服与 Build 42 测试服隔离;模组、服务端更新和存档迁移每次只变一类,并且先备份、后验证。
稳定版Build 41还是Build 42?
| 分支 | 适合用途 | SteamCMD方式 | 风险 |
|---|---|---|---|
| 稳定版 Build 41 | 长期好友服、正式社区服 | app_update 380870 validate |
模组仍需核对版本,但总体更适合生产 |
| Build 42 unstable | 体验新功能、测试模组与迁移 | app_update 380870 -beta unstable validate |
多人仍在测试,版本与存档可能变化 |
如果目标是“明天开一个稳定长期服”,不要因为 Build 42 更新就直接切 unstable。正确做法是复制必要数据到另一台或另一目录测试,保留稳定服和最后可恢复备份。
僵尸毁灭工程服务器需要什么配置?
| 场景 | 建议测试起点 | 重点观察 |
|---|---|---|
| 2–4人原版/少量模组 | 2–4 核、4–8GB、SSD | 启动、区块加载、保存、僵尸数量 |
| 5–12人长期世界 | 4 核、8–16GB、SSD | 玩家分散、车辆、地图扩展、模组和内存 |
| 大型模组社区服 | 从小规模实测逐步扩容 | Java内存、GC、磁盘、模组冲突和备份窗口 |
内存取决于玩家数、地图、僵尸与物品设置、模组和 Java 参数。不要复制网络上的固定“每人多少内存”公式。先用真实沙盒规则和模组清单压测,再参考云服务器配置选择方法调整。
准备Linux账号与目录
官方 Wiki 示例使用独立 pzuser 运行服务器,并把程序安装到 /opt/pzserver。不要以 root 身份长期运行游戏。开始前准备:
- 当前受支持的 64 位 Linux 与 SteamCMD 运行依赖;
- 独立普通用户、固定安装目录和足够 SSD 空间;
- 公网 IPv4、云安全组与系统防火墙权限;
- 服务器名称、管理员密码和玩家访问策略;
- 模组 ID/Workshop ID 清单及来源记录;
- 服务器之外的备份目标。
不要为了“方便自动启动”先照抄任意 systemd 服务。PZ 官方 Wiki 对部分 systemd 停服方式提出警告,不能保证所有情况下都安全保存;先验证正常停服与恢复,再设计进程管理。
使用SteamCMD安装稳定版服务器
Project Zomboid Dedicated Server 的应用 ID 是 380870。进入 SteamCMD 后,可以把安装目录设为 /opt/pzserver,登录匿名账号并安装稳定版:
force_install_dir /opt/pzserver
login anonymous
app_update 380870 validate
quit
也可以在命令行一次执行等价参数。安装目录必须允许 pzuser 读写。更新程序目录与世界数据目录分开,能减少误删和覆盖风险。
首次启动和管理员密码
切换到游戏运行用户并进入安装目录,使用固定服务器名启动:
bash start-server.sh -servername MyPZServer
第一次运行会要求设置管理员密码,并创建配置与世界目录。服务器名会进入多个文件名和存档路径,正式上线后不要随意更改,否则可能看起来像“生成了新世界”。密码应足够长且唯一,不与 SSH 或其他后台共用。
首次生成文件后,使用服务器控制台的正常保存与退出流程停服,再编辑配置。不要在世界运行时直接覆盖核心配置或存档。
配置文件和存档在哪里?
以服务器名 MyPZServer 为例,Linux 用户目录下的重要路径包括:
~/Zomboid/Server/MyPZServer.ini:服务端网络、人数和访问等设置;~/Zomboid/Server/MyPZServer_SandboxVars.lua:僵尸、时间、资源等沙盒规则;~/Zomboid/Saves/Multiplayer/MyPZServer:多人世界存档;- 数据库与模组相关文件:以当前服务器生成目录为准,一并纳入备份。
修改 Lua 文件时注意逗号、引号和允许值。每次只改一组规则,启动后观察日志并实际进服。不要同时改变僵尸数量、地图、模组和 Java 内存,否则发生卡顿时很难定位。
当前版本需要开放哪些端口?
| 用途 | 端口 | 协议 | 说明 |
|---|---|---|---|
| 主服务器通信 | 16261 | UDP | 向玩家开放 |
| 直接连接 | 16262 | UDP | 按当前官方说明开放 |
| SSH管理 | 以系统配置为准 | TCP | 仅管理员固定来源或VPN |
| 旧版Steam端口 | 8766/8767 | 旧资料 | 适用于41.77之前,不应照抄到当前配置 |
云安全组和 Linux 防火墙都要使用 UDP。连接失败时不要直接关闭全部防火墙,先确认服务端进程确实监听 16261/16262,再逐层检查公网 IP 与规则。
玩家、模组与存档的关系

玩家通过公网 UDP 端口进入服务器,服务端读取 INI、SandboxVars 和模组清单,再持续写入多人世界。Workshop 下载只是取得模组文件,WorkshopItems 与 Mods 仍要正确对应;任何模组升级都可能影响玩家连接和现有世界。
首次外网连接怎样验证?
- 观察启动日志,确认世界初始化完成;
- 确认 UDP 16261 与 16262 的监听和两层防火墙;
- 从另一网络使用公网 IP 加入;
- 创建角色、拾取物品、进入建筑并等待保存;
- 通过控制台正常保存并退出;
- 重启后确认角色、物品、时间和世界状态保留;
- 使用普通玩家身份验证管理权限不可用。
若认证或加入失败,先核对客户端/服务端分支。稳定版客户端不能按默认预期加入 Build 42 unstable 服务器,模组版本不一致也会导致下载循环或连接中断。
服务器模组怎样添加才容易维护?
先在测试服验证模组,再把经过确认的 Workshop ID 和 Mod ID 写入服务器配置。常见字段为 WorkshopItems 与 Mods,两者用途不同,顺序和依赖也可能影响加载。
- 记录模组名称、Workshop ID、Mod ID、依赖和适用 Build;
- 一次增加少量模组,启动并检查日志;
- 用全新玩家和已有玩家分别连接;
- 验证地图、车辆、物品和配方是否正常;
- 备份后再将相同清单应用到生产服;
- 更新后若异常,先按最近变更逐个回退。
删除包含地图、物品或职业数据的模组可能破坏现有存档。决定下线模组前查阅作者说明,并在生产副本上完成恢复测试。
怎样单独测试Build 42?
Build 42 unstable 使用:
app_update 380870 -beta unstable validate
测试环境必须使用不同安装目录、-servername、端口和备份目标,不能让稳定版与 unstable 同时指向同一活动存档。迁移前阅读当前 Build 42 官方说明和模组兼容状态,保留未经转换的稳定版世界。
测试结论至少包括:能否创建角色、多人同步、保存重启、地图与车辆、目标模组、内存峰值和恢复。任何一项不满足,就继续保留稳定生产服。

稳定版服务器怎样更新?
- 通知玩家并禁止新的连接;
- 在服务端控制台执行保存并正常退出;
- 备份
~/Zomboid/Server、多人存档、数据库与模组清单; - 执行稳定版更新:
app_update 380870 validate
- 检查模组及依赖是否支持新版本;
- 启动测试并检查日志;
- 管理员进入,完成保存和重启后再开放。
服务端和 Workshop 模组可能在不同时间更新。无维护窗口的自动更新容易造成半夜全员无法连接,因此正式服应采用“检测更新—备份—验证—发布”的流程。
备份和恢复哪些内容?
至少备份 ~/Zomboid/Server、~/Zomboid/Saves/Multiplayer/<servername>、相关数据库、模组清单、启动参数和服务端版本。运行目录可以从 SteamCMD 重建,但世界和配置不能只靠重新下载恢复。
- 正常停服后创建应用一致性备份;
- 更新、加减模组、切换 Build 和大改沙盒规则前额外备份;
- 至少一份副本存放在服务器外部;
- 保留多代并标记稳定版/Build 42;
- 在隔离环境恢复,实际进服验证角色与世界。
常见故障排查
| 现象 | 优先检查 | 常见根因 |
|---|---|---|
| 公网连接超时 | 进程、UDP 16261/16262、两层防火墙 | 协议写成TCP或端口未监听 |
| 服务器生成新世界 | servername、启动用户和存档路径 | 换了服务器名或用户目录 |
| 模组下载循环 | WorkshopItems、Mods、依赖与版本 | ID不对应或客户端缓存旧版本 |
| 更新后无法加入 | 稳定/unstable分支、客户端、模组 | 分支或模组版本不一致 |
| 强制重启后存档异常 | 日志、最近备份、停服方式 | 写盘期间被直接终止 |
正式开放前检查清单
- 正式服使用稳定 Build 41,Build 42 为隔离测试;
- 服务器以独立普通用户运行;
- 固定 servername、安装目录和数据目录;
- UDP 16261/16262 在安全组和系统防火墙中一致;
- 管理员密码与普通玩家权限已验证;
- 模组 ID、依赖、版本和回退方案有记录;
- 外网能进服、保存、正常停服和重启;
- 配置、世界、数据库和模组清单已异地备份;
- 至少完成一次隔离恢复;
- CPU、内存、Java、磁盘、进程和备份失败有监控。
僵尸毁灭工程服务器搭建前,怎样选择云服务器?
先确定稳定版还是测试版、目标同时在线、地图和模组清单,再从 2–4 核、4–8GB、SSD 的小型原版或少量模组环境开始验证。长期模组服应根据 Java 内存、区块加载、保存时间和玩家分散程度扩容,而不是只依据人数。
可在萤光云 VPS 地域与配置页查看实时可售节点,并用玩家位置与线路选择方法缩小地域范围。库存、价格、线路、流量、系统镜像和退款规则以产品页和控制台为准。







