Skip to content

新增国度操作教程(当前正式环境) ​

依据 2026-09-18 正式配置及当前源码整理。109 已更新为中心自动管理版本;本教程未替管理员启用新的正式国度。

1. 本教程的部署方式 ​

保留现有主服的 PvPGN、D2DBS、MySQL、API,启用主服已有的一个备用 CS,并让新增机器上的 GS 连接它。新机器只放 GS,路径统一 D:\D2。后台和新版论坛仍连接原主服 API。

下面以 113 新增 SUPER1 为完整示例:

  • 主服:121.5.48.184;PvPGN D:\PVPGN,API D:\PVPGN\api。
  • 网站机:112.74.57.238;论坛 https://bbs.diablo2.com.cn,后台 https://gm113.diablo2.com.cn。
  • 新 GS:用 NEW_GS_IP 表示其真实公网 IP,所有示例中的此占位符必须替换。
  • 新国度:SUPER1;主服 D2CV.exe 读取 conf\d2cv.conf,端口 8116。
  • D2DBS 继续使用主服 7114,中心管理 HTTPS 21131,新 GS 游戏端口 4000。

当前 112.74.57.238 是 Linux 网站机,不能再照旧文档把它当作 Windows GS 地址。

**新增国度与扩容 GS 不同:**如果只是给已有 SUPER1 增加房间容量,只需增加该 CS/DBS 的 GS 允许 IP 并部署另一台 GS,不重复新增 realm.conf 条目。下面的新增 realm.conf 步骤用于真正增加客户端可选择的国度。

2. 可用的 CS 槽位 ​

程序 / Windows 服务配置文件(D:\PVPGN\conf)113 国度 / 端口109 国度 / 端口
d2cs.exe / d2csd2cs.confDBL / 9116,已启用CNBN / 7116,已启用
D2CV.exe / D2CVd2cv.confSUPER1 / 8116SVIP1 / 6116
D2TV.exe / D2TVd2tv.confSUPER2 / 8115SVIP2 / 6115
D2XV.exe / D2XVD2xv.confVIP / 8117SVIP3 / 6117

后三项在当前正式主服已注册为手动服务,尚未启动。使用这些已编译的独立程序,不能只复制并改名 d2cs.exe 就假定它会读取另一个配置文件。

当前 113 中心自动发现只识别这四个固定配置文件。不要自行添加第五个配置文件并认为后台会自动接入;超过现有四个槽位需要扩展实现。

3. 所需文件 ​

主服务器 ​

现有完整 D:\PVPGN 保留;新增 SUPER1 使用:

  • D:\PVPGN\D2CV.exe 及原有配套依赖。
  • D:\PVPGN\conf\d2cv.conf。
  • 修改原有 d2dbs.conf、realm.conf、address_translation.conf。
  • 原有 API 及其配置继续使用,不复制新一套数据库、账号库或主 API。

先备份上述四个配置文件,记录原来的服务状态。不要覆盖现有国度条目和既有 GS 的允许 IP。

新 GS 服务器 ​

建立 D:\D2,使用与相应版本正式服一致的完整 GS 运行文件集:

类别文件或内容
GS 程序D2GS.exe
服务程序D2GSSVC.exe;113 必须是支持自动中心管理的版本
引擎及配套文件D2Server.dll、D2GE.exe / D2GE-patched.exe、D2GEVar.dat 等匹配运行文件,以配套文件集为准
游戏 DLL包括 D2Game.dll、D2Common.dll、Fog.dll、Storm.dll 等匹配版本;保留配套文件集,不只挑这几个例子
游戏资源Patch_D2.mpq、D2Exp.mpq、D2Data.mpq,以及该运行文件集依赖的其他 MPQ / data 资源
游戏规则D2Server.ini,及其引用的掉落、商店、脚本和数据文件,如 ItemConfig.dat、d2gs.script(如该版本使用)
基础注册表模板对应版本、对应构建的 D2GS 模板,用作基础后按本教程修改;不能直接导入整台旧服务器的注册表导出

程序更新包不包含游戏客户端资源时,必须另外准备匹配的合法游戏资源;只有两个 EXE 无法组成完整 GS。

113 当前正式机的 EXE 已在 2026-09-18 修复 Fog 兼容问题及论坛域名覆盖问题。旧离线 r2 包并未自动被替换,部署新 GS 时应使用正式机当前验证过的成品或包含这些修复的新包,不能把旧包当作最新构建。

