HAProxyReduce 处理 HAProxy 代理协议与直连连接的自动识别,让 Velocity 和 Paper/Folia 服务端都能正常获取真实客户端 IP。内置访问控制与配置热重载,也提供对外 API 供其他插件集成。
- 支持 Velocity 与 Paper/Folia 双平台
- 自动识别 HAProxy 代理连接与直连
- 白名单 / 黑名单访问控制
- 配置热重载,改完即生效
- 对外 API,方便其他插件调用
- 连接日志记录与调试模式
- 底层基于 Netty,协议处理开销低
- 从 Releases 下载对应平台的 JAR。
- 放入服务端
plugins/目录。 - 重启服务端。
- Paper / Folia:建议安装 ProtocolLib 5.1.0+
- Velocity:无额外依赖
Paper / Folia
编辑 config/paper-global.yml:
proxies:
proxy-protocol: trueVelocity
编辑 velocity.toml:
proxy-protocol = true首次启动后,在 plugins/HAProxyReduce/ 生成 config.yml。
whitelist:
mode: EMPTY_DENY_ALL
ips:
- "127.0.0.1"
- "192.168.1.0/24"
- "::1"
blacklist:
enabled: false
ips: []
connectionTracker:
timeout: 300000
cleanupInterval: 30
hotReload:
enabled: true
checkInterval: 10
logging:
warnOnce: true| 模式 | 行为 |
|---|---|
DISABLED |
关闭白名单,只做 HAProxy 协议检测 |
EMPTY_ALLOW_ALL |
白名单为空时放行所有;非空时仅放行列表内 IP |
EMPTY_DENY_ALL |
白名单为空时拒绝所有;非空时仅放行列表内 IP |
- 启用后,黑名单 IP 跳过 HAProxy 协议解析
- 黑名单优先级高于白名单
开启后自动监听配置变更,改完保存即生效,无需重启。
需 OP 权限:
| 命令 | 说明 |
|---|---|
/haproxyreload |
手动重载配置 |
/haproxystatus |
查看状态与统计 |
- JDK:21+
- Paper / Folia:1.20.1+
- Velocity:3.5.0-SNAPSHOT 或兼容版本
不支持 Spigot、CraftBukkit 等服务端。
提交 Issue 时建议附上:
- 服务端平台与版本
- 插件版本
- 完整错误日志
- 配置文件内容
- 重现步骤