
始终验证
即使Mojang服务器离线,也让你的服务器始终保持在线!
我已开设支持 Discord 服务器,立即加入!https://discord.gg/uHm8EbfCFr
AlwaysAuth
AlwaysAuth 是 Minecraft 服务器的后备身份验证解决方案,确保即使 Mojang 的身份验证服务器出现故障,你的玩家也能登录。与传统的离线模式变通方案不同,AlwaysAuth 让你的服务器保持在线模式,同时提供到本地身份验证系统的无缝故障转移机制。
工作原理
AlwaysAuth 通过在你的 Minecraft 服务器和 Mojang 官方身份验证服务器之间插入一个本地身份验证服务器来运作:
- 当玩家尝试登录时,AlwaysAuth 首先将身份验证请求发送给 Mojang。
- 如果 Mojang 在线并作出响应,请求会正常传回你的服务器。
- 如果 Mojang 离线,AlwaysAuth 会使用其本地后备系统来验证用户。
此方法确保:
- 即时故障转移: 无需等待定期检查。即使短暂中断也能无缝处理。
- 在线模式保持启用: 你永远不必将服务器切换到离线模式。
- 长时间停机期间可靠验证: 长时间中断也能同样顺畅地处理。
AlwaysAuth 与 AlwaysOnline 对比
| 功能 | AlwaysAuth | AlwaysOnline |
|---|---|---|
| Spigot 支持 | ✅ | ✅ |
| Paper 支持 | ✅ | ✅ |
| BungeeCord 支持 | ❌* | ✅ |
| Velocity 支持 | ✅ | ✅ |
| Sponge 支持 | ❌** | ✅ |
| Fabric 支持 | ✅ | ❌ |
| NeoForge 支持 | ✅ | ❌ |
| 即时故障转移 | ✅ | ❌ |
| 在线模式保持启用 | ✅ | ❌ |
| 远程数据库支持 | ✅ | ✅ |
| 记录指标 | ❌ | ✅ |
| 多种安全模式 | ✅ | ❌ |
| 基于 IP 的验证 | ✅ | ✅ |
*在 BungeeCord 上无法设置自定义会话服务器,根据 md_5 的说法将来也永远无法做到,参见此处。我将创建一个需要许多额外步骤的变通方法,但我建议切换到 Velocity 或使用独立 jar 包
**Sponge 支持计划在未来添加,我只是对 SpongeAPI 不熟悉
主要优势
- 保持在线模式启用: 无需为停机而牺牲安全性。
- 支持多个平台: 可用于 Spigot、Paper、BungeeCord、Velocity、Fabric 和 NeoForge。
- 灵活的身份验证: 可从多种安全模式和后备方法中选择。
- 可靠: 轻松处理短暂波动和 Mojang 长时间中断。
安装
- 下载适用于你服务器平台的 AlwaysAuth 插件。
- 将插件放入服务器的
plugins(或等效)文件夹中。 - 重启你的服务器。
- 在配置文件中配置 AlwaysAuth,以启用本地身份验证、远程数据库支持或基于 IP 的验证等功能。
给自己授予
alwaysauth.admin权限以访问命令
配置
AlwaysAuth 提供了一个灵活的配置文件,你可以在其中:
- 启用或禁用特定的后备方法。
- 为跨服务器身份验证设置远程数据库。
- 在不同安全模式之间选择。
###################################
# #
# Always Auth 配置 #
# #
###################################
# 是否应输出调试消息
# 这在独立 jar 包上不起作用
debug=false
# 检查更新并在拥有 alwaysauth.admin 权限的工作人员(和控制台)加入时通知他们
check-updates=true
# 会话服务器的 IP
# 如果设置为 127.0.0.1 或 0.0.0.0(允许公开访问)以外的任何值,将视为外部服务器
# 外部服务器意味着只需设置端口(以匹配该外部服务器),它将使用该端口进行身份验证。
# 请注意,截至目前,如果你使用外部服务器,将不会在服务器上看到控制台日志
ip-address=127.0.0.1
# 会话服务器的端口
port=8765
###########################
# 安全设置 #
###########################
# 为授权服务器启用 HMAC-SHA256 签名验证
# 由于 Minecraft URL 处理的限制,目前默认禁用
# 请改用防火墙规则或 localhost 限制进行访问控制
# 数据库加密无论此设置如何都会工作
authentication-enabled=true
# 数据库加密的密钥(自动生成)
# 请对此保密!用于加密数据库中的 IP 地址和配置文件数据
# 如果删除,数据库也需要重置!
# 要重新生成,请删除此行并重启服务器
secret-key=GENERATED ON STARTUP
###########################
# 后备设置 #
###########################
# 当 Mojang 服务器宕机时启用会话后备
fallback-enabled=true
# 玩家在需要重新验证之前可以保持离线的最大小时数(0 = 始终需要验证)
max-offline-hours=72
# 旧会话数据清理前的天数
cleanup-days=30
# 安全级别:'basic'(始终验证)或 'medium'(使用 max-offline-hours)
security-level=basic
# 上游会话服务器 URL
# 默认是 Mojang 的官方服务器,但此选项是为了与 minehut 的外部服务器等配合使用
upstream-server=https://sessionserver.mojang.com
###########################
# 数据库设置 #
###########################
# 数据库类型:h2、mysql 或 mariadb
database.type=h2
# 数据库主机(H2 不使用)
database.host=localhost
# 数据库端口(H2 不使用)
database.port=3306
# 数据库名称
database.name=minecraft
# 数据库用户名(H2 不使用)
database.username=root
# 数据库密码(H2 不使用)
database.password=
正在加载版本记录…
正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。