
HWID-Tracker(通知/列出/踢出/封禁) 作者:Area
静默追踪玩家硬件ID,以实现基于HWID的封禁、多账户检测及管理员警报。
HWID 追踪器 (通知 / 列出 / 踢出 / 封禁)
HWID 追踪器 是一个轻量级的 NeoForge 实用模组,可静默追踪连接到服务器的玩家的硬件ID (HWID),从而实现可靠的基于 HWID 的封禁、多账号检测和即时管理员警报。
与名称或IP封禁不同,HWID封禁与玩家的物理硬件绑定,通过创建新账号或切换网络来规避要困难得多。
🧩 支持多个 Minecraft 版本: 1.21.1–1.21.5 (单个文件) · 1.21.8 · 1.21.10 · 1.21.11 · 26.1。请从文件标签页下载与你服务器 Minecraft 版本匹配的文件。
⚠️ 注意: 此模组需要在**服务器和客户端**上都安装。在你的整合包中将其添加为必需模组。没有此模组的玩家无法连接。
🔒 隐私: HWID 在发送到服务器之前已在客户端使用 SHA-256 进行哈希处理。原始硬件数据绝不会离开客户端。此模组不进行任何外部网络连接——所有数据都存储在你的服务器本地,多账号检测作为本地事件暴露,供其他模组在需要时使用。
✨ 特性
- 🔍 静默 HWID 追踪 — 硬件数据在登录时自动收集,不向玩家显示任何提示或通知
- 🔨 一条命令实现 HWID + UUID + IP 封禁 —
/hban同时覆盖所有三个封禁层级 - ⏳ 临时封禁 — 按特定时长封禁玩家 (
t:30m,t:12h,t:1d,t:2w),到期自动解除,封禁界面显示正确的到期日期 - 🚫 多账号检测 — 检测到两个账号共享同一硬件时,立即踢出第二个账号
- ✅ 白名单 — 使用
/hbypass豁免受信任玩家免受多账号踢出,例如共用一台电脑的兄弟姐妹或经批准的小号 - ⚙️ 可配置 — 可通过配置完全关闭多账号踢出功能,同时 HWID 追踪和手动封禁命令继续正常工作
- 📢 管理员警报 — 所有在线管理员(拥有管理员权限)会在多账号尝试时立即收到游戏内通知
- 📁 玩家独立的 HWID 文件 — 每个玩家拥有自己的
config/user-hwids/<uuid>.txt文件,包含名称、UUID、HWID 哈希、IP、首次和最后出现时间 - 📋 封禁列表文件 — 所有封禁信息存储在
config/user-hwids/bans.json中,包含原因、封禁者名称、时间戳和可选的到期时间 - 🔁 原版封禁集成 — 封禁时自动写入
banned-players.json和banned-ips.json,解封/到期时自动移除 - ♻️ 完整解封支持 —
/hunban一次操作即可从所有三个封禁列表中移除玩家 - 🔎 HWID 查询命令 —
/hwid可显示任意玩家(在线或离线)的所有存储数据 - 🔌 事件 API — 在 NeoForge 事件总线上触发公共的
HwidMultiAccountEvent,使其他模组无需依赖此模组的内部实现即可响应多账号检测 - ⚡ 轻量级 — 无需数据库,无需外部连接,纯文件存储
📋 命令
所有命令需要管理员/管理员权限。
| 命令 | 描述 |
|---|---|
/hwid <名称> |
显示玩家的 HWID 数据(在线或离线)—— UUID、IP、HWID 哈希、首次/最后出现时间、封禁状态 |
/hban <名称> permanent |
按 HWID + UUID + IP 永久封禁(适用于在线和离线玩家) |
/hban <名称> permanent <原因> |
带自定义原因的永久封禁 |
/hban <名称> t:<时长> |
按给定时长临时封禁 |
/hban <名称> t:<时长> <原因> |
带自定义原因的临时封禁 |
/hunban <名称> |
移除玩家的所有封禁(HWID、UUID 和 IP) |
/hbanlist |
列出所有活跃的 HWID 封禁,显示类型(永久/临时)、到期时间、原因、封禁者和时间戳 |
/hbypass add <名称> |
豁免玩家免受多账号踢出(在线或离线玩家) |
/hbypass remove <名称> |
从白名单中移除玩家 |
/hbypass list |
列出所有白名单条目,显示添加者及添加时间 |
支持的时长单位: m (分钟) · h (小时) · d (天) · w (周)
示例:
/hban Steve permanent Cheating
/hban Steve t:1d Griefing
/hban Steve t:30m
⚙️ 配置
服务器首次启动后,会自动创建 config/hwidtracker-server.toml:
[general]
# 如果设为 true,当加入玩家的硬件 ID (HWID)
# 已属于当前在线的另一玩家时,该玩家将被踢出(多账号检测)。
# 设为 false 可完全关闭此检查——无论此选项如何设置,
# HWID 追踪以及手动 /hban、/hunban、/hbanlist 和 /hwid 命令均可继续工作。
multi_account_kick_enabled = true
🔄 工作原理
| 步骤 | 发生的事件 |
|---|---|
| 1. 玩家加入 | 客户端模组静默读取主板序列号 + CPU ID + 总内存 |
| 2. 哈希处理 | 将这些值组合并使用 SHA-256 进行哈希处理——原始硬件数据绝不会离开客户端 |
| 3. 发送数据包 | 哈希值通过静默的自定义数据包发送至服务器 |
| 4. 封禁检查 | 服务器根据 bans.json 检查哈希值——如果已被封禁(且未到期),则断开玩家连接并将其添加到原版封禁列表中,同时包含临时封禁的正确到期日期 |
| 5. 多账号检查 | 如果在配置中启用,服务器会检查同一 HWID 哈希是否已在当前会话中活跃——如果是,则踢出第二个账号,在游戏中向管理员发送警报,并触发 HwidMultiAccountEvent 供其他模组使用。位于 /hbypass 列表中的账号则被静默允许通过 |
| 6. 保存文件 | 玩家数据(名称、UUID、HWID、IP、时间戳)写入 config/user-hwids/<uuid>.txt |
| 7. 到期检查 | 后台任务每 60 秒运行一次——自动从所有封禁列表中移除已过期的临时封禁 |
🎯 用例示例
有玩家因作弊被抓到。你执行 \/hban PlayerName t:7d Cheating``。模组会立即:
- 将其踢出服务器
- 将其 HWID、UUID 和 IP 写入
bans.json,有效期 7 天 - 将其添加到原版
banned-players.json和banned-ips.json,包括精确的解封日期和时间 - 7 天后,该封禁会自动从所有列表中解除
他们在封禁期间创建新账号并尝试重新加入。当他们的客户端连接时,HWID 哈希匹配 → 他们甚至来不及移动就被断开连接,并显示封禁原因和到期日期,同时你也会收到游戏内警报。
📦 技术细节
| Minecraft 版本 | 1.21.1–1.21.5 (单个文件) · 1.21.8 · 1.21.10 · 1.21.11 · 26.1 —— 从文件标签页选择匹配的文件 |
| 模组加载器 | NeoForge (所需版本与 Minecraft 版本匹配 —— 参见文件列表) |
| Java 版本 | 21 (Minecraft 1.21.x 文件) · 25 (Minecraft 26.1 文件) |
| 安装端 | 客户端 + 服务器 (两端都必需) |
| 外部连接 | 无 —— 所有数据保留在你的服务器上 |
| 依赖项 | 无 (OSHI 已随游戏捆绑) |
| 模组 ID | hwidtracker |
| 配置 | config/hwidtracker-server.toml |
| 存储目录 | config/user-hwids/ |
| HWID 组件 | 主板序列号 · CPU 标识符 · 总内存 |
© 2area | Discord: 2area | CurseForge: https://www.curseforge.com/members/2area/projects | 版权所有。
正在加载版本记录…
正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。