从现有 GS 准备文件集时,只复制程序、资源和规则文件,不复制下列运行状态:

  • 注册表中的 ControlState / ControlStateSession 等加密会话缓存。
  • gs-command.receipt、gs-desired.txt 等旧节点运行状态。
  • 旧节点交易流水、待处理 .txn 和已完成 .done 记录。
  • 旧服务日志、备份目录、其他机器的服务注册信息。

旧机器的交易记录应留在原处保存或处理,不因准备新机器而删除。也不需要复制主服 API 的私钥和全局 API token。

4. 主服配置:113 SUPER1 示例 ​

4.1 修改 D:\PVPGN\conf\d2cv.conf ​

在现有文件中更新对应项,不要把整个文件替换为下面这几行:

ini
realmname = "SUPER1"
servaddrs = "0.0.0.0:8116"
bnetdaddr = "127.0.0.1:6112"
gameservlist = "NEW_GS_IP"
d2gs_version = 0
require_vip = true
  • 如果本国度已有其他 GS,则 gameservlist 使用逗号分隔并保留它们。
  • 需要填写 GS 实际连接主服时的来源 IP;有 NAT 时不能只按机器网卡内网 IP 填写。
  • require_vip=true 表示只有未过期 VIP 可进入;新增免费国度改为 false。当前代码缺少此项时默认要求 VIP,所以应明确填写。
  • 国度名必须与下一步 realm.conf 的第一列完全一致。
  • 保留原有握手密码等其他配置;d2gs_password 与 GS 管理口 AdminPassword 是不同用途,不能相互代填。
  • 日志可保持现有 var/d2cv.log,确保不会与其他 CS 共用同一主日志。

SUPER1 / SUPER2 / VIP 当前是不同国度名称,不会仅凭名称自动创建不同付费等级;现有 CS 准入检查的是账号 VIP 到期时间。

4.2 修改 D:\PVPGN\conf\d2dbs.conf ​

保持原有 IP,追加新 GS:

ini
servaddrs = "0.0.0.0:7114"
gameservlist = "127.0.0.1,121.5.48.184,NEW_GS_IP"

以文件当前实际名单为准,只追加,不用示例覆盖管理员后来新增的地址。只改 CS 允许列表而漏改 DBS,会出现 GS 已连接但角色读取、进房或保存失败。

4.3 修改 D:\PVPGN\conf\realm.conf ​

保留现有免费国度,追加一行:

text
"DBL" "CNBN 1.13 Free Realm" 127.0.0.1:9116
"SUPER1" "CNBN 1.13 SUPER1" 127.0.0.1:8116

这里的 127.0.0.1 用于同机 PvPGN / CS 的内部认证与连接,下一步负责给玩家发布公网地址。无需为新国度建立新的账号数据库。

4.4 修改 D:\PVPGN\conf\address_translation.conf ​

保留现有条目,增加 CS 的公网映射:

text
127.0.0.1:8116 121.5.48.184:8116 NONE ANY

远端 GS 必须向玩家发布 NEW_GS_IP:4000。如果 CS 已识别到公网 NEW_GS_IP、游戏实际也监听 4000,则不重复添加转换。存在内网 / NAT / 端口映射时,按日志中的 GS 原地址和玩家实际可访问的地址补转换:

text
GS_ORIGINAL_IP:4000 NEW_GS_IP:4000 NONE ANY

GS_ORIGINAL_IP 也是占位符,必须据实际地址填写。不要把全部 GS 一律转换成主服 121.5.48.184:4000;那会把其他国度玩家送去错误 GS。

5. 新 GS 注册表与服务 ​

5.1 注册表位置 ​

  • 64 位 Windows:HKLM\SOFTWARE\WOW6432Node\D2Server\D2GS。
  • 32 位 Windows:HKLM\SOFTWARE\D2Server\D2GS。

先使用对应版本的基础模板,再改以下字段。所有数字按十进制列出;注册表编辑器修改 DWORD 时要选择“十进制”。

名称类型113 SUPER1 示例
D2CSIPREG_SZ121.5.48.184
D2CSPortREG_DWORD8116
D2DBSIPREG_SZ121.5.48.184
D2DBSPortREG_DWORD7114
ListenAddrREG_SZ0.0.0.0
ListenPortREG_DWORD4000
AdminPortREG_DWORD8888
AdminPasswordREG_SZ与 113 主服中心管理密码配套的 40 位 Battle.net 哈希
ServerConfFileREG_SZD2Server.ini
MaxGamesREG_DWORD例如 100,根据机器容量设置
MaxPreferUsersREG_DWORD沿用当前设置;当前主服为 0

