Configuring TCPShield for your network
Some individuals may find it easier to follow a our video series we have created for configuring TCPShield. This guide will explain with more detail, but for simple configurations our series will cover most cases.
A "network" is the idea of a single Minecraft network. This could be as simple as a vanilla survival spigot server, or a 2000 player network multiple BungeeCord instances. A network can be named anything you'd like, this tutorial will be using CrunchyPVP as our fake minecraft server.
In TCPShield terminology, a backend is considered something TCPShield routes traffic too. For example, this could be a singular Spigot server, a BungeeCord instance, or a perhaps even multiple BungeeCords. Here, we need to add the IP's of our network we are trying to connect to TCPShield.
We can name the group of backends we are about to add as whatever we'd like. In my case, I'm going to call this "Production" because these are the backends we will be using in our live environment for my server.
In the example of CrunchyPvP, I am running two BungeeCords I want to load balance between, so I'm going to add the IP/port combination for both of those instances (126.96.36.199:25565, 188.8.131.52:25565).
Notice: I did not add anything related to my spigot servers here. ONLY the thing accepting the connection from the TCPShield network should be listed here. If you want to have just a single spigot instance, you would point directly to that.
First, navigate to the domains page and click "Add Domain".
My domain is CrunchyPvP.net, which I will insert into the modal. I will then click the dropdown for the backend set and use the one we just created.
Badlion Proxy is an optional step that is specific for users of Badlion AntiCheat. This is not something required for most networks.
Then, click "Begin verification"
Domain verification is the process we require for all domains on the TCPShield network. This confirms ownership of the domain using DNS and is required for security reasons. We recommend when you verify your domain, you use TXT records.
For this step, I will copy the TXT record and insert it on the root(required) of my domain on Cloudflare DNS manager.
Once my domain is saved, you can attempt to verify the domain on the TCPShield panel.
This process can unfortunately can take sometimes up to several hours for DNS to fully propagate to where Cloudflare (our internal resolver) will see it. This is why we highly recommend everyone use Cloudflare for DNS management. This process often trips up many people, so before contacting TCPShield staff, we would encourage to double check that the TXT record has properly propagated worldwide using https://www.whatsmydns.net.
As a general note, from our observations Namecheap DNS takes the longest with an average time of 5 hours.
Now that we have verified the domain with TCPShield, we need to decide how we want players to connect to our network. Often, owners want players to only join with a subdomain like
play.crunchypvp.net. Other times, owners would like the ability for both players to join with
crunchypvp.netbut still allow a website to exist with an A record.
I want my server to allow people to join through CrunchyPvP.net, so I will set this accordingly in the hostname field on the domain page. TCPShield domains are wildcarded, so we do not need to add another record for
On the domains page, you will be given downloads to the TCPShield plugin. This plugin must be installed while using TCPShield in order for players to have the correct IP addresses on your server. If you don't run these plugins, all players will look like they are originating from the same IP address.
Note: If you are running a BungeeCord server, you only need the Real IP plugin on your BungeeCord instances. Note: If you are running Lilypad (while not recommended), you will need to contact us for a way to get the correct IP addresses for your players. This is a limitation of Lilypad (No plugins), not TCPShield.
Congratulations! 🎉 You have officially joined the TCPShield Network! If something didn't work quite right, don't hesitate to contact us using the ticket system on our discord. While you wait for help from our staff, we strongly encourage you triple check all the configuration steps we've made here. We also have a checklist and a debug tool that can assist you determining issues.