Anti-VPN

Anti-VPN

Voxy can detect and block players connecting through VPNs, proxies, or Tor exit nodes. Checks run on the proxy at login time before the player is fully connected.

How It Works

When a player joins, Voxy checks their IP address against one or more external detection services. If the IP is flagged, the player is disconnected with a configurable message. Results are cached to avoid re-checking the same IP on every login.

The check runs both on a proxy at login and on a standalone (non-proxied) Spigot server at login - it is not proxy-only. A generic FLAGGED verdict (a service says the IP is suspicious without naming a category) is treated as a VPN and uses the block.vpn setting.

Bypass Permission

Players with voxy.antivpn.bypass are never checked.

Configuration

The feature is configured in vpn.yml on the proxy:

enabled: false

# How long to cache IP check results before rechecking
cache-ttl: 1h

# IP addresses that are never checked
whitelisted-ips:
  - "127.0.0.1"

# Which detection types should trigger a block
block:
  vpn: true
  proxy: true
  tor: true
  hosting: false
  api-failure: false

services:
  ip-api:
    enabled: true
    pro-key: ""
  proxycheck:
    enabled: false
    api-key: ""

Detection Types

Type What it detects Default
vpn VPN connections Blocked
proxy Open proxy servers Blocked
tor Tor exit nodes Blocked
hosting Datacenter/hosting IPs Allowed (may cause false positives for mobile carriers)
api-failure When the check API returns an error Allowed

Services

Service Config key Key required Notes
IP-API.com services.ip-api Only for pro tier Free tier works over HTTP
ProxyCheck services.proxycheck Yes Requires an API key

Cache

Results are cached per IP for the duration of cache-ttl (default 1 hour). The cache is cleared when the VPN manager is reloaded.

Messages

The disconnect message is configured in messages.yml:

system:
  antivpn-kick: "<red>VPN or proxy detected. Disable it and try again."

Commands

There are no player-facing commands for this feature. The VPN manager reloads automatically when /voxy reload is run.