Skip to content

GeoIP 访问控制

面向可以配置登录策略并查看最近决策的管理员。公共 IP 没有命中显式例外时,需要服务器具备远程查询能力。

目的

在玩家登录时应用粗粒度的国家和 IP 策略,用安全测试数据验证决策顺序,并明确 GeoIP 不是身份或反作弊证据。

开始前

  • 依据隐私和地区合规要求选择服务商:IpWhoIs 使用 HTTPS 且不需要 Token,IpApi 是受限的 HTTP 选项,IpInfo 使用 HTTPS 和账户 Token。
  • 在启用严格拦截前,先决定未知国家以及私有、本地地址的处理方式。
  • 准备测试公共 IP、私有测试地址、临时 CIDR 例外和专用测试玩家。文档示例中的 203.0.113.10198.51.100.0/24 仅是保留示例地址,不代表真实客户端。
  • 在策略验证完成并准备好恢复运维人员前,保持 绕过管理员 启用。

WARNING

每个未命中缓存的公共玩家 IP 可能会发送给所选第三方服务商。请记录数据流,并据此选择服务商、缓存时长和日志策略。

操作步骤

设置

  1. 打开 GeoIP 访问控制,选择服务商时先保持策略禁用。IpInfo Token 只填写在受保护字段中,禁止复制到截图或工单。
  2. 设置请求超时、成功缓存 TTL 和失败缓存 TTL。测试服务商稳定性时可先使用 5 分钟左右的短失败缓存。
  3. 选择 禁用仅允许列出的国家阻止列出的国家。在对应列表中填写 ISO 国家代码,并明确选择 未知国家策略私有/本地 IP 策略
  4. 为测试客户端和恢复管理员添加精确 IP 或 CIDR 到允许列表或阻止列表。显式例外会在国家策略之前评估。
  5. 设置踢出消息,并决定是否记录允许决策。验证新策略时临时打开允许日志,确认后按需要降低噪声。
  6. 保存后用 测试查询 检查公共测试 IP 和私有地址,查看服务商、国家、缓存标记和错误状态。更换服务商或缓存设置后使用 清除缓存;策略测试需要全新服务商结果时也可以清除缓存。

缓存行为

  • 查询结果保存在进程内存缓存中。成功查询使用 CacheTtlMinutes,失败查询使用 FailureCacheTtlMinutes
  • 重启后端或游戏进程会清空缓存;点击 清除缓存 可以在不重启的情况下移除当前条目。
  • 更换服务商或缓存 TTL 设置会使受影响缓存条目失效。国家/IP 策略变更会改变决策评估,但可能保留查询元数据;需要全新服务商结果时应点击 清除缓存

评估顺序

登录决策按以下顺序执行:

  1. 模块或模式禁用时允许登录。
  2. 启用绕过管理员时允许登录。
  3. 无效 IP 记录为 Skipped
  4. 私有或回环 IP 按 PrivateIpPolicy 执行。
  5. IP 允许列表在查询前允许。
  6. IP 阻止列表在查询前阻止。
  7. 其余公共 IP 执行远程 GeoIP 查询。
  8. 查询失败或缺少国家时按 UnknownCountryPolicy 执行。
  9. 国家允许或阻止模式给出最终结果。

线上验证

  1. 保持模式禁用,用 测试查询 检查公共测试 IP 和私有地址。它只验证服务商查询,不会执行 PrivateIpPolicy,也不会产生最近登录决策。
  2. 配置不与测试运维人员冲突的无害策略:AllowCountries 列表包含测试运维人员预期国家,或 BlockCountries 列表不包含该国家;临时启用 记录允许决策。使用专用测试玩家登录,确认最近决策出现允许记录。
  3. 将测试 IP 加入阻止列表,确认玩家被踢出且看到配置消息;移除条目、清除缓存,再确认玩家可以重新加入。
  4. 仅在受控窗口模拟服务商故障,确认真实登录使用配置的未知国家策略;验证后恢复服务商和策略。

GeoIP 最近决策的安全空状态

空表展示最近决策视图,未包含测试 IP、玩家或策略结果。

验证结果

  • 状态区域显示所选服务商、缓存数量、最近查询和最近阻止,没有过期错误。
  • 最近决策出现预期的 AllowedBlockedLookupFailedSkipped 结果和原因。
  • 显式允许列表在国家策略前生效,显式阻止列表在远程请求前阻止。
  • 更换服务商或缓存 TTL 后清除缓存会改变下一次查询行为,移除临时阻止规则后登录恢复;国家/IP 策略变更会重新评估现有查询结果。
  • 使用真实私有/回环地址登录尝试及其最近决策验证 PrivateIpPolicy;单独的测试查询结果不能证明该策略。

限制与安全说明

DANGER

服务商不可用、运营商国家识别异常或地址共享都可能误拒绝正常玩家。先使用未知国家 Allow,验证真实登录事件,并保留恢复例外。

  • GeoIP 是近似的访问控制,不是身份认证、VPN 检测或反作弊系统。调查应使用审计、玩家追踪和服务器证据。
  • IpApi 使用 HTTP 且有服务商限制,不要在不可信网络中把它当作高信任路径。