属于大家的
VPS知识分享站

DayZ服务器搭建:Linux、端口、模组与持久化

DayZ 开服,难点不是让进程启动,是客户端版本、地图任务、Workshop 模组、BattlEye 签名和持久化数据始终在同一组合里。这篇按 2026年8月3日 Bohemia 官方资料和 Steam AppInfo 整理,适合运营朋友服、求生社区服或带模组的长期世界。

我核验了官方 Linux 托管路线、App 223350、public Build 24041098、serverDZ.cfg 字段、启动参数、Workshop App 221100、模组路径和正常停服要求;没有实际下载或运行服务端。

DayZ现在可以用Linux开服吗

可以。旧教程常把DayZ专用服务器写成Windows限定,但Bohemia当前已维护正式的DayZ Linux Server托管指南,稳定版仍使用App 223350。因此,如果你熟悉systemd、文件权限和脚本运维,Linux可作为默认选项;如果你的现有工具链、服务端管理器或特定模组流程依赖Windows,则继续使用Windows。

选系统不要只看“能不能运行”,要看谁来维护。Linux通常更容易实现最小权限、定时备份和日志轮转;Windows的桌面工具对不熟悉命令行的管理员更友好。两者最终都要通过同一组进服、停服、备份和恢复验收。

DayZ服务器搭建前选择Linux版本、网络、Workshop模组、存档和配置的决策图

配置怎么选

DayZ是持续世界、大地图、实体和中央经济系统共同驱动的游戏,CPU单核时间、内存、磁盘写入和模组脚本都会影响体验。不要把官方maxPlayers=60理解为某一个VPS必然承载60人。这只是配置上限,不是容量承诺。

采购时先固定四个变量:地图(Chernarus、Livonia或其他地图)、目标同时在线人数、模组数量与类型、世界经济和建筑的长期增长。作为测试起点,纯原版朋友服可从4核、8GB内存和SSD开始;带大量模组、高战利品量或大型建筑的社区服应提高内存与CPU余量。这些是建立样本的起点,还要根据RPT中的平均FPS、内存、玩家登录峰值和实际世界数据调整。

推荐目录结构

程序、配置、持久化数据和备份要分开:

/srv/dayz/
├── app/                 # App 223350程序
├── config/              # serverDZ.cfg、BattlEye和参数清单
├── profiles/            # RPT、管理日志、RCON相关数据
├── missions/            # 当前任务模板的工作副本
├── workshop/            # 固定Workshop项与签名密钥
├── manifests/           # Build、模组ID、顺序和哈希
└── backups/             # 不由游戏进程直接覆盖

可以不完全采用这些路径,但要保持同样的责任分离。SteamCMD validate可能改写官方文件,不应让它成为你唯一的配置和任务备份。每个实例还要有独立instanceId、profiles、端口和storage路径。

DayZ玩家通过UDP连接Linux专用服及serverDZ配置、模组和持久数据目录的架构

安装App 223350

Linux官方指南使用具有DayZ许可的Steam账号,而不是笼统写成任何人都能匿名下载:

steamcmd \
  +force_install_dir /srv/dayz/app \
  +login YOUR_STEAM_LOGIN \
  +app_update 223350 validate \
  +quit

不要把Steam账号密码写进可公开读取的systemd unit、Git仓库或文章截图。更稳妥的方法是把下载/更新作为受控的维护任务,服务端进程本身使用无登录凭据的低权限用户运行。

安装后先记录实际Build ID和程序文件清单,不要立即往程序目录覆盖模组。先用原版任务验证基线,再逐批加模组,故障定位会简单很多。

端口怎么开

Bohemia的官方示例同时出现过-port=2301-port=2302,并在serverDZ.cfg中给出steamQueryPort=2305clientPort=2304。这意味着你必须以自己的实例配置为准,不能把网上不同教程的端口混在一起。

建议为单实例固定一组端口规则,例如游戏端口以2302开始,查询端口为2305,然后用ss -lunp、云安全组、主机防火墙和外部查询四处交叉验证。如果同机运行多实例,每一组都要分离,并在manifests中记录映射。

不要向全网开放BattlEye RCon、SSH或其他管理端口。RCon只对管理员固定IP、VPN或安全跳板可达,密码单独保管。

serverDZ.cfg最小起点

下面只保留决定服务器身份、安全和任务的字段:

hostname = "CHANGE_ME_DayZ_Server";
description = "Persistent survival world";
password = "";
passwordAdmin = "CHANGE_ME_ADMIN_PASSWORD";

maxPlayers = 20;
verifySignatures = 2;
forceSameBuild = 1;
enableWhitelist = 0;

instanceId = 1;
storageAutoFix = 1;
steamQueryPort = 2305;

class Missions
{
    class DayZ
    {
        template = "dayzOffline.chernarusplus";
    };
};

storageAutoFix=1可在检测到持久化文件损坏时用空数据替换损坏数据。这有助于恢复启动,但也意味着不能把“服务器又起来了”当成世界数据完整。必须同时有外部多代备份、日志告警和玩家标记验收。