AdminPassword 可从当前 113 主服同一注册表项复制该单项值;不要复制旧压缩包里可能已过期的默认密码,也不要自行用普通 SHA-1 算法生成。中心明文密码保存在 D:\PVPGN\api\api.env 的 D2113_D2GS_ADMIN_PASSWORD,两者必须配套。

新 GS 的 D2CSIP 必须指向主服;113 守护程序据它连接 HTTPS 21131。不能写 127.0.0.1,也不能写带 https:// 或 :端口 的 URL。

5.2 注册 Windows 服务 ​

先以管理员身份打开 CMD,检查是否已有服务:

bat
sc query D2GS

只有返回 1060、确认尚未安装服务时,执行:

bat
sc create D2GS binPath= D:\D2\D2GSSVC.exe start= auto
sc description D2GS "Diablo II Game Server"

如果已有服务,先查看现有路径:

bat
sc qc D2GS

仅在已正常停止旧服务及游戏进程后,按需要修正路径:

bat
sc config D2GS binPath= D:\D2\D2GSSVC.exe start= auto

不要在 GS 专用机器运行主服 Install.cmd。该安装器负责完整主服安装,旧版还会使用 PVPGN\gs,不能用于这里的 D:\D2 单 GS 接入。

113 当前守护程序在未设置论坛环境时默认使用 bbs.diablo2.com.cn、443、HTTPS、/d2113/d2113.php,中心连接成功后下发节点专用商店凭据。若这是复用的旧机器,应检查 HKLM\SYSTEM\CurrentControlSet\Services\D2GS 的 Environment,清理或修正冲突的旧论坛地址;不要把原服务其他有效环境变量整项覆盖掉。

当前版本按一个 Windows 实例一个 D2GS 服务 / 固定注册表路径部署。不要在同一系统复制多个目录就尝试并行运行多个国度 GS;本教程的新 GS 应为独立机器或独立虚拟机。

6. 网络与启动顺序 ​

必须连通的方向 ​

源目的TCP 端口用途
玩家主服 121.5.48.1846112、8116登录和 SUPER1 国度
玩家NEW_GS_IP4000进入游戏房间
NEW_GS_IP主服 121.5.48.1848116、7114CS、角色存档
NEW_GS_IP主服 121.5.48.18421131113 中心自动管理
新 GSbbs.diablo2.com.cn443游戏内新版交易 / 商店
网站机 112.74.57.238主服 121.5.48.18421131原有后台及论坛 API 调用

同时检查云安全组和 Windows 防火墙。主服现有 API 防火墙规则只允许既有来源时,需增加 NEW_GS_IP。DBS 7114 与中心 API 21131按用途限定来源。113 自动控制由 GS 主动连接中心,远端无需向公网开放 SSH 22 或 GS 管理 8888。

先完成配置与放行,再安排维护时间应用共享服务配置:

  1. 正常保存并退出受影响的游戏会话;备份原配置。
  2. 让 bnetd 重新读取 realm.conf / address_translation.conf,让 d2dbs 重新读取允许名单;没有经过确认的热加载方式时安排正常重启。它们是共享服务,重启会影响原国度,不能在玩家游戏中随意操作。
  3. 主服管理员 CMD 启用新 CS:
bat
sc config D2CV start= auto
net start D2CV
sc query D2CV
  1. 新 GS 管理员 CMD:
bat
cd /d D:\D2
D2GS.exe --check-runtime
D2GSSVC.exe --check-connection
net start D2GS
sc query D2GS
D2GSSVC.exe --check-admin

这些 --check 参数针对当前支持它们的 113 构建,不能默认适用于老版本 EXE。runtime 检查通过只说明加载检查成功,不等于已能建房。

中心连接应返回 HTTP 200、TLS error 0、verify flags 0。证书出错时检查主服地址、系统时间和配套构建,不通过关闭校验处理。CS / DBS 连接和建房仍需分别验证。

7. 接入 113 后台 ​

现有后台仍使用 D2_API_BASE=https://121.5.48.184:21131,不改成 NEW_GS_IP。

自动接入条件:

  1. 主服 conf\d2cv.conf 的 servaddrs 包含 8116,gameservlist 包含新 GS 实际来源 IP。
  2. GS 的 D2CSIP / D2CSPort 正确,AdminPassword 与中心管理密码匹配。
  3. GS 能访问主服 HTTPS 21131,证书校验成功。
  4. GS 运行当前自动管理版 D2GSSVC.exe。

