Skip to main content
Proxy Basics

What is a Minecraft Proxy? Complete Technical Guide [2026]

7 min read

What is a Minecraft Proxy? The Definitive Technical Guide

When most developers hear the term "proxy," they immediately think of HTTP proxies rotating IP addresses for web scraping. However, in the Minecraft ecosystem, a proxy serves a much more architectural and functional role. A Minecraft Proxy is a server that acts as a gateway, translator, or manager for Minecraft connections.

This guide covers the technical differences between server-side networking proxies (BungeeCord/Velocity) and specific utility proxies like Geyser, along with how to implement them in your infrastructure.

---

1. The Two Definitions of "Minecraft Proxy"

It is crucial to distinguish between the two main ways this term is used, as they serve completely different technical purposes.

A. The Networking Proxy (Reverse Proxy)

This is the most common meaning in server administration. It acts as a Reverse Proxy.

  • Technical Role: It listens on a specific TCP port (default 25565) for incoming client connections using the Minecraft Handshake Protocol. Once a client connects, the proxy authenticates them (via Mojang/Microsoft sessions) and then forwards that connection to a backend server (like Spigot, Paper, or Fabric) running on a different port (e.g., localhost:25566).
  • Software: The industry standards are Velocity (modern, high-performance, Java-based) and BungeeCord (legacy, widely supported).
  • Use Case: Creating a "Network" of servers (Lobby, Survival, Skyblock) under one IP address.
  • B. The Translation Proxy (Geyser)

    This refers to a proxy that translates data between two different protocols.

  • Technical Role: The Geyser proxy sits between a *Minecraft: Bedrock Edition* client and a *Minecraft: Java Edition* server. It translates Bedrock packets into Java packets and vice-versa. To the Java server, the Bedrock player looks exactly like a Java client.
  • Use Case: Allowing mobile (iOS/Android) and console players to join PC servers.
  • ---

    2. Why Use a Minecraft Proxy? (Technical Benefits)

    Using software like Velocity or Nginx (for TCP forwarding) provides significant infrastructure advantages.

    A. Single IP Entry Point

    Without a proxy, you would need to give players different IP addresses and ports for every server (e.g., play.myserver.com:25565 for lobby and play.myserver.com:25566 for survival). This is bad User Experience (UX). A proxy allows all players to connect via play.myserver.com, and the proxy routes them internally based on server logic or portals.

    B. Load Balancing and Scalability

    Proxies allow you to separate the "front-end" connection handling from the "back-end" game logic.

  • Example: You can run multiple backend "Survival" servers on different physical machines. The proxy can intelligently send Player A to Survival-Server-1 and Player B to Survival-Server-2 to distribute the CPU load.
  • C. Cross-Version and Cross-Platform Support

    A proxy can handle protocol version differences. For example, a player on version 1.20.4 might connect to the proxy, which translates packets so they can play on a server running 1.20.1. Similarly, Geyser acts as a bridge for the vastly different Bedrock protocol.

    ---

    3. Comparison: BungeeCord vs. Velocity

    If you are setting up a Minecraft proxy in 2025, you should not be using BungeeCord unless you have legacy plugins that require it. Velocity is the modern successor.

    | Feature | BungeeCord | Velocity (Recommended) | | :--- | :--- | :--- | | Performance | Moderate; suffers with high player counts due to legacy threading. | High; optimized with Netty and asynchronous coding for better throughput. | | Security | Vulnerable to certain bot attacks and player data leaks in older versions. | Built-in modern encryption, packet limiter, and login security. | | Compatibility | Supports very old Minecraft versions. | Supports modern versions (1.13+). | | Packet Handling | Can block/modify packets. | Faster packet processing with better memory efficiency. |

    ---

    4. Technical Implementation: Setting Up a Proxy

    Setting up a proxy requires editing configuration files (config.yml) and ensuring your firewall routes traffic correctly.

    Scenario: Connecting a Proxy to a Backend Server

    In this standard setup, the Proxy listens on port 25565, and the Backend Server listens on port 25566 (localhost).

    Step 1: Configure the Backend (Spigot/Paper)

    You must prevent players from connecting directly to the backend server. Otherwise, they will bypass the proxy, causing issues with plugins and UUIDs.

    In spigot.yml or paper.yml:

    settings:
    

    bungeecord: true # Tells the server to trust the proxy for IP information

    *Note: If you are using Velocity in modern setups, you set velocity-support: true in paper.yml and generate a forwarding secret.*

    Step 2: Configure the Proxy (Velocity)

    In your velocity.toml config file:

    [bind]
    

    The address the proxy will listen for connections on

    bind = "0.0.0.0:25565"

    [servers]

    Define your backend servers here

    lobby = "127.0.0.1:25566" survival = "127.0.0.1:25567"

    [try]

    Which server to send players to when they first join

    connect-order = ["lobby"]

    Scenario: Using Nginx as a TCP Proxy

    Some admins use Nginx to proxy TCP traffic to hide the backend server's IP or handle SSL (if using a custom launcher).

    *Note: Standard Nginx is for HTTP. Minecraft is TCP. You need stream module support.*

    Nginx Configuration (nginx.conf):

    stream {
    

    upstream minecraft_backend { server 127.0.0.1:25566; # You can add multiple servers here for load balancing }

    server { listen 25565; proxy_pass minecraft_backend;

    # Required for Minecraft keep-alive proxy_timeout 3600s; proxy_connect_timeout 3600s; } }

    ---

    5. Specialized Use Cases

    The Geyser Proxy

    Geyser is technically a standalone proxy. You can run it as a plugin (on your server) or as a standalone proxy (standalone program).

  • Setup: You run the Geyser standalone program. It listens on port 19132 (UDP, for Bedrock). It connects to your Java server on 25565.
  • Firewall Rule: You must open UDP port 19132 on your firewall.
  • Client-Side Tunneling Proxies

    Sometimes "Minecraft Proxy" refers to a client-side tool used to play behind a restrictive firewall (e.g., at school or work).

  • How it works: The user runs software like SSH Tunneling or a specialized socksifier. The Minecraft game client is configured (via JVM arguments or system settings) to route traffic through the SOCKS proxy, bypassing the restrictive network's blocks on minecraft.net or the server IP.

---

6. Security Considerations

When operating a proxy, you open yourself to new attack vectors.

1. Bot Attacks: Since proxies handle the initial handshake, they are the first line of defense against bot login attacks. Velocity handles this better than BungeeCord, but you should install a plugin like FastLogin or utilize rate-limiting. 2. IP Forwarding: If bungeecord: true is set in Spigot, the server "trusts" the proxy. If a malicious user manages to connect directly to the backend server, they can spoof their UUID and pretend to be the server admin. Ensure your backend server is firewalled (via iptables or Windows Firewall) so it *only* accepts connections from localhost (the proxy).

---

7. Conclusion

A Minecraft proxy is the backbone of any professional server network. Whether you are using Velocity to manage thousands of players across mini-games, or Geyser to expand your player base to mobile devices, understanding how traffic flows between the proxy and the backend is essential for server administration.

Share: