King's Domain Logo

King'sDomain

DNS Basics: The Internet's Phonebook

Before connecting your domain, it's helpful to understand what's happening. A **Domain Name** (e.g., mycoolserver.com) is a memorable name for a numerical **IP Address** (e.g., 198.51.100.5). The **Domain Name System (DNS)** is the service that translates the name into the number.

CNAME vs. A Record: Why It Matters

An `A` record points a domain to a specific, unchanging numerical IP. We strongly advise against this because our node's IP address might change during maintenance. A CNAME (Canonical Name) record is a stable nickname. You point your domain to our permanent node hostname (e.g., monarch.kingsnetwork.uk). This address will never change, ensuring your domain always works.

Cloudflare Proxy: Website vs. Game Server

Cloudflare's orange cloud proxy is a powerful tool for websites, but it **must be disabled for game servers**. Think of the proxy as a bouncer at a nightclub that only understands web traffic (HTTP/HTTPS). When a game client tries to connect, it's speaking a different language (game packets), so the bouncer gets confused and blocks it. Setting the cloud to grey ("DNS Only") tells Cloudflare to just act as a phonebook and let game traffic pass through directly.

Connecting Your Domain via Cloudflare (CNAME)

This is the standard and recommended method for most servers, especially if your server uses the game's default port (like 25565 for Minecraft Java).

Find Your Node Hostname

In the control panel, go to your server's "Settings" tab. In the "SFTP DETAILS" box, copy the hostname part of the address (e.g., monarch.kingsnetwork.uk).

Create the CNAME Record in Cloudflare

Log in to Cloudflare, go to your domain's DNS records page, click "Add record", and fill in the details exactly like this:

[name] is an alias of [target]

CNAME
DNS only
Auto
CRITICAL: Set Proxy Status to "DNS only"! The cloud icon must be grey.

Connect In-Game

After waiting a few minutes for DNS to update, players can connect using your new domain plus the port (e.g., play.yourdomain.com:25565). If it's the default port, you don't need to type it.

Advanced: Hiding the Port (SRV Record)

Use an SRV record **only** when your server has a non-default port and you want players to connect without typing that port.

Create a CNAME Record First

You must have a CNAME record pointing to our node hostname first. Follow the guide in the previous section to create one (e.g., play.yourdomain.com pointing to monarch.kingsnetwork.uk).

Create the SRV Record

Add a new DNS record in Cloudflare with the following specific settings for a Minecraft Java server:

[name] points to [target] and listens on [port]

SRV

Pro Protection: Using TCPShield (Highly Recommended)

For the best possible DDoS protection, we strongly recommend using TCPShield. It's a free, professional-grade service for Minecraft: Java Edition that filters malicious traffic before it ever reaches your server.

Bedrock (UDP) Support: TCPShield's primary focus is on TCP traffic, making its Java protection free and robust. Protecting UDP traffic (used by Bedrock) is more complex, so this may be a paid feature on their platform. This guide focuses on the free Java setup.

Create a TCPShield Account & Network

Sign up for a free account on the TCPShield website and create your first network.

Add Your Domain to TCPShield

In your TCPShield dashboard, go to the "Domains" section. Add your domain (e.g., yourdomain.com) and select the "Cloudflare" option. TCPShield will give you a verification key to add as a TXT record in your Cloudflare DNS to prove you own the domain.

Create a Backend Set

Go to the "Backend Sets" tab in TCPShield. Create a new set and add your server's full IP address and port (e.g., monarch.kingsnetwork.uk for the IP and 25565 for the port).

Create the Final DNS Record

Finally, go back to Cloudflare. Remove any old CNAME/SRV records for your game server. TCPShield will provide you with a unique CNAME record. Create it in Cloudflare exactly as they specify.

CNAME
DNS only
Auto

Once DNS propagates, your server is fully protected by TCPShield!