This tutorial will explain how to set up and configure a DDoS protected Minecraft server. This guide assumes you already have a running server and access to your Minecraft server you wish to protect.
Step 1: Backend Setup
Setup Minecraft on your server, this server will be from here on referred to as the "backend server". On the backend server you may use whichever Operating System you are most familiar with, however if unsure we recommend Debian Linux.
Please ensure that the service is running and connectible on the backend server.
Step 2: Purchase DDoS Protection Service
Choose a billing cycle, a service tier/network and the clean-bandwidth allowance on the DDoS protection page, then click Continue to Checkout. On Complete Order, review the filtering region when offered, enter a Service Name, and review the Order Summary before submitting your order. Choose a region close to your backend and users; clean bandwidth measures delivered traffic, not attack traffic. If you already have a suitable active service, continue with that service.

Step 3: Encapsulation Setup (Optional)
This step is only required if you are intending to use a GRE or IP-in-IP tunnel. If you are intending to use a Reverse Proxy (RP) style connection (the easiest) then you can skip this step.
A Reverse Proxy only proxies connections to your backend and can be useful for servers that do not require to set bans on player IP addresses or do not have command line skills to set up a network interface (or when using a panel that does not give access to console).
An encapsulated backend requires support on the Backend Server, currently Windows and Linux Operating Systems are fully supported, with partial support for FreeBSD. Most Enterprise or even SOHO Routers also support GRE or IP-in-IP tunneling, if supported you may be able to configure the router to terminate the encapsulated network.
Open Services, find your service, and choose Action > Tunnels. Click Add Tunnel, select GRE in Tunnel type, and enter the backend server's public IP in Backend address. Retain the displayed GRE key unless your backend requires a tunnel without one, then click Save. The integrated form below is an alternative way to configure the same tunnel.
The completed example uses 203.0.113.10 as a documentation-only backend address, GRE key 1785302134, and MTU 1472. Replace the backend address with your server’s public IP and use the same key and MTU when configuring that server.
After saving a port that uses this tunnel in Step 4, return to Tunnels and choose the tunnel's Action > Setup Tunnel. Select Linux / BSD and Download Tunnel Script, or Microsoft Windows and Download Application, as appropriate for your backend. The tunnel must be referenced by an Encapsulated port before it is usable. Install the downloaded script or application on your backend using the linked operating-system instructions.

See the GRE/IP-in-IP tunnel setup instructions.
Step 4: Add Ports
Add the ports required to run your service. The default port for a Minecraft Java server is 25565 and Minecraft Java communication occurs over TCP. Select Minecraft under Layer 7 (Game) for the game port so the Minecraft-specific protocol filter is used. If your server listens on a different port, use that port while retaining the Minecraft protocol selection.
Minecraft Bedrock uses UDP and must not use this TCP-only Minecraft preset. Follow the Minecraft Bedrock guide instead.
If you are also using Simple Voice Chat, add its configured voice chat port alongside the main Minecraft TCP port as an additional UDP port. If unsure you can determine what port(s) the service bound to by using the ss or netstat commands as appropriate.
If you are using an Anycast service we recommend configuring the Simple Voice Chat port with the UDPAUTH profile rather than plain UDP. The UDPAUTH profile provides additional protection by only allowing voice chat traffic from clients who are already connected to the Minecraft server. On non-Anycast services, configure the Simple Voice Chat port as a normal UDP port.
Open Services, find your service, and choose Action > Ports. Under Single Port, click Add port manually when Add your first port is shown; otherwise click Add Port. Enter the public port in Port start, choose the documented Protocol, and set Backend method to Reverse Proxy with your Backend address and Backend port, or to the available Encapsulated method with the tunnel created in Step 3. Click Save after each new entry and check the saved row. For a range, choose Port Range > Add Port Range, enter Port start and Port end, then select the protocol and backend before saving.
The completed example uses 203.0.113.10 as a documentation-only backend address. Replace it with your backend address, or select the GRE tunnel you created when using encapsulation.
Note: You can use your service to be open to connections on port 25565 and yet have your server run on a non-standard port. This is useful if you have your gameserver hosted on a shared IP on a non-standard port.
Optional: If you use Simple Voice Chat, create a second port entry for the voice chat server's configured UDP port and point it at the same backend server. For example, use 24454 only if that is the port your voice server listens on. On Anycast services select UDPAUTH for this individual port; otherwise select UDP. Click Save and check both the game and voice entries.
For an Anycast service with a voice listener on 24454, the completed example is:
Step 5: Finish & Test
Once all steps are completed and the progress bar for deployment of the configuration reaches 100% you should be able to connect to your service on your Filtered IP.
This Filtered IP is the address that you should use in any DNS names, or supply to any connecting users. All traffic which arrives at configured ports on a Filtered IP will be filtered for attack, and then forwarded to your configured backend server.
Note:
Keep host and provider firewalls enabled. Allow the required service traffic from the current Backend Communication IP Addresses shown in the Dashboard. For tunnels, also allow the selected tunnel protocol between its endpoints.
If your Minecraft fork supports and is configured to accept PROXY v2 headers, choose PROXY(v2) under Backend method, retain the Minecraft protocol, and click Save. Do not enable this method for a backend that expects an ordinary Minecraft connection.
Have Fun!

