Driver FixRecommendedSound, Wi-Fi or graphics acting up? Check drivers firstFind missing or outdated drivers fast.Check DriversOctober DealsAmazon USOctober deal check: compare before you payAmazon US: current deals, useful picks and tech finds.Check DealsClean PCRecommendedOne scan can reveal what keeps slowing WindowsLook for cleanup and repair opportunities.Run Scan×
Skip to content
World desk11 min

How to Make a BungeeCord Server for Minecraft: Complete Proxy Setup and Security Guide

A practical guide to creating a BungeeCord proxy network with Spigot or Paper backends, including config.yml examples, Java startup commands, forwarding, firewall security, plugins, and troubleshooting.
Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

BungeeCord is a standalone proxy that connects multiple Minecraft Java servers; it does not host a world itself. To build a working network, install Java, place the BungeeCord JAR in its own directory, run it once to generate files, register each Spigot or Paper backend in config.yml, enable IP forwarding, and prevent players from reaching backend ports directly.

The proxy should be the public entry point and authentication boundary. Backend servers run separately on their own ports, normally in offline mode for the documented forwarding model, while the proxy remains in online mode.

As an Amazon Associate I earn from qualifying purchases.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

How the BungeeCord architecture works

A BungeeCord network has three distinct pieces:

Component What it does Typical exposure Where it is configured
BungeeCord proxy Accepts the player’s connection, authenticates it, and routes the connection between backend servers. Public Minecraft port, commonly 25565 Proxy directory and config.yml
Lobby backend Provides the initial world or hub to which players connect. Private port, such as 25566 Its own server.properties, spigot.yml, and plugin directory
Additional backend Runs a survival, minigame, creative, or other game mode. Another private port, such as 25567 Its own server files and plugins

SpigotMC’s BungeeCord FAQ describes it as “a standalone application that connects Minecraft server together (a proxy).” The proxy does not load chunks, save worlds, or replace a normal Minecraft server. Every playable world remains on a Spigot, Paper, or compatible backend instance.

A player connects to the proxy’s address only once. BungeeCord then opens a connection to the selected backend and carries the player’s session between servers. Each backend therefore needs a unique address and port, and each name used for a server must match the name referenced by commands, priorities, and plugins.

#1 Best Overall
Minecraft | Java & Bedrock Deluxe Collection | Windows Digital Code
  • DELUXE COLLECTION — Includes Minecraft: Java & Bedrock Edition, three Bedrock add-ons, three exclusive Character Creator items, and 700 Minecoins.
  • CREATE YOUR WORLD — Build whatever you imagine in an infinite world that’s unique in every playthrough.
  • EXPLORE AND CRAFT — Discover biomes, resources, and mobs, then craft your way through a sandbox world filled with surprises.
  • SURVIVE THE ADVENTURE — Face mysterious foes, travel across exciting landscapes, and venture into perilous dimensions.
  • PLAY TOGETHER — Play cross-platform with friends in Bedrock Edition on console, mobile, and PC, or join community servers in Java Edition on PC, Mac, and Linux. Online console multiplayer requires a platform-specific subscription (sold separately).

What you need before installing

  • A machine or hosting plan that permits long-running Java processes, custom JAR files, multiple listening ports, and firewall rules.
  • Java 8 or newer. The SpigotMC installation guidance specifies Java 8 or later; check the requirement of the particular BungeeCord build you download if it is newer.
  • A BungeeCord build downloaded from its official project distribution and renamed, or saved, as BungeeCord.jar.
  • At least one already-working Spigot or Paper server for the first backend. More servers can be added later.
  • Separate directories for the proxy and every backend. Do not put the proxy JAR in a world directory or share a single plugins folder between them.
  • Administrative access to bind addresses and configure the operating system firewall.

The often-cited guideline of approximately 512 MB of RAM for every 500 players is only a broad starting recommendation, not a capacity guarantee. Plugins, view distance, redstone activity, world generation, Java version, and the workload of the backend servers can change the actual requirement substantially. The backends normally need more memory than the proxy because they run the worlds.

