Skip to content

常见问题排查

这页按症状列出常见排查路径。

管理后台打不开

检查:

  • 管理器进程或容器是否运行。
  • L4D2_MANAGER_PORT 是否和访问端口一致。
  • 防火墙或云安全组是否放行 27020/tcp
  • “访问控制”中的面板黑白名单是否允许当前 IP。
  • 使用反向代理时,直接连接管理器的代理 IP/CIDR 是否已加入可信代理,并且代理是否正确发送 X-Forwarded-ForX-Real-IP

Docker 查看日志:

sh
docker logs l4d2-manager

如果 data/access_control.json 损坏,管理器会进入恢复模式,只允许直接来自 127.0.0.0/8::1 的请求。可在服务器本机登录后保存有效配置,或停止管理器后修复该文件。

加入黑名单后仍然可以操作

依次检查:

  • 页面顶部的“启用面板黑白名单”总开关是否已经打开并保存。只启用单条黑名单规则不会打开总开关。
  • 修改后是否点击了“保存”;按钮仍可放弃修改时,说明页面中可能还有未保存的草稿。
  • 规则类型是否正确。单 IP 只匹配一个地址,整个网段应使用 CIDR,例如 192.168.143.0/24
  • 当前请求是否来自 127.0.0.0/8::1。回环地址为恢复通道,始终允许,不受面板黑白名单限制。
  • 使用反向代理时,管理器识别到的最终客户端 IP 是否与规则一致。检查代理转发头、可信代理列表和操作审计中的 IP;不要把操作审计中的“失败”误认为访问控制拒绝,它表示该业务操作本身执行失败。

保存已启用的规则时,如果当前管理员会被新黑名单拒绝,服务端会返回冲突并保留旧配置。这是防止管理员把当前连接锁在面板外的保护,不代表规则已经保存。需要测试会拦截当前地址的规则时,可从服务器本机回环地址登录后配置。

反向代理下记录的客户端 IP 不正确

管理器只接受可信 TCP 对端发送的转发头。不可信对端提供的 X-Forwarded-ForX-Real-IP 会被忽略,以防客户端伪造来源。

检查:

  • “可信代理”中填写的是代理连接管理器时使用的源 IP/CIDR,而不是用户的公网 IP 或域名。
  • 多层代理链中的受控代理是否都已加入可信代理列表。
  • 代理是否发送合法的纯 IP 地址链。可信代理发送非法转发头会收到 400
  • Docker 场景下是否使用了实际桥接网段;容器重建后地址或网段是否发生变化。

解析后的最终客户端 IP 会统一用于面板访问控制、登录限流、自助授权和操作审计。更完整的规则见面板访问控制

登录提示密码错误或被锁定

管理器使用 Bearer 认证,密码来自 L4D2_MANAGER_PASSWORD。连续输错过多会临时锁定当前 IP。

处理方式:

  • 确认环境变量或 start_manager.bat 中的密码。
  • 等待锁定时间结束。
  • 重启管理器会清空内存中的错误计数。

首页没有服务器状态

优先检查 RCON:

  • 游戏服是否启动。
  • server.cfg 是否设置了 rcon_password
  • L4D2_RCON_URL 是否可从管理器访问。
  • L4D2_RCON_PASSWORD 是否和游戏服一致。

可以在 RCON 控制台执行:

text
status

Docker 游戏服启动失败

Docker 29.3+ 下,如果日志中出现 32 位程序相关的系统调用问题,请确认游戏服容器保留了:

yaml
security_opt:
  - seccomp:unconfined

同时确认数据卷没有被错误地挂载为空目录,导致 srcds_run 或游戏文件缺失。

插件启用后没有生效

检查:

  • SourceMod 和 Metamod 是否正确启用。
  • 插件 ZIP 目录是否符合 插件 ZIP 规范
  • 插件是否依赖额外扩展、gamedata 或 translations。
  • SourceMod 错误日志中是否有加载失败记录。
  • 是否需要换图或重启服务器。

常用 RCON:

text
sm plugins list
sm exts list

地图上传失败

检查:

  • 文件格式是否为 .vpk.zip.rar.7z
  • 浏览器到服务器的网络是否稳定。
  • 管理器容器或进程是否有写入 L4D2_GAME_PATH 的权限。
  • 磁盘空间是否足够。

大文件上传会分片进行,失败后可以尝试重新上传,已上传分片会尽量复用。

首页玩家游戏时长无法查询

首页玩家列表中的 L4D2 游戏时长来自 Steam API,和“玩家统计”页面的服务器在线时长不同。无法查询时检查:

  • 设置 STEAM_API_KEY
  • Steam API 可访问。
  • 玩家 SteamID 可转换为 Steam64。
  • 玩家资料或游戏时长隐私允许查询。

“玩家统计”页面的服务器在线时长来自本地采样数据库,不需要 STEAM_API_KEY