verifySignatures=2是官方当前支持的签名验证值。不要因为某个模组签名错误就直接关闭全局验证;先检查mod顺序、keys目录、客户端版本和模组发布者的当前签名。

启动服务端

Linux官方路线的结构如下:

cd /srv/dayz/app
./DayZServer \
  -config=/srv/dayz/config/serverDZ.cfg \
  -port=2302 \
  -BEpath=/srv/dayz/config/battleye \
  -profiles=/srv/dayz/profiles \
  -storage=/srv/dayz/missions/storage \
  -dologs -adminlog -netlog -freezecheck

首次启动先不加模组,检查RPT、任务模板、实际socket、BattlEye与Steam列表。-freezecheck会在服务器冻结超过官方定义时间时停止并产生dump,它是可观测性辅助,不是自动修复。

如用systemd,进程用普通用户,ExecStop 发送官方指南使用的SIGINT,留出写入时间,而不是一开始就kill -9。自动重启只对异常退出生效,不在无限崩溃循环中覆盖有价值的日志。

Workshop模组怎么管

DayZ模组的Workshop项隶属消费端App 221100,官方Linux示例用Steam账号下载item,再将目录和keys/中的签名密钥引入服务端。生产上不要把所有Workshop目录无差别mount;维护一份有顺序的清单:

1559212036  Community Framework  client-visible
1564026768  Community Online Tools  client-visible

启动参数中,客户端也必须安装的模组用-mod;只在服务端运行、不传给客户端的才用-serverMod。分类错误会造成客户端缺内容、签名失败或把本应私有的服务端组件暴露给客户端。

每次更新先在预发副本下载,检查模组依赖、keys、启动日志和客户端进服,然后在维护窗口切换。对长期社区服,“最新”不等于“已验收”。

持久化与备份

DayZ世界备份要在正常停服后保护一组状态:

  • serverDZ.cfg、启动参数与端口映射;
  • 当前mpmissions/<MissionName>.<TerrainName>工作副本;
  • 对应instanceId的storage/persistence数据;
  • profiles中的RPT、管理和运行参数证据;
  • Workshop ID、顺序、版本/哈希和keys;
  • BattlEye/RCon配置的脱敏清单,秘密单独恢复。

备份完成后计算清单哈希,至少保留多个时间点且存在服务器以外。恢复不是解压成功就结束;要在全新目录中安装同Build和同模组组合,读取原世界,用测试角色检查物品、建筑、车辆和经济状态。

更新和回退

将更新拆成三个版本:游戏服务端Build、任务/经济配置版本、Workshop组合版本。任何一项变更都可以导致进服或世界状态异常,所以不在生产存档上原地尝试。

标准流程是:正常停服→完整备份→复制到预发→更新程序与模组→启动日志验收→客户端进服→保存重开→切换。回退时恢复整组组合,不要只恢复一个storage目录却保留新模组。

常见故障

服务器进程存在,列表里找不到

先检查实际-portsteamQueryPort,再检查云安全组、主机防火墙、socket监听和外部A2S。不要只在服务器内部对localhost测试。

玩家提示版本或模组不一致

对比服务端Build、客户端revision、forceSameBuild、有序模组清单和每个Workshop item的当前状态。检查keys是否属于本次下载的模组,而不是从旧备份混入。

重启后世界像新服

检查instanceId、任务template、-storage路径和当前用户权限。如果启用storageAutoFix,还要查日志是否因损坏而生成空数据,不要继续运行并覆盖最后一份好备份。

进程占满CPU

先看RPT中平均FPS、登录峰值、实体生成与模组脚本,再看单核是否饱和。官方支持-limitFPS用于降低低人数服务器的CPU消耗,但不能用它掩盖真实高峰处理不足。

FAQ

DayZ Linux服务器可以匿名下载吗

本轮官方Linux指南使用Steam账号登录,未实际执行下载,因此不把匿名下载写成已确认能力。上线前用实际有许可的账号验收。

DayZ服务器需要开哪些端口

以你的-portsteamQueryPortclientPort和BattlEye/RCon配置为准。官方示例中常见2301/2302起点与2305查询端口,但最终要看实际socket和外部连接,不照抄大段防火墙范围。

只备份storage可以吗

不够。世界数据需要与游戏Build、任务模板、经济配置、模组版本与顺序绑定恢复。

购买前清单

选购YGCloud VPS前,准备下列输入:

  1. Linux还是Windows,谁负责日常运维;
  2. 主地图、目标并发玩家和峰值登录量;
  3. Workshop ID、依赖顺序、服务端模组与客户端模组分类;
  4. 当前世界数据大小、日增长和备份保留周期;
  5. 玩家主要地区和测试IP的路由/抖动/丢包数据;
  6. 是否需要多实例、预发服和独立备份容量。

配置可以参考VPS配置选择方法,地域不要只看机房名称,应结合玩家位置、路线与业务来选,并在购买前对测试IP进行Ping、路由和丢包测试

赞(0)
未经允许不得转载:VPS知识分享站 » DayZ服务器搭建:Linux、端口、模组与持久化