Install Java and create the proxy directory

Check Java

Open a terminal or command prompt and run:

java -version

The output should show a supported Java runtime. If the command is missing, install a supported Java package for your operating system, then open a new terminal and verify the command again. Keep the Java executable used by the proxy consistent with the one used by your backend servers where practical; this makes updates and troubleshooting easier.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Create a dedicated directory

On Linux or another Unix-like system:

mkdir -p ~/minecraft-network/proxy
cd ~/minecraft-network/proxy

On Windows, create a folder such as C:minecraft-networkproxy and place the downloaded JAR there. Keep a sibling directory for each backend, for example lobby and survival. A layout like this keeps logs, plugins, configuration, and backups independent:

minecraft-network/
├── proxy/
│   ├── BungeeCord.jar
│   ├── config.yml
│   └── plugins/
├── lobby/
│   ├── server.properties
│   ├── spigot.yml
│   └── plugins/
└── survival/
    ├── server.properties
    ├── spigot.yml
    └── plugins/

Run BungeeCord once and generate its files

From the proxy directory, start the JAR with a modest initial heap:

java -Xms512M -Xmx512M -jar BungeeCord.jar

The first run creates the proxy’s configuration and working files. Allow it to finish, then stop it cleanly from its console with:

end

Do not edit config.yml while the process is actively rewriting it. Stopping first prevents an in-memory configuration from overwriting your changes and gives you a clean point from which to make a backup.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #2
Minecraft | Java & Bedrock Ultimate Collection | Windows Digital Code
  • ULTIMATE COLLECTION — Includes Minecraft: Java & Bedrock Edition, five Bedrock add-ons, five exclusive Character Creator items, and 1000 Minecoins.
  • CREATE YOUR WORLD — Build whatever you imagine in an infinite world that’s unique in every playthrough.
  • EXPLORE AND CRAFT — Discover biomes, resources, and mobs, then craft your way through a sandbox world filled with surprises.
  • SURVIVE THE ADVENTURE — Face mysterious foes, travel across exciting landscapes, and venture into perilous dimensions.
  • PLAY TOGETHER — Play cross-platform with friends in Bedrock Edition on console, mobile, and PC, or join community servers in Java Edition on PC, Mac, and Linux. Online console multiplayer requires a platform-specific subscription (sold separately).

Keep the process alive after an SSH disconnect

If the proxy runs on a remote Linux machine, use tmux or screen rather than launching it in a short-lived SSH shell. For example:

tmux new -s bungee
cd ~/minecraft-network/proxy
java -Xms512M -Xmx512M -jar BungeeCord.jar

Detach from tmux without stopping the proxy using its detach shortcut, then reconnect later with tmux attach -t bungee. A service manager is preferable for production because it can restart the process and capture logs, but the terminal multiplexer is a simple way to keep a manual installation running.

Use a startup script

A Linux script named start.sh can make the command repeatable:

#!/bin/sh
cd "$(dirname "$0")"
exec java -Xms512M -Xmx512M -jar BungeeCord.jar

Make it executable with chmod +x start.sh, then run ./start.sh. On Windows, save this as start.bat in the same directory:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
@echo off
cd /d "%~dp0"
java -Xms512M -Xmx512M -jar BungeeCord.jar
pause

The pause line leaves the window open when a startup error occurs, so you can read it instead of having the window close immediately.

Configure the proxy in config.yml

After the first run has stopped, open config.yml in the proxy directory. The exact generated file contains additional options, but this is a compact working pattern for a proxy with a lobby and survival backend:

