- Versions
- 1.8
- 1.9
- 1.10
- 1.11
- 1.12
- 1.13
- 1.14
- 1.15
- 1.16
- 1.17
- 1.18
- 1.19
- 1.20
- 1.20.6
- 1.21
VPNShield uses Third Party IP address information providers to detect if an IP address is a VPN or not
Overview
- VPNShield will cache the information gathered if the ip adress is an VPN or not.
- You can configure how long the information will be cached
- You can manually whitelist or blacklist IP adresses
- Parallel and Async checking minimize the time of the login request and the detection wether a connection is via a VPN or not
- Supported IP adress information provider (You need to create an account on their website). Most providers offer more requests when purchasing a plan
- ProxyCheck 1,000 Free daily requests
- IP-Api 45 Free request per minute
- IpHub 1,000 Free daily requests
- NoVPN 2,000 Free daily requests (From my experience many false positives)
- Choose between 3 VPN detection modes
- The result of the first provider will be used (Minimal request usage, might be less accurate)
- All enabled providers will be checked. If at least your configured amount of providers detected the connection as a VPN, the connection is flagged (High request usage, more accurate)
- Check until the configured number of valid results has been reached (a result is invalid if for example the daily request limit is reached) and if then at least your configured amount of providers detected the connection as a VPN, the connection is flagged.Read more at Detection modes (Balanced request usage and accurate, but depends on configuration)
- Take action if a VPN got detected
- Kick the player with a configured message
- Execute one or more commands
- Notify online staff on the server
In the config is an order list, the providers are entered there and checked from top to bottom.
Mode 1
Uses the first valid result and blocks the player accordingly. A result is for example invalid if the provider is unreachable or the daily quota is reached
Mode 2
The IP is checked according to the order. If at least your configured amount of providers detected the connection as a VPN, the connection is flagged.
Example: You activated 3 providers via entereing them in the order list, created the API keys and entered that an IP gets flagged if 2 at least provider detect the IP as a VPN.
If the first and second provider detect the IP as an VPN the connection gets flagged and the third provider won't be checked
If only the second provider detects the IP as an VPN the connection doesn't get flagged and all 3 provider got checked.
Mode 3:
The ip is checked until the configured number of valid results has been reached (a result is invalid if for example the daily request limit is reached) and if then at least your configured amount of providers detected the connection as a VPN, the connection is blocked.
Example:
You activated 4 providers via entereing them in the order list, created the API keys, entered that an IP gets flagged if at least 2 provider detect the IP as a VPN and that you need at least 3 valid results.
It will now check the first 3 providers and if they all have valid results it wil check if at least 2 of them detect the IP as a VPN. If so the IP get's flagged. Only if one of the 3 checked providers return a invalid result it will check the fourth provider.
Requirements
- Java 17
- Velocity or Bungeecord proxy to use the plugin
- /vpnshield whitelist/blacklist <IP>
- /vpnshield remove <IP> | Removes the IP from the cache/whitelist/blacklist
- /vpnshield list [page] | Shows the manually whitelisted/blacklisted entries. Page number is optional
- /vpnshield check <IP> | Checks if the IP is detected as VPN or not
- /vpnshield rl
- vpnshield.admin | Allows access to all commands
- vpnshield.notify | Notifies you if a player tried to join with a VPN
- vpnshield.bypass | Bypasses VPN checks [Works only if using LuckPermsBungee]
Spoiler: Config