Skip to content

A Proxy that allows legacy bungeecord on modern-forwarding proxies

Notifications You must be signed in to change notification settings

GrandmasterB42/Minecraft-forwarding-translation-Proxy

Repository files navigation

Forwarding Translation Proxy

A Minecraft Java Edition proxy intended for connecting old Minecraft Version servers, that only support legacy bungeecord forwarding, to Velocity Modern Forwarding Networks.

Important

This proxy will not work for you out of the box, please consult the Proxy Compatibility section first.

Note

This project is, even though not tested for all versions, intended to work for Minecraft versions 1.7.2 to 1.12.2, as these are supported by Velocity, but don't support Modern Forwarding. As I am not testing all of these versions, please report any issues and I will get to fixing them.

How to use

Caution

The connection to this Proxy may be more secure through the use of the Modern Forwarding protocol, but the connection from this proxy to the backend server is still insecure. Please make sure you have everything configured properly before you let people connect

Look at the Running section for more information on how to run the proxy.

  1. If a Config.toml file, which can also be seen in this repository, does not exist, start the application once, it will create a default config file and then exit.
  2. Fill out the config options, this should be pretty self-explanatory, but here is an overview:
    • listen_address: You can configure the address this proxy is reachable at here, this is what your Modern Proxy forwards the connections to.
    • backend_address: The address of your backend server, this is your Minecraft server that only supports legacy bungeecord forwarding.
    • forwarding_secret: This is the secret found in forwarding.secret in your Velocity configuration. You can also configure this through the environment variable FORWARDING_SECRET.
    • trusted_ips: This is a list of ip addresses that connections are allowed from, this should be the address of your Modern Proxy(s). Although not recommended, you can leave this empty to allow all connections if you know what you are doing or for development.
    • log_level: The logging verbosity of this proxy. Should not need to be adjusted unless you are developing or reporting an error.
  3. Point your MODIFIED Modern Proxy to whatever ip address and port you configured in listen_address.
  4. Make sure your backend server is configured to accept legacy bungeecord connections and is running at the specified backend_address.
  5. Start the application (again), it should now be running and listening for connections, connecting your legacy server to it and your modern proxy.

Proxy Compatibility

This application will most likely not work for you out of the box, I only tried this with Velocity, I suspect other proxies like Gate will have similar issues. Your Proxy will definitely need to support the modern forwarding protocol for this to work!

Modifying Velocity

I recommend compiling Velocity yourself, the changes that need to be done are minor and easy to understand. You can inspect them in the diff and apply them yourself to whatever version of Velocity you want to use, it is probably similar for most versions.

Running

Compiling from source

If you want to compile the proxy yourself:

  1. Install Rust (latest stable version)

  2. Clone this repository:

    git clone https://github.com/GrandmasterB42/forwarding_translation_proxy.git
    cd forwarding_translation_proxy
  3. Build the application:

    cargo build --release
  4. The binary will be available at target/release/forwarding_translation_proxy

Native

Download the pre-compiled binary for your platform from the latest release

Extract the binary to your desired location

Docker

Pull and run the Docker image from GitHub Container Registry:

docker run -p <host-port>:<container-port> \
  -v $/path/on/your/host/Config.toml:/app/Config.toml \
  -e FORWARDING_SECRET=<your-secret> \
  ghcr.io/grandmasterb42/forwarding_translation_proxy:latest

Resources I used

Thanks to all the awesome people that made the following resources available!

About

A Proxy that allows legacy bungeecord on modern-forwarding proxies

Topics

Resources

Stars

Watchers

Forks

Packages