Rank #3
Minecraft | Standard Edition | XBOX Digital Code
  • CREATE YOUR WORLD — Build whatever you imagine in an infinite world that is unique in every playthrough.
  • EXPLORE AND CRAFT — Discover biomes, resources, and mobs, then craft your way through a sandbox world full of surprises.
  • SURVIVAL ADVENTURES — Face mysterious foes, travel across varied landscapes, and venture into perilous dimensions.
  • PLAY TOGETHER — Play solo or join friends in local split-screen and cross-platform play across console, mobile, and PC. Online multiplayer supports up to 8 players.
  • COMMUNITY PLAY — Connect with players on community servers, or subscribe to Realms Plus (sold separately) to play with up to 10 friends on a private server.
groups:
  player: []

servers:
  lobby:
    motd: '&1Lobby'
    address: 127.0.0.1:25566
    restricted: false
  survival:
    motd: '&2Survival'
    address: 127.0.0.1:25567
    restricted: false

listeners:
- query_port: 25577
  motd: '&1My Minecraft Network'
  tab_list: GLOBAL_PING
  query_enabled: false
  proxy_protocol: false
  forced_hosts: {}
  ping_passthrough: false
  priorities:
  - lobby
  bind_local_address: true
  host: 0.0.0.0:25565
  max_players: 100
  tab_size: 60
  force_default_server: false

ip_forward: true
online_mode: true
forge_support: false

Use spaces for indentation; YAML is sensitive to indentation and tabs can cause a parse failure. Change the names, ports, and message text to match your network. The important fields are:

Field Purpose What to verify
servers Maps a lowercase server name to a backend address. Every address resolves from the proxy machine and uses the backend’s actual port.
motd Text shown for a backend or the proxy list entry. Color codes and quotation marks are valid YAML.
restricted Controls whether a permission-restricted player group is required for that backend. Use false for a normal public lobby unless you intentionally restrict it.
priorities Ordered fallback destinations for a new connection. Put a running lobby or other always-available server first.
host The address and port on which the proxy accepts Minecraft connections. Use the public interface or a specific local interface and open that port in the firewall.
max_players The player-list limit advertised by the listener. This is an advertised limit, not a performance guarantee.
ip_forward Forwards the player’s UUID and IP information to a compatible backend. Set it to true when using the documented BungeeCord forwarding model.
online_mode Makes the proxy perform Mojang account authentication. Keep it true; the proxy should be the authentication boundary.

The listener’s host is normally the only public Minecraft endpoint. If the proxy has multiple network interfaces, replace 0.0.0.0 with the interface you intend to expose. A fallback server in priorities gives a player somewhere to go when no explicit destination was requested.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Prepare every Spigot or Paper backend

Each backend is a complete Minecraft server with its own world, port, logs, and plugins. Stop the backend before editing its files.

Set a unique port and offline mode

In the backend’s server.properties, assign a different port to every instance. For a proxy and two backends on one machine, the lobby and survival might use:

# lobby/server.properties
server-port=25566
server-ip=127.0.0.1
online-mode=false

# survival/server.properties
server-port=25567
server-ip=127.0.0.1
online-mode=false

Do not copy the same port to multiple backends. The server-ip value binds the process to a particular interface. Binding to 127.0.0.1 is the strongest simple arrangement when the proxy and backend are on the same machine because outside clients cannot route directly to that loopback address.

online-mode=false is part of the documented BungeeCord forwarding arrangement: the proxy authenticates the player, then forwards identity data. It is unsafe when a backend is reachable directly, because an attacker could attempt to impersonate a name or UUID. The network controls in the next section are therefore mandatory, not optional hardening.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #4
Minecraft
  • Skins! We have biome settlers, city folk, town folk, and more!
  • The Nether and all its inhabitants. Fight Ghasts and make friends with Pigmen
  • Cross platform play for up to five players between Pocket Edition and Windows 10
  • Revamped touch controls, controller support, and a controller mapping screen
  • Enhanced Weather effects! Accumulating snow and more

Enable BungeeCord mode in spigot.yml

In every Spigot or Paper backend’s spigot.yml, set:

settings:
  bungeecord: true

