Appearance
BNetD / PvPGN 配置
配置文件:runtime/pvpgn-<profile>/conf/bnetd.conf。BNetD 负责账号、登录、频道、聊天命令、国度列表和客户端文件服务。路径必须指向当前 profile,修改后通常重启 BNetD。
存储与文件
| 参数 | 中文说明 |
|---|---|
storage_path | 账号存储驱动及连接串。file: 指定账号/战队目录,sql: 指定数据库、用户、密码和表前缀。两个版本不得指向同一账号目录。 |
filedir | 向客户端提供的下载文件目录,例如广告 SMK/BNI;缺失资源会导致旧客户端等待超时。 |
scriptdir | Lua 脚本目录。 |
reportdir | 游戏报告输出目录。 |
chanlogdir | 频道聊天日志目录。 |
userlogdir | 用户日志目录。 |
i18ndir | 多语言资源根目录。 |
issuefile | 登录问题/公告文本文件。 |
channelfile | 预定义频道配置文件。 |
adfile | 客户端广告配置,当前使用 JSON。 |
topicfile | 频道主题配置文件。 |
ipbanfile | IP 封禁列表文件。 |
mpqfile | 客户端自动更新/MPQ 配置文件。 |
logfile | BNetD 主日志路径。生产通常关闭诊断级别,仅按需临时开启。 |
realmfile | 国度列表文件;每行定义国度标识、显示名和 D2CS 地址。 |
maildir | 战网邮件数据目录。 |
versioncheck_file | 客户端版本与校验规则文件。 |
mapsfile | 地图规则文件。 |
xplevelfile | 战网等级表文件。 |
xpcalcfile | 战网经验计算文件。 |
ladderdir | 天梯文件目录。 |
command_groups_file | 聊天命令分组与权限文件。 |
tournament_file | 锦标赛配置文件。 |
statusdir | XML/状态输出目录。 |
aliasfile | 命令或账号别名文件。 |
anongame_infos_file | 匿名游戏信息配置。 |
DBlayoutfile | SQL 存储字段布局定义。 |
supportfile | 支持信息文件。 |
transfile | 地址转换规则文件。公网 D2GS 直连时通常保持空规则。 |
customicons_file | 自定义账号/用户图标映射。 |
iconfile | Diablo/通用客户端图标包文件名。 |
war3_iconfile | Warcraft III 图标包文件名。 |
star_iconfile | StarCraft 图标包文件名。 |
本地化与日志
| 参数 | 中文说明 |
|---|---|
localizefile | 通用本地化 XML 文件名。 |
motdfile | 登录欢迎消息文件。 |
motdw3file | Warcraft III 欢迎消息文件。 |
newsfile | 新闻文本文件。 |
helpfile | 客户端帮助文本文件。 |
tosfile | 服务条款文本文件。 |
localize_by_country | 是否按用户国家而不是客户端语言选择本地化资源。 |
loglevels | 日志级别列表:none/trace/debug/info/warn/error/fatal。生产默认 none。 |
chanlog | 是否记录频道消息。 |
log_commands | 是否记录聊天命令。 |
log_command_list | 仅记录的命令白名单。 |
log_command_groups | 仅记录指定权限组执行的命令。 |
log_notice | 是否记录 notice 级运营消息。 |
D2CS 与客户端验证
| 参数 | 中文说明 |
|---|---|
d2cs_version | 允许连接的 D2CS 协议版本;0 关闭版本检查。 |
allow_d2cs_setname | 是否允许 D2CS 更新国度显示名。 |
allowed_clients | 允许接入的客户端类型,D2 常用 d2dv,d2xp;all 允许全部。 |
allow_bad_version | 是否允许未通过校验的客户端。正式反作弊策略确定前谨慎关闭。 |
allow_unknown_version | 是否允许 versioncheck_file 未登记的客户端版本。 |
account_allowed_symbols | 注册账号可使用的字符集合/规则。 |
account_force_username | 是否强制账号名使用标准化用户名。 |
d2cs_version | BNetD 期望的 D2CS 版本,重复列出用于强调国度握手。 |
账号与登录策略
| 参数 | 中文说明 |
|---|---|
new_accounts | 是否允许客户端注册新账号。 |
account_vip_time | 新注册账号默认赠送 VIP 小时数;0 不赠送,24 表示 24 小时。 |
max_accounts | 最大账号数;0 表示不限制。 |
kick_old_login | 同账号重复登录时是否踢掉旧会话;否则拒绝新会话。 |
max_concurrent_logins | 单账号允许的并发登录数。 |
max_connections | BNetD 总连接上限。 |
max_conns_per_IP | 单 IP 最大并发连接数。 |
maxusers_per_channel | 单频道最大用户数。 |
max_friends | 单账号好友数量上限。 |
passfail_count | 密码连续失败达到封禁的次数。 |
passfail_bantime | 密码失败临时封禁时长。 |
initkill_timer | 初始化/异常会话清理计时器。 |
account_allowed_symbols | 账号名允许字符策略。 |
account_force_username | 是否把登录名强制规范化为账号用户名。 |
缓存、超时与关服
| 参数 | 中文说明 |
|---|---|
usersync | 账号文件定期同步间隔,秒;0 表示只在退出等时机同步。 |
userflush | 非活跃账号从内存缓存卸载前的秒数。 |
userstep | 每轮检查/保存的账号数量。 |
userflush_connected | 是否允许清理仍在线账号的缓存;关闭会增加内存占用。 |
sync_on_logoff | 退出登录时是否立即同步账号。 |
latency | 客户端延迟探测间隔,秒。 |
nullmsg | keepalive/空包发送间隔,秒。 |
use_keepalive | 是否启用 TCP keepalive。 |
output_update_secs | 状态/XML 输出刷新间隔。 |
shutdown_delay | 收到关服信号后的倒计时秒数。 |
shutdown_decr | 再次收到终止信号时减少的倒计时秒数。 |
游戏、频道与隐私
| 参数 | 中文说明 |
|---|---|
ask_new_channel | 创建临时频道前是否询问用户。 |
report_all_games | 是否为所有游戏生成报告。 |
report_diablo_games | 是否生成 Diablo 游戏报告。 |
hide_pass_games | 是否隐藏有密码的游戏。 |
hide_started_games | 是否隐藏已经开始的游戏。 |
hide_temp_channels | 是否隐藏临时频道。 |
hide_addr | 是否向其他用户隐藏地址信息。 |
disc_is_loss | 断线是否计为天梯负场。 |
ladder_games | 额外计入天梯的游戏类型。 |
ladder_prefix | 只有指定名称前缀的游戏计入附加天梯类型。 |
report_all_games | 全游戏报告开关。 |
gamelist_showall | 是否跨条件显示完整游戏列表(部分版本由 D2CS 控制)。 |
report_diablo_games | Diablo 游戏报告开关。 |
track | 是否启用连接追踪。 |
trackaddrs | 允许接收追踪信息的地址。 |
限流与配额
| 参数 | 中文说明 |
|---|---|
packet_limit | 单连接数据包速率/数量限制。 |
quota | 是否启用聊天配额。 |
quota_lines | 配额窗口允许的消息行数。 |
quota_time | 配额统计窗口时长。 |
quota_dobae | 连续刷屏判定阈值。 |
quota_maxline | 单行消息最大长度。 |
quota_wrapline | 超长消息换行长度。 |
mail_support | 是否启用战网邮件。 |
mail_quota | 每账号邮件配额。 |
hashtable_size | 内部账号/会话哈希表大小。 |
服务器身份与网络
| 参数 | 中文说明 |
|---|---|
servaddrs | BNetD 监听地址列表,格式 IP:端口。生产通常 0.0.0.0:6112。 |
w3routeaddr | Warcraft III 路由地址。D2-only 环境通常不用。 |
description | 服务器描述。 |
location | 服务器地理位置文本。 |
url | 官方网站地址。 |
contact_name | 服务联系人名称。 |
contact_email | 服务联系人邮箱。 |
max_connections | 网络总连接上限。 |
enable_conn_all | 是否接受所有配置监听地址上的连接。 |
max_conns_per_IP | 每 IP 连接上限。 |
频道、战队与旧客户端兼容
| 参数 | 中文说明 |
|---|---|
clan_channel_default_private | 新建战队频道是否默认私有。 |
clan_max_members | 战队最大成员数。 |
clan_min_invites | 创建战队所需最少邀请数。 |
clan_newer_time | 新成员保护/新手状态时间。 |
savebyname | 账号文件是否按名称而不是 UID 保存。 |
war3_ladder_update_secs | Warcraft III 天梯刷新秒数。 |
XML_output_ladder | 是否输出 XML 天梯。 |
XML_status_output | 是否输出 XML 服务状态。 |
wollatitude | Westwood Online 纬度兼容字段。 |
wollongitude | Westwood Online 经度兼容字段。 |
woltimezone | Westwood Online 时区字段。 |
wol_autoupdate_serverhost | WOL 自动更新服务器。 |
wol_autoupdate_username | WOL 自动更新用户名。 |
wol_autoupdate_password | WOL 自动更新密码,禁止写入公开文档。 |
其他运行参数
| 参数 | 中文说明 |
|---|---|
maxusers_per_channel | 每频道用户上限。 |
max_friends | 好友上限。 |
nullmsg | 空包保活间隔。 |
output_update_secs | 状态输出刷新秒数。 |
initkill_timer | 初始化连接清理时间。 |
enable_conn_all | 全监听入口开关。 |
allow_d2cs_setname | D2CS 国度改名权限。 |
allow_bad_version | 校验失败客户端兼容开关。 |
allow_unknown_version | 未登记版本兼容开关。 |
国度与命令辅助文件
realm.conf
text
# 免费国度:主机和端口分别读取 catalog.json 的 109b coreHost 与 free.d2csPort。
"CNBN" "CNBN 1.09b Free Realm" <109核心主机>:<免费D2CS端口>
# VIP 国度:保持可见,主机和端口分别读取 109b coreHost 与 vip.d2csPort。
"SVIP1" "CNBN 1.09b VIP Realm" <109核心主机>:<VIP D2CS端口>第一列是客户端显示/选择标识,第二列是说明,第三列是 D2CS 地址。免费用户仍需看到 VIP 国度时,不要从该文件删除 VIP 行;准入由 D2CS VIP 流程处理。
command_groups.conf
为每个命令定义最低用户组。/vip、/ad 等玩家命令必须加入普通用户组;/addvip、/delvip 等管理命令只给 GM。修改后重启 BNetD,并用普通账号与 GM 账号分别验证。
address_translation.conf
用于 NAT 地址改写。当前不同公网主机的 D2GS 均直接监听 4000 时保持为空,避免返回错误代理地址。
重复参数说明
上表按语义章节重复强调了少量高风险键,但配置文件中每个键只应保留一个有效赋值。BNetD 采用最后一个有效配置还是拒绝重复取决于解析版本,生产文件不要依赖重复覆盖。