Multiple Minecraft Java Edition servers can be linked in a network using a Proxy server, such as BungeeCord, Waterfall, or Velocity. Since creating a network involves a number of Minecraft servers that have to be connected securely, it is generally a lot more complicated than just creating a single Minecraft server.
Creating a proxy server
As proxy server software on exaroton, you can choose from BungeeCord, Waterfall, and Velocity, each of which can be installed on the Software page.
Proxy servers usually need fewer resources than actual Minecraft servers. Therefore, you can set your server's RAM as low as 1 GB if a proxy software is used.
After installing a proxy software, you will have access to some basic configuration options on the Options page.
More advanced options can be accessed in the config file of the used proxy software.
If you use BungeeCord/Waterfall, the config file is called config.yml
.
Preparing your game servers
On server networks running behind a proxy, authentication of Mojang/Minecraft accounts is handled by the proxy and can't be handled by the individual game servers. You have to disable the online-mode
option (enable the "Cracked" option) on the options page of every server that you want to add to your network. This opens the possibility for malicious players to directly connect to the game server using any username. You have to properly secure your server, read the section below for more information.
It is highly recommended to use Paper as server software for each game server on your network, even if you only want to play survival. On your Paper server, you have to enable the bungeecord
option in the spigot.yml file even if you are using Waterfall or Velocity without the modern forwarding (more info below).
Securing your servers
To make sure that only your proxy server can be used to connect to servers in your network, it is vital that you secure your servers properly. To help you accomplish that, every proxy software on exaroton comes with BungeeGuard preinstalled and preconfigured. On BungeeCord and Waterfall, BungeeGuard is installed as a plugin, on Velocity, BungeeGuard is a built-in feature.
It is, however, required that you manually install and configure BungeeGuard on all Minecraft servers you want to use in your network.
- Install PaperMC on your Minecraft server (Spigot is not supported)
- Install the BungeeGuard plugin
- Find your BungeeGuard forwarding secret on your proxy server
- When using Velocity, you can find your secret on the Options page
- When using BungeeCord or Waterfall, you can find the secret in your BungeeGuard token.yml file.
- Add your secret to the BungeeGuard config.yml file on the server that you want to add to your network
# BungeeGuard Configuration # Allowed authentication tokens. allowed-tokens: - "0BeXPF6xSUHHp7ibx2hZHsAmkYO6mye8Q95qMbG5TdbAzI1fLkFpZBzdrRXzRPGq"
Modern Velocity forwarding
If you are using Velocity as your proxy and PaperMC 1.13+ for your Minecraft servers, you can use the modern Velocity forwarding mode instead of BungeeGuard.
- Change the
Player forwarding mode
in your Velocity server options toModern
- Make sure
bungeecord
is disabled in your spigot.yml file - Enable
velocity-support
in your paper.yml file and insert your forwarding secret - Enable cracked mode on your PaperMC server (player authentication is handled by your proxy server)
Modern Velocity forwarding can also be used with Fabric servers by using the FabricProxy-Lite mod.
Adding game servers to your network
You can add a server to your proxy by adding it to the proxies' config. Since exaroton servers are designed to start/stop dynamically, but proxies can't send you to a server that is offline, we automatically install the exaroton plugin on your proxy server.
This plugin automatically updates the servers specified in the config and adds them to your proxy, when they are started. Please note that this only works if you use the exaroton.me address of the server in the proxy config.
BungeeCord/Waterfall
On BungeeCord or Waterfall you can add servers in the config.yml file:
servers:
lobby:
motd: 'MOTD'
address: lobby.exaroton.me
restricted: false
example:
motd: 'MOTD'
address: example.exaroton.me
restricted: false
You can configure which server new players should connect to using the priorities
list in the config file. Please note that one of these servers has to be online to allow players to connect.
Read more about the BungeeCord config file here: https://www.spigotmc.org/wiki/bungeecord-configuration-guide/
You can see the list of servers and switch servers using the /server
command.
Velocity
On Velocity you can add servers in the velocity.toml file:
[servers]
lobby = "lobby.exaroton.me"
example = "example.exaroton.me"
try = ["lobby"]
They try
list specifies the default servers for new players. You can read more about the Velocity config file here: https://docs.velocitypowered.com/en/latest/users/configuration.html
You can see the list of servers and switch servers using the /server
command.
Using the exaroton plugin
You can also start and stop servers using that plugin, so they will automatically be added to/removed from the proxy. To do this, use the commands:
/exaroton start <server>
/exaroton restart <server>
/exaroton stop <server>
You can also explicitly add/remove servers without starting them. The plugin will start watching them and add them when they are online. Those changes are only temporary until the next proxy restart, use the config files to permanently add/remove servers.
/exaroton add <server>
/exaroton remove <server>
To get access to these commands, you need the permissions exaroton.start
, exaroton.restart
and exaroton.stop
. On BungeeCord and Waterfall this can be done in the config:
permissions:
default:
- bungeecord.command.server
- bungeecord.command.list
admin:
- bungeecord.command.alert
- bungeecord.command.end
- bungeecord.command.ip
- bungeecord.command.reload
- exaroton.start
- exaroton.restart
- exaroton.stop
- exaroton.add
- exaroton.remove
You can add yourself or other players as admins in the config as well:
groups:
PlayerName: # <- Enter your Minecraft name here
- admin
AnotherPlayer:
- admin
On Velocity you need a permission plugin like LuckPerms on the proxy. You can get the permissions by running this command in the console of your proxy:
/lpv user <PlayerName> permission set exaroton.*
Autostart
Additionally, you can configure the plugin to automatically start specific servers when the proxy starts. To do so, set auto-start → enabled to true and add your servers to the list in auto-start → servers.
# Automatically start servers when the proxy starts
auto-start:
enabled: false
servers:
- example.exaroton.me
Since the plugin needs access to the API to watch/start/stop your server, we automatically add your API token to the plugins' config when installing a proxy software.