Preserve the other generated settings and indentation. Paper uses Spigot-compatible configuration for this forwarding switch. Restart the backend after saving the file; changing the setting while it is running does not reliably update the active server.

Check the forwarding combination

The three settings must agree:

  • Proxy online_mode: true.
  • Proxy ip_forward: true.
  • Every backend server.properties has online-mode=false and its spigot.yml has bungeecord: true.

If one backend is left in online mode, it may reject the proxy handshake or perform a second authentication. If forwarding is disabled on either side, the backend can see the wrong address or an unexpected offline UUID, which commonly breaks permissions, skins, bans, and player data.

Prevent players from bypassing the proxy

Forwarding transmits identity; it does not protect an exposed backend port. Anyone who can connect directly to an offline-mode backend may be able to impersonate a player. Protect the network according to where the machines are located.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Proxy and backends on one machine

  1. Bind every backend’s server-ip to 127.0.0.1.
  2. Expose the proxy listener port, such as 25565, instead of the backend ports.
  3. Do not publish 25566, 25567, or other backend ports in DNS, server lists, or documentation.
  4. Use a host firewall to deny inbound traffic to backend ports even if a later configuration change accidentally binds a backend more broadly.

Proxy and backends on separate machines

Bind each backend to a private interface and allow inbound traffic on its Minecraft port only from the proxy’s private IP address. Implement this with the operating system firewall, the hosting provider’s firewall, or both. A private network or VPN is useful when the machines are in different facilities. Do not rely on a secret port number: port obscurity does not replace an allow-list.

Test the rule from an external client. A player should be able to connect to the proxy address but should not be able to establish a Minecraft connection to a backend address. If a provider supplies a public address for every virtual machine, explicitly block the backend ports rather than assuming they are private.

Best Value
Minecraft - Bedrock Edition PS4
  • Play and share with friends on console, mobile and Windows 10
  • discover community creations in the new in-game store
  • access new mini games and game modes through servers
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Place plugins in the correct directory

BungeeCord plugins and Bukkit-family plugins are different types of software:

Plugin type Install location Typical responsibility
Proxy plugin proxy/plugins/ Connection routing, proxy commands, permissions at the network layer, or maintenance mode.
Spigot/Paper plugin Each backend’s own plugins/ directory World protection, gameplay, economies, minigames, and backend commands.

A Bukkit plugin cannot simply be copied into the proxy’s directory, and a BungeeCord plugin will not run as a normal Paper plugin. Read the plugin’s stated platform and version requirements before installing it.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Paper servers can communicate with BungeeCord through plugin messaging. Treat every connected backend as trusted: a backend plugin that can send proxy messages may request actions or pass data through the network. Limit who can install plugins, keep backend administration separate from player permissions, and remove untrusted plugins rather than assuming the proxy will sanitize every message.

Start the network in a predictable order

  1. Start each backend and wait for its console to report that the server is ready.
  2. Confirm that each backend is listening on the port and interface listed in server.properties.
  3. Start BungeeCord from its dedicated directory.
  4. Watch the proxy console for configuration or connection errors before giving players the address.
  5. Connect a test account to the proxy’s public address, not to a backend address.

Starting the backends first makes the configured fallback immediately available. BungeeCord can start while a backend is offline, but a player will receive a connection failure until one of the configured destinations is running.

Test every important path before publishing the address

Use this order so a failure points to a specific layer:

  1. Proxy startup: the JAR starts without a YAML parse error, missing-class error, or bind failure.
  2. Fallback availability: the first server in priorities is running and appears as a reachable destination.
  3. Initial connection: a test player can join through the proxy listener.
  4. Server switching: use the proxy’s server-selection command, commonly /server <name>, or the method supplied by your installed proxy plugin. The name must exactly match a key under servers.
  5. Identity forwarding: check the backend log or an administrative plugin to confirm the expected UUID and player IP arrive from the proxy.
  6. Direct-access rejection: from an external network, attempt to connect to a backend address. It should fail or be unreachable while the proxy connection succeeds.
  7. Failure recovery: stop one backend and verify that new players receive the remaining priority server. Restart the stopped backend and confirm it becomes available again.
  8. Reconnect behavior: disconnect and reconnect a test account after a backend restart. Confirm that the proxy does not leave the player pointed at a permanently unavailable destination.