中心每次读取已有 CS 配置识别来源和所属国度;无需建立 gs-node.ini、额外节点名单或手工生成 token。后台在“服务运维”的中心 GS 节点区域应出现新节点,可先下发 status 验证回执。

身份按“GS 实际来源 IP + D2CS 端口”区分。同一公网出口、相同 CS 端口的两个独立 GS 会冲突;不能仅复制同一配置到第二台机器就认为身份独立。

**当前运维范围的区别:**GS 自动出现不等于 D2CV.exe 本身自动加入后台 CS 服务列表。当前默认主服运维列表只内置 d2cs,额外 D2CV / D2TV / D2XV 的启停可用 Windows 服务管理或上述命令。若要求后台也自动发现并管理全部 CS,需要补齐该功能;本教程不引入额外 topology / 节点登记文件来绕过这个差异。

8. 接入论坛交易、VIP、自助服务 ​

同一 113 主服下的新国度共用账号及 D2DBS 存档,因此论坛新版交易仍调用原 API,不为新国度建独立交易数据库,不把 BBS API 地址改到 GS。

保持现有配置:

新 GS 无需复制全局 API_WRITE_TOKEN / API_SIGNING_KEY。113 自动守护程序取得的是节点专用商店凭据;不是把整个 API 管理权限发给 GS。

仍需确认以下业务配置:

功能必要条件
VIP 国度进入require_vip=true;账号在对应版本有未过期的 VIP,必要时退出并重新登录游戏刷新身份
网页交易 / 自助用户绑定正确版本游戏账号;套餐启用且发布;币种、价格、适用模式与角色条件正确
游戏内商店GS 成功取得节点商店凭据;论坛商店功能启用,并授权相应论坛用户组
存档 / 道具处理所有相关 GS 连接同一主服 D2DBS;API 指向正确版本的共享存档;新增国度的道具数据和存档格式兼容

当前记录:109 已恢复 20 个自助套餐,使用 109 游戏币 38;113 自助套餐为空,旧快照恢复方案仍待管理员确认。新增国度或网络接通本身不会自动发布套餐,也不会自动开放游戏内商店用户组。

如果新国度使用完全不同的自定义道具 MPQ / 编码,仅接通网络不能保证交易解析兼容,需要同步检查主服 API 的物品数据表,不能默认套用另一套 MOD 的交易解析。

建议使用专用测试账号和角色,先测试登录、建房、退出保存,再测试低额自助或可退回的托管流程;核对扣币、物品/服务结果和订单状态,失败时先看回执,不连续重复提交。旧版论坛交易脚本保持原配置和代码。

9. 109 独立 GS:与 113 一致的自动管理方式 ​

109 已同步中心自动发现、HTTPS 心跳、命令回执、角色定位和节点专用商店凭据。新 GS 不安装 API,不建节点登记文件,不复制全局论坛/API 密钥。

以下以 独立机器上的 109 SVIP1 GS 为例;这些 IP 都填写主服地址,不能照抄主服本机的 127.0.0.1:

配置项必填值 / 位置
GS 安装目录 / 服务程序D:\D2 / D:\D2\D2GSSVC.exe
游戏程序D:\D2\D2GS.exe,使用 109-auto-r1 配套构建
GS 注册表 D2CSIP8.137.127.175
GS 注册表 D2CSPort6116(SVIP1);免费 7116,SVIP2 6115,SVIP3 6117
GS 注册表 D2DBSIP / D2DBSPort8.137.127.175 / 6114
GS ListenAddr / ListenPort0.0.0.0 / 4000
GS AdminPort8888,本机管理使用
GS AdminPassword与 109 主服中心密码配套的 40 位 Battle.net 哈希
GS ServerConfFileD2Server.ini,文件放在 D:\D2
GS MaxGames / MaxPreferUsers按本机容量配置;当前主服为 100 / 0
中心 HTTPS自动连接 8.137.127.175:21091;地址取 D2CSIP,无需另填中心 URL
论坛默认地址bbs.diablo2.com.cn:443/d2109/d2109.php
所需游戏资源完整配套 109 游戏 DLL、MPQ、规则数据;不能混用 113 文件

主服 D:\PVPGN\conf\d2cv.conf 的关键配置:

ini
realmname = "SVIP1"
servaddrs = "0.0.0.0:6116"
bnetdaddr = "127.0.0.1:6112"
gameservlist = "NEW_GS_IP"
d2gs_version = 17367553
require_vip = true

109 的 d2gs_version 不能使用 113 的 0。 在 d2dbs.conf 的 gameservlist 保留原 IP 并追加 NEW_GS_IP。realm.conf 追加:

