HWID-Tracker (Notification/Listing/Kick/Ban) by Area
静默追踪玩家硬件 ID,以启用基于 HWID 的封禁、多账号检测和操作员警报。
介绍
HWID Tracker(通知 / 列表 / 踢出 / 封禁)
HWID Tracker 是一个轻量级 NeoForge 实用模组,它会静默追踪连接到服务器的玩家的硬件 ID(HWID)——从而实现可靠的基于 HWID 的封禁、多账号检测以及即时管理员警报。
与按名称或 IP 封禁不同,HWID 封禁绑定的是玩家的物理硬件,因此仅靠创建新账号或切换网络来规避会困难得多。
🧩 支持多个 Minecraft 版本:1.21.1–1.21.5(一个文件)· 1.21.8 · 1.21.10 · 1.21.11 · 26.1。请从 Files 标签页下载与你的服务器 Minecraft 版本匹配的文件。
⚠️ 注意:本模组需要在服务端和客户端同时安装。请将其作为必需模组加入你的整合包。未安装该模组的玩家将无法连接。
🔒 隐私:HWID 在客户端使用 SHA-256 进行哈希处理后才会发送到服务器。原始硬件数据绝不会离开客户端。本模组不会建立任何外部网络连接——所有数据都存储在本地服务器上,多账号检测会作为本地事件暴露出来,供其他模组按需响应。
✨ 功能
- 🔍 静默 HWID 追踪——登录时自动收集硬件数据,不会向玩家显示任何提示或通知
- 🔨 一条命令同时封禁 HWID + UUID + IP——
/hban同时覆盖全部三层封禁 - ⏳ 临时封禁——可按指定时长封禁玩家(
t:30m、t:12h、t:1d、t:2w),到期后自动解除,并在封禁界面上显示正确的到期日期 - 🚫 多账号检测——检测到两个账号共用同一硬件时,立即踢出第二个账号
- ✅ 绕过列表——使用
/hbypass将受信任玩家豁免于多账号踢出,例如共用一台电脑的兄弟姐妹或已批准的小号 - ⚙️ 可配置——可通过配置完全关闭多账号踢出,同时 HWID 追踪和手动封禁命令仍可正常工作
- 📢 管理员警报——所有在线管理员(拥有 admin 权限)都会在多账号尝试时立即收到游戏内通知
- 📁 每玩家 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,使其他模组可以在本地响应多账号检测,而无需依赖本模组的内部实现 - ⚡ 轻量级——无数据库、无外部连接,纯文件存储
📋 命令
所有命令都需要管理员/admin 权限。
| 命令 | 描述 |
|---|---|
/hwid <name> |
显示玩家的 HWID 数据(在线或离线)—— UUID、IP、HWID 哈希、首次/最后出现时间、封禁状态 |
/hban <name> permanent |
通过 HWID + UUID + IP 永久封禁(对在线和离线玩家均有效) |
/hban <name> permanent <reason> |
带自定义原因的永久封禁 |
/hban <name> t:<duration> |
按指定时长临时封禁 |
/hban <name> t:<duration> <reason> |
带自定义原因的临时封禁 |
/hunban <name> |
移除玩家的所有封禁(HWID、UUID 和 IP) |
/hbanlist |
列出所有生效中的 HWID 封禁,包含类型(永久/临时)、到期时间、原因、封禁者和时间戳 |
/hbypass add <name> |
将玩家豁免于多账号踢出检测(在线或离线玩家) |
/hbypass remove <name> |
将玩家从豁免列表中移除 |
/hbypass list |
列出所有豁免条目,包含添加者和添加时间 |
支持的时长单位: m(分钟)· h(小时)· d(天)· w(周)
示例:
/hban Steve permanent Cheating
/hban Steve t:1d Griefing
/hban Steve t:30m
⚙️ 配置
服务器首次启动后,会自动创建 config/hwidtracker-server.toml:
[general]
# If true, a joining player is kicked when their hardware ID (HWID) already
# belongs to another player currently online (multi-account detection).
# Set to false to disable this check entirely – HWID tracking and manual
# /hban, /hunban, /hbanlist and /hwid commands keep working either way.
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 | 保留所有权利。
常见问题
HWID-Tracker (Notification/Listing/Kick/Ban) by Area 支持哪些 Minecraft 版本?
HWID-Tracker (Notification/Listing/Kick/Ban) by Area 支持 Minecraft Java 版 1.21.1–26.1,共 8 个版本,可用的加载器:NeoForge。下载时注意选择和你游戏版本一致的文件。
HWID-Tracker (Notification/Listing/Kick/Ban) by Area 怎么安装?
先用 PCL2 或 HMCL 启动器安装对应版本的 NeoForge,再把下载的 .jar 文件放进游戏目录的 mods 文件夹,重新启动游戏即可。开启了版本隔离的,mods 文件夹在 versions/版本名 下面。
2area 的其他作品
查看全部 →End Access (End Toggle per Player or Global) byArea
Locks The End dimension by default and lets admins unlock it for individual players via simple commands — ideal for quest and progression-based servers.
Buddeltech
Join the Server: buddeltech.com
EnderPearl Chunkload (Like newest MC Versions) byArea
Keeps the chunk a thrown Ender Pearl occupies loaded and preserves in-flight pearls across logout/login, enabling working Stasis Chambers on servers.
EnderPearl Fix (NO Chunkload Implement) byArea
Removes thrown Ender Pearls on player logout and restores them at the exact same position on login.
评论
登录后评论和评分