Troubleshoot common failures

Symptom Likely cause Fix
The proxy exits immediately with a configuration error. Invalid YAML indentation, tabs, or a malformed value. Stop the proxy, restore the last known-good file, and edit with spaces only. Check that every server entry is nested under servers: and every listener entry under listeners:.
Players cannot reach the proxy. Wrong listener port, bind address, DNS record, or firewall rule. Confirm the client’s address includes the proxy port, verify the host value, and allow that port through the host and provider firewalls.
“Could not connect to server” appears after joining. The backend is stopped, the address or port is wrong, or a firewall blocks proxy-to-backend traffic. Start the backend, compare its server-port with the servers entry, and test connectivity from the proxy machine.
The backend rejects the connection or players have incorrect UUIDs. ip_forward, bungeecord, and backend online-mode do not match. Use the three-setting combination described above, then restart both proxy and backend.
A player can join a backend directly. The backend is bound to a public interface or its firewall rule is too broad. Bind locally when co-located, or allow only the proxy’s private IP when separated. Close public backend ports.
A command or feature is unavailable. The plugin was placed in the wrong directory or is for a different platform. Install proxy plugins under the proxy’s plugins directory and Bukkit/Paper plugins under the relevant backend directory.
A backend disappears after a restart. It is listed as the only priority destination, or its restart leaves no available fallback. Keep a running lobby or maintenance backend first in priorities, and check the backend’s startup logs before reconnecting players.

Maintain the network safely

  • Back up config.yml, each backend’s configuration, world data, and plugin configuration before upgrades.
  • Record which port belongs to each server and keep that map beside your firewall rules.
  • Update the proxy and backends in a maintenance window, testing forwarding and switching after each change.
  • Run the Java processes under a dedicated operating-system account with only the file permissions they need.
  • Review proxy and backend logs for repeated connection failures, unexpected addresses, authentication errors, and plugin exceptions.
  • Keep at least one fallback backend available during planned maintenance if players need uninterrupted access.

Once the proxy, forwarding settings, and network restrictions are aligned, adding another game mode is mostly repetition: create a separate backend directory and port, configure its server entry under servers, install its backend plugins, and test switching without exposing the new port.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Quick Recap

Bestseller No. 4
Minecraft
Minecraft
Skins! We have biome settlers, city folk, town folk, and more!; The Nether and all its inhabitants. Fight Ghasts and make friends with Pigmen
$6.99
Bestseller No. 5
Minecraft - Bedrock Edition PS4
Minecraft - Bedrock Edition PS4
Play and share with friends on console, mobile and Windows 10; discover community creations in the new in-game store
$42.98

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Leave a Reply

Your email address will not be published. Required fields are marked *

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

More from the Wire

  1. World desk4 min
    How to Spot an AI Voice Scam Before Sending MoneyDon’t rely on how a caller sounds. Pause, call back through a known number, and verify the emergency with another trusted person before sending money.
  2. Mountain View desk4 min
    Google’s SynthID Detector: How to Check AI-Generated Images, Video and AudioGoogle’s SynthID Detector looks for an embedded watermark in supported images, video and audio. Here is what its results do—and do not—show.
  3. Redmond desk20 min
    How to create a link to File or Folder in Windows 11Windows 11 gives you several ways to point to a file or folder without moving or duplicating it. You can create a desktop shortcut,…
Recommended PC Tool
Recommended PC Tool
PC Slower Than It Used to Be?Free scan - under a minute
Outdated Drivers Are Slowing You DownFree scan - exact matches

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.