DynamicDNS ✅ Keeps your subserver online by auto-updating it
2.2Perfect for home-hosted servers with dynamic IPs.
- Tested MC 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.21, 26.1, 26.2, 26.3

Cross-platform Minecraft plugin and proxy extension for dynamic IP environments
Keep your backend subservers connected to your proxy without static IPs, port forwarding, external daemons, or DNS propagation delays. Synchronize address updates instantly through native Minecraft networking.
★ Key Features
- Port-Free Subserver Synchronization: Subservers ping the proxy using native Minecraft Handshake packets signed with HMAC-SHA256 (sync.v2.<name>.<port>.<signature>). No extra firewall ports or open sockets needed.
- Cryptographic Security: Handshake signatures verify authenticity without exposing your raw secret token over the network.
- Automatic Proxy Configuration Persistence: Updates and saves subserver IP/port changes directly to velocity.toml (Velocity) or config.yml (BungeeCord).
- Live Status & Timestamp Tracking: Monitor real-time subserver registrations and proxy-recorded last update timestamps.
- Popular DDNS Providers Supported:
- Cloudflare DNS API: Automated root or subdomain A and AAAA updates with configurable Cloudflare proxy status.
- DuckDNS: Fast HTTP/HTTPS updates with dual-stack IPv4 and IPv6 support.
- No-IP / DynDNS v2: Hostname updates via HTTP Basic Auth.
- Dynu DDNS: Automated domain and SRV updates for dynamic IPs or ngrok endpoints.
- Dual-Stack IPv4 & IPv6 Detection: Redundant global lookup services resolve external addresses accurately.
- Built-in ngrok Tunneling: Automatically create TCP tunnels for local/home-hosted servers and propagate endpoints to the proxy or Dynu.
- Universal Jar: One unified binary runs everywhere — on both proxies and backend game servers.
★ Supported Platforms
Proxies:
- Velocity: 3.x / 4.x
- BungeeCord / Waterfall: 1.8.8 – 26.4
Subservers (Backends):
- Paper / Purpur / Spigot / Folia: 1.8.8 – 26.4
- Sponge: SpongeAPI 8+ (Minecraft 1.16.5+)
★ How It Works
+-------------------------------------------------------------------+
| Subserver (Spigot / Paper / Sponge) |
| |
| 1. Periodically sends handshake ping: |
| virtualHost = "sync.v2.<name>.<port>.<hmac>" |
+---------------------------------+---------------------------------+
|
(Standard Minecraft Port, e.g. 25565)
v
+-------------------------------------------------------------------+
| Proxy (Velocity / BungeeCord) |
| |
| 2. Intercepts incoming handshake/ping connection |
| 3. Verifies HMAC-SHA256 signature |
| 4. Updates subserver address in proxy server registry |
| 5. Saves updated address to velocity.toml or config.yml |
| 6. Records 'last update' timestamp and drops connection |
+-------------------------------------------------------------------+
★ Installation & Setup
1. Proxy Setup (Velocity or BungeeCord)
- Place DynamicDNS.jar into your proxy's plugins/ folder.
- Start or restart the proxy to generate plugins/DynamicDNS/config.yml.
- Open the config and enable synchronization:
server_sync: enabled: true token: "YOUR_SECRET_TOKEN" # Generates automatically if left empty - Copy your secret token to configure backend servers.
2. Subserver Setup (Paper, Spigot, Sponge)
- Place DynamicDNS.jar into your backend's plugins/ (or mods/ on Sponge) folder.
- Start or restart the backend server to generate config.yml.
- Configure plugins/DynamicDNS/config.yml:
server_sync: enabled: true token: "YOUR_SECRET_TOKEN" # Must match the token set on the proxy name: "survival" # Server ID registered in velocity.toml / config.yml target_address: "proxy.host:25565" # Host and port of your proxy server interval: 30 # Sync interval in seconds - Run /dynamicdns reload or restart the backend server.
★ Configuration Reference
Click to view default config.yml
# Global debug logging - logs every sync ping sent and hook execution
debug: false
# Automatically check for updates on startup via Modrinth
check_updates: true
# Configuration for ngrok - creates secure tunnels to local servers
ngrok:
enabled: false
token: ""
region: "US"
# Configuration for Dynu Dynamic DNS - updates a domain record with current IP address
dynu:
enabled: false
domain: "example.dynu.com"
client: ""
secret: ""
# Configuration for Cloudflare DNS API (A and AAAA records)
cloudflare:
enabled: false
api_token: ""
zone_id: ""
record_name: "play.yourdomain.com"
proxied: false
update_ipv6: false
# Configuration for DuckDNS
duckdns:
enabled: false
domain: "myserver"
token: ""
update_ipv6: false
# Configuration for No-IP / DynDNS v2
noip:
enabled: false
hostname: "myserver.ddns.net"
username: ""
password: ""
# Subserver address synchronization via Minecraft Handshake ping
server_sync:
# Enable synchronization (true on proxy to accept pings; true on subserver to send pings)
enabled: false
# Shared secret token for authenticating subservers with the proxy
token: ""
# Subserver identifier configured on the proxy (Subserver only, e.g. "survival")
name: "survival"
# Target proxy address and port (Subserver only, e.g. "123.123.123.123:25565")
target_address: "123.123.123.123:25565"
# Interval in seconds between sync pings sent to proxy (Subserver only)
interval: 30★ Commands & Permissions
- /dynamicdns status (alias: /ddns status)
Displays active hooks, registered subservers, and last update timestamps.
Permission: dynamicdns.status
- /dynamicdns sync (alias: /ddns sync)
Forces an immediate sync ping to the proxy (subserver only).
Permission: dynamicdns.sync
- /dynamicdns reload (alias: /ddns reload)
Reloads config.yml and restarts background tasks.
Permission: dynamicdns.reload
- /dynamicdns update (alias: /ddns update)
Checks Modrinth for available plugin releases.
Permission: dynamicdns.update
Administrative bypass permission: dynamicdns.admin (granted to server operators by default).
Similar projects
Plugin →Let Me Despawn
Improves performance by tweaking mob despawn rules. Say bye to pesky unintentional persistent mobs.
25MSueta
JourneyMap
Real-time map used for mapping in-game or your browser as you explore.
14.7MSueta
Emotecraft
Create your own emotes in Minecraft.
7.5MSueta
Simple Tpa
A simple tpa plugin which sends requests
5.4MSueta
Common Network
Forge and Fabric Unified Networking Solution
3.9MSueta
Set Home
A lightweight plugin for players to set their homes.
3.8MSueta