IPWhitelist
This mod is made for server admins to stop bot raiding or other people join without permission. What this mod does is binds an IP to a Player and nobody can join with that name but the real player.
截图
介绍
IPWL IP-Based Whitelist for Minecraft (Fabric)
Minecraft: 1.21.1-26.3 | Loader: Fabric | Java: 25 | License: GPL
A server-side mod that adds a second security layer on top of Mojang authentication. Every player is bound to one or more approved IP addresses, even if someone has a valid account, they cannot join unless they are connecting from a pre-approved IP. Connections are blocked before authentication even completes, so rejected players consume minimal server resources.
Installation
- Drop the
.jarinto your server’smods/folder. - Start the server. The mod creates
config/ipwl.jsonautomatically. - Add yourself as an IPWL admin (see below) and start managing players.
No OP required. IPWL uses its own admin list — OP status is completely separate.
Admin Setup
IPWL has its own permission system. Only players listed as IPWL admins can run any /ipwl, /lockdown, /seen, or /connections command. The server console always has full access.
/ipwl admin add <player> — Grant IPWL access (saved to config immediately)
/ipwl admin remove <player> — Revoke access instantly, refreshes their command tree
/ipwl admin list — Show all current IPWL admins
When an admin is removed they lose tab-complete and command execution immediately without needing to rejoin.
Whitelist Commands
/ipwl add <player> — Allow player from any IP
/ipwl add <player> <ip> — Allow player from a specific IP
/ipwl addip <player> <ip> — Add a second allowed IP to an existing player
/ipwl removeip <player> <ip> — Remove one specific IP from a player
/ipwl remove <player> — Remove player entirely and kick them if online
/ipwl list — Show all whitelisted players and their IPs
/ipwl reload — Reload config and whitelist from disk
IP formats supported:
- Exact:
192.168.1.5 - Wildcard suffix:
192.168.1.*(matches any IP starting with that prefix) - CIDR notation:
192.168.1.0/24(works for both IPv4 and IPv6) - Any IP:
*(player can join from anywhere)
Temporary Access
/ipwl tempadd <player> <ip> <duration>
Grants access for a limited time without modifying the permanent whitelist. Duration examples: 30m, 2h, 1d, 3600s. When the time expires, all online admins are notified automatically.
IP Bans
/ipwl banip <ip> — Permanently ban an IP (blocks all accounts from it)
/ipwl unbanip <ip> — Lift a permanent ban
/ipwl banip list — Show all permanently banned IPs
Permanent bans are saved to config/ipwl.json and survive server restarts.
Security Tools
/lockdown on — Block all new connections immediately (admins still allowed)
/lockdown off — Resume normal operation
/seen <player> — Show last known IP and timestamp for a player
/connections — List all currently active connections
/security status — Show live security stats (blocked, allowed, temp bans, etc.)
Unknown Player Alerts
When someone tries to join and is not on the whitelist, every online admin receives a chat message with two clickable buttons:
- [Accept] — runs
/ipwl add <player> <ip>instantly - [Ban IP] — runs
/ipwl banip <ip>instantly
At the same time, the server console prints a clearly visible block:
[IPWL] ====================================================
[IPWL] !! UNKNOWN CONNECTION ATTEMPT !!
[IPWL] ====================================================
[IPWL] Name : Steve
[IPWL] IP : 192.168.1.100
[IPWL] To add : /ipwl add Steve 192.168.1.100
[IPWL] To ban : /ipwl banip 192.168.1.100
[IPWL] ====================================================
All admin actions (accept, ban, remove) are broadcast to every online admin so no one acts on stale information.
Bruteforce & Rate Limiting
The mod automatically detects and blocks abusive connection patterns:
| Pattern | Action |
|—|—|
| Same IP tries 3+ different usernames within 60 seconds | 1-hour ban (bot / credential stuffing) |
| Same IP hammers the server too fast (rate limit threshold) | 5-minute ban (configurable) |
| Permanent ban in config | Blocked forever |
Both ban types are enforced before authentication completes.
Logging
/ipwl logs verbose — Log all attempts, retries, and debug info
/ipwl logs silent — Log only kicks and critical security events (default)
The console always shows unknown-player alerts and bruteforce detections regardless of log level.
Configuration
Located at config/ipwl.json. Created automatically on first run.
| Field | Default | Description |
|—|—|—|
| maxConnectionsPerIp | 2 | Max simultaneous sessions from one IP |
| rateLimitWindowMs | 1000 | Minimum ms between connections from same IP |
| maxFailuresBeforeTempBan | 5 | Rate limit failures before 5-min temp ban |
| tempBanDurationMs | 300000 | Single-name temp ban duration (ms) |
| enableRateLimit | true | Toggle rate limiting |
| enableDuplicateCheck | true | Block duplicate logins for the same username |
| enableJoinAlerts | true | Send admin alerts for unknown players |
| alertCooldownMs | 30000 | Minimum ms between alerts for the same IP |
| verboseLogging | false | Mirrors /ipwl logs verbose |
| allowWildcardIps | true | Allow * as a wildcard IP entry |
| allowSubnetPatterns | true | Allow 192.168.1.* style patterns |
| admins | [] | List of IPWL admin usernames |
| bannedIps | [] | Permanently banned IPs |
Data Files
| File | Contents |
|—|—|
| config/ipwl.json | All settings, admin list, permanent IP bans |
| config/ipwl_whitelist.json | Player → IP mappings |
| config/ipwl-stats.json | Persistent connection statistics (survives restarts) |
| config/ipwl-seen.json | Last-seen data for /seen command |
| config/ipwl-lang.json | Optional message overrides (no rebuild needed) |
To customise any in-game message, create config/ipwl-lang.json on the server and add only the keys you want to change. This file takes priority over the built-in strings.
How It Works (Brief)
Every login attempt is intercepted at ServerboundHelloPacket — the very first packet a client sends — before Mojang authentication starts. The checks run in this order:
- Lockdown mode → block non-admins
- Permanent IP ban → block
- Temp ban (rate limit or bruteforce escalation) → block
- Bruteforce detection (3+ names from same IP in 60s) → 1-hour ban
- Rate limit (too fast) → block, escalate to temp ban after threshold
- Duplicate login check → block
- Whitelist IP check → block + fire admin alert if not listed
- Max connections per IP → block
- Allow secondary async re-verification runs post-join as a safety net
常见问题
IPWhitelist 支持哪些 Minecraft 版本?
IPWhitelist 支持 Minecraft Java 版 1.21.1–26.3,共 15 个版本,可用的加载器:Fabric。下载时注意选择和你游戏版本一致的文件。
IPWhitelist 怎么安装?
先用 PCL2 或 HMCL 启动器安装对应版本的 Fabric,再把下载的 .jar 文件放进游戏目录的 mods 文件夹,重新启动游戏即可。开启了版本隔离的,mods 文件夹在 versions/版本名 下面。运行环境:仅服务端。
评论
登录后评论和评分