Skip to content

Releases: QingJunXue/ProxyIdentity-Plugin

ProxyIdentity-1.2.0

Choose a tag to compare

@QingJunXue QingJunXue released this 23 Jun 14:12

本版本是 1.0.0 之后的累计功能更新与稳定性修复版本,重点新增 IP / CIDR 封禁、国家/地区封禁、GeoIP 数据库异步同步,并对 Velocity 兼容性、配置升级、日志输出和项目结构进行了系统性优化。

新增功能

  • 新增 IP / CIDR 封禁功能

    • 可通过 security.blocked-ips 配置封禁单个 IP 或 CIDR 网段。
    • 不依赖 GeoIP 数据库,即使 geoip.enabled: false 也会生效。
    • 命中封禁后会在连接握手阶段直接拒绝。
  • 新增国家/地区封禁功能

    • 可通过 security.blocked-countries 配置封禁国家/地区代码。
    • 依赖 GeoIP2 Country 数据库。
    • 仅在 geoip.enabled: true 且数据库成功加载后生效。
    • GeoIP 不可用时会自动降级为仅 IP 封禁。
  • 新增 GeoIP 数据库异步同步

    • 服务器启动后后台检查并同步 GeoLite2-Country.mmdb
    • 不阻塞 Bukkit、BungeeCord、Velocity 启动流程。
    • 内置多个下载源,优先 GitHub Raw,失败后尝试 jsDelivr CDN。
    • 支持 SHA256 校验,确保数据库完整性。
    • 下载源写在代码内部,不暴露到配置文件,避免误改。
    • 同步开始、成功、失败、降级等状态会输出到控制台。
  • 新增统一访问控制模块

    • 新增 AccessControlGate 统一处理 IP 封禁与国家/地区封禁。
    • 新增 IpBlockList 管理 IP / CIDR 黑名单。
    • 新增 BlockedCountryList 管理国家/地区代码黑名单。
    • 新增 CountryResolverGeoIpCountryResolverGeoIpCountryDatabaseResolver 处理 GeoIP 查询。
    • 新增 GeoIpDatabaseUpdater 处理 GeoIP 数据库同步。
  • 新增统一日志门面

    • 新增 PluginLogger
    • 统一处理 Bukkit / BungeeCord 的 JUL 日志、Velocity 的 SLF4J 日志和兜底输出。
    • 自动处理 [ProxyIdentity] 前缀。
    • 解决部分核心不显示插件名的问题。
    • 避免部分核心重复显示插件名前缀。

配置变化

  • 配置版本升级到 config-version: 3
  • 旧配置会在启动时自动补齐新配置项。
  • 默认配置顺序调整为:
    • config-version
    • debug
    • proxy-protocol
    • security
    • geoip

新增 security 配置

security:
  trusted-proxies:
    - 127.0.0.1
    - ::1
    - 10.0.0.0/8
    - 172.16.0.0/12
    - 192.168.0.0/16

  blocked-ips:
  # - 127.0.0.1
  # - 192.168.0.0/16

  blocked-countries:
  # - CN

ProxyIdentity-1.0.0

Choose a tag to compare

@QingJunXue QingJunXue released this 01 Jun 07:56

ProxyIdentity 1.0.0

  • 项目重命名为 ProxyIdentity
  • 包名改为 io.github.qingjunxue.proxyidentity
  • 版本重置为 1.0.0
  • 移除 legacy-bukkit profile,默认构建 Java 8 字节码
  • 配置合并到 config.yml
  • 支持 Bukkit 1.7.x / ProtocolLib 3.x 的 PROXY protocol 注入
  • 优化 Velocity 未启用 haproxy-protocol 时的兼容逻辑