Direct answer
A Minecraft proxy is a separate server process that sits in front of one or more backend Minecraft servers. Players connect to the proxy first; the proxy can then route them to a lobby, survival server, minigame server, modded server, or another backend without making players reconnect to a different public address.
You usually do not need a proxy for one normal Minecraft server. Add one when you actually need multiple backends, centralized connection handling, or network-level routing.
What a proxy actually does
A proxy such as Velocity or BungeeCord accepts the player's network connection and then opens a separate connection to a backend server on the player's behalf. It can provide one public entry point for an entire network and decide which backend each player should join.
A proxy is not a replacement for Paper, Purpur, Fabric, Forge, or another game server. Those backends still run the worlds and gameplay. The proxy handles connections between the player and those servers.
When a proxy makes sense
- Multiple servers: you have a lobby plus survival, minigames, creative, events, or other separate backends.
- One public address: players should connect to one hostname and move between backends without manually changing server addresses.
- Network-wide routing: you want forced hosts, fallback servers, or a central place to control where players connect.
- Network-level plugins: some features need to operate at the proxy layer rather than inside one backend server.
- Scaling or isolation: different workloads can run on separate JVMs or machines instead of one server process.
When you probably do not need one
If you run one Paper, Purpur, Fabric, Forge, or Vanilla server and players only need to join that one world/server process, a proxy normally adds complexity without solving a real problem. You now have another process, another port, another configuration, player forwarding, firewall rules, and another place where a connection can fail.
Do not add Velocity or BungeeCord simply because a setup guide calls it an optimization. A proxy does not automatically make one backend server faster.
Authentication and player forwarding
online-mode=false because the proxy authenticates players. That does not mean the backends should be exposed directly to the internet.With Velocity modern forwarding, the proxy forwards player information such as UUIDs, addresses, and skins using a shared secret. Paper's documentation recommends modern forwarding for Minecraft 1.13+ when possible. Legacy BungeeCord-style forwarding has wider old-version compatibility but is fundamentally less secure.
After placing a backend in offline mode, secure it so players cannot bypass the proxy and connect directly. Use the proxy's documented forwarding method and appropriate firewall/network isolation.
Velocity vs BungeeCord
Velocity is PaperMC's modern proxy and supports modern player information forwarding. BungeeCord is the older SpigotMC proxy with a large historical ecosystem. Which one fits depends on your plugins, versions, and network requirements, but new networks should compare their current documentation instead of assuming old BungeeCord tutorials apply to Velocity.
A simple network layout
Players
|
v
Velocity / BungeeCord <-- public address
| | |
v v v
Lobby Survival Minigames
backend backend backendOnly the proxy needs to be the normal public entry point. Backend servers should be reachable by the proxy but protected from untrusted direct connections.
References
These sources were checked while preparing this article. Version-specific behavior can change, so use the documentation for your exact server and client versions when details differ.
- PaperMC: Velocity getting started
- PaperMC: Velocity player information forwarding
- PaperMC: Velocity configuration
- PaperMC: Velocity server compatibility
Related guides
Help us improve this article
Tell us what is missing, unclear, outdated, or incorrect. You can also suggest something we should add.