text
"SVIP1" "CNBN 1.09 SVIP1" 127.0.0.1:6116

address_translation.conf 追加 CS 公网映射,必要时再配置 GS 自身 NAT 映射:

text
127.0.0.1:6116 8.137.127.175:6116 NONE ANY

所需连接方向:玩家到主服 6112/6116、玩家到独立 GS 4000;独立 GS 到主服 6116/6114/21091;独立 GS 到论坛 HTTPS 443。云安全组已有全端口服务器白名单时,沿用该白名单,仍需核对 Windows 防火墙包含新 GS 来源。远端无需为中心管理开放公网 22 或 8888。

后台 D2_API_BASE 和论坛 D2109_API_BASE 均为 https://8.137.127.175:21091。网站端 CA 文件为 /config/api109-ca.pem,分别通过 D2_API_CA_CERT、D2109_API_CA_CERT 指定。原 HTTP 21090 仅供本机维护。

新 GS 环境变量通常无需填写。若要覆盖论坛地址,使用 D2GS 服务 Environment 中的 D2109_FORUM_HOST、D2109_FORUM_PORT=443、D2109_FORUM_PATH=/d2109/d2109.php。中心自动下发商店凭据,不要求人工填写 D2109_FORUM_INTERNAL_TOKEN。注意修正旧机器残留的论坛地址覆盖值。

新安装与更新分别操作:

  • 新安装:先准备完整 D:\D2 文件和基础注册表,再执行 sc create D2GS binPath= D:\D2\D2GSSVC.exe start= auto;检查中心连接后启动。
  • 更新已有 GS:正常保存并停止服务、确认 D2GS.exe 已退出,在单独解压目录执行新包 Update-GS.cmd。脚本校验、备份并替换程序,不覆盖游戏规则和现有控制参数;成功后按提示启动。
  • 更新包不含客户端游戏资源;GS-32.reg.example / GS-64.reg.example 需先填写正确主服、端口和管理哈希,不能原样导入。
  • 不复制旧机器 ControlState、gs-command.receipt 或交易流水;旧机器待处理交易在原处核对处理。

管理员 CMD 验证:

bat
cd /d D:\D2
D2GS.exe --check-runtime
D2GSSVC.exe --check-connection
net start D2GS
D2GSSVC.exe --check-admin

然后在 gm109 的中心 GS 节点区域读取 status,核对 CS/DBS 连接和容量,并做真实建房、进房、保存检查。守护程序在线与游戏成功激活是两个状态,不能只看 Windows 服务 Running。

网页交易、VIP、自助仍使用同一 109 主服的账号和存档;现有 20 个自助套餐及游戏币 38 不因新增 GS 而改变。游戏内商店仍须满足论坛用户组授权等条件,自动接入不会自动开放购买权限。

同一出口 IP + 同一 CS 端口的节点身份限制与 113 相同;额外 D2CV/D2TV/D2XV 的后台启停列表限制也与第 7 节相同。

10. 验收与常见问题 ​

现象优先检查
登录后看不到新国度realm.conf 是否追加;realmname 是否完全一致;CS 是否启动并通过 bnetd 认证;PvPGN 是否重载
VIP 账号进不去对应版本 VIP 到期时间、require_vip、重新登录;不能只看论坛用户组名称
可以进入国度但建房一直排队对应 CS 是否有已认证 GS;GS 是否选对 CS 端口;gameservlist;109 d2gs_version;实际房间容量
房间创建了但进不去客户端收到的 GS 公网 IP/端口、4000 防火墙/NAT、D2DBS 允许列表与连通性
游戏正常但 109 / 113 后台无节点109 的 21091 / 113 的 21131、管理密码哈希、CS 配置中实际来源 IP、D2GSSVC 版本、重复节点身份
后台有 GS 但没有 D2CV 启停项当前 CS 服务列表不会跟随新国度自动扩展,参见第 7 节限制
后台在线但游戏内购买失败节点商店凭据、论坛 443、商店用户组授权、账户绑定、币种与套餐配置
只看到启动成功但不能保存检查 GS 到主服 DBS;实际创建角色、退出游戏再登录确认,不以 sc query RUNNING 代替业务验收

新增成功应同时满足:国度可见、准入规则正确、建房进房正常、退出能保存、后台 GS 控制有成功回执(109 / 113)、所需交易流程完成且无重复扣款。不要以中心连接成功代替全部验收。

新增 GS 时保留主服既有白名单与国度条目;账户、存档、订单仍按 109 / 113 分隔。

仅供 CNBN D2 服务管理与开发人员使用