Proxy Protocol Support
Proxy Protocol Support is a Fabric and Quilt mod which adds support for Proxy Protocol (HAProxy) for your Minecraft server. It allows to accept both proxied and direct connections simultaneously.
For example you can use TCPShield or other software (Nginx, FRP) to forward traffic, and hide your server's IP address. Without Proxy Protocol, your console will only show the proxy's IP address. By reading the Proxy Protocol packet, this mod makes showing the player's real IP address possible.
This is a Server-Side only mod; it does nothing when installed on a client.
Supports Minecraft versions 1.14-26.1 and probably later (untested).
Secure Hybrid Mode
This mod allows your Minecraft server to simultaneously accept connections from a trusted proxy (using the PROXY protocol) and from trusted direct-access IPs. This is perfect for setups where you want to hide your server's IP behind a proxy, while still allowing admins or local players to connect directly.
The mod operates on a secure "Default Deny" principle. If an incoming connection's IP address is not explicitly whitelisted in one of the lists below, it will be rejected. This prevents unauthorized users from bypassing your proxy and connecting directly to your server's real IP address.
Configuration
Configuration is handled in config/proxy_protocol_support.json.
enableProxyProtocol
Set to true to enable the mod's functionality.
- Default:
true
proxyServerIPs
A list of IP addresses that are your trusted proxy servers. Connections from these IPs must send a PROXY Protocol header.
- Default:
["127.0.0.1"]
directAccessIPs
A list of IPs or CIDR ranges that are allowed to connect directly without a PROXY Protocol header. This is ideal for admins, local network players, and server-side tools.
- Default:
["127.0.0.1", "192.168.0.0/16"]
whitelistTCPShieldServers
When true, the mod automatically fetches TCPShield's official proxy IPs and adds them to the trusted proxyServerIPs list.
- Default:
false
Example Scenarios
Scenario 1: Server behind FRP on the same machine
You run frpc on the same machine as the Minecraft server. Players from the internet connect through the proxy. You want to connect directly from your gaming PC on the same LAN (192.168.1.100).
proxyServerIPs = ["127.0.0.1"]
directAccessIPs = ["127.0.0.1", "192.168.1.100"]
Scenario 2: Server protected by a remote proxy service
Your server is at home, and you use a VPS with the IP 203.0.113.10 as a proxy. You want your entire home network (192.168.0.0/24) to have direct access.
proxyServerIPs = ["203.0.113.10"]
directAccessIPs = ["127.0.0.1", "192.168.0.0/24"]
Scenario 3: Maximum Security (Proxy Only)
You only want to allow connections through your proxies and nothing else (not even from the local machine).
proxyServerIPs = ["1.2.3.4", "5.6.7.8"] # Your proxy IPs
directAccessIPs = [] # Leave empty
Looking for Minecraft server? Visit BedrockHost.pl
How to Install Proxy Protocol Support (Mod)
Proxy Protocol Support by PanSzelescik is verified for Fabric, Forge, Quilt across Minecraft versions 1.14, 1.14-pre1, 1.14-pre2, 1.14-pre3, 1.14-pre4, 1.14-pre5, 1.14.1, 1.14.1-pre1 (latest release: 1.2.2-fabric, file size: 54 KB). Follow the steps below to install it safely from ModCraft.tv:
- Click the Download button above and select your Minecraft version (1.14, 1.14-pre1, 1.14-pre2, 1.14-pre3, 1.14-pre4, 1.14-pre5, 1.14.1, 1.14.1-pre1) and platform (Fabric, Forge, Quilt).
- Make sure you have the compatible loader or environment installed for Fabric, Forge, Quilt.
- Move the downloaded Proxy Protocol Support file into your Minecraft
.minecraft/modsfolder and launch the game.
All Versions
+ Add Version- Fixed IPv6 CIDR matching — /32 was treated as a full mask regardless of address family, breaking prefix matching for IPv6 addresses
- Added hybrid connection mode — when an IP is on both proxyServerIPs and directAccessIPs lists, the mod now detects PROXY protocol header at runtime and handles the connection accordingly
- Added unit tests for CIDRMatcher
- Updated Netty HAProxy codec to 4.2.13.Final
Forced update by Mojang. It’s impressive that, until yesterday, a single version of
Proxy Protocol Support could handle versions ranging from 1.13 to 1.21.11. Minecraft 26.1 has done away with game code obfuscation. Had it not been for that, the previous version would still be working. In fact, it would still be working; all that was needed was a recompile to disable the remapping. Interestingly, the server listening code hasn’t changed at all! Impressive...
- Updated to Minecraft 26.1 and newer with Fabric
Now, you can simultaneously accept connections from a trusted proxy (using the PROXY protocol) and from trusted direct-access IPs. This is perfect for setups where you want to hide your server's IP behind a proxy, while still allowing admins or local players to connect directly. (#22) (Thanks @jtnqr!)
For this reason, the configuration has been slightly modified. For more information, please see the README.md file.
- Tested with Minecraft 1.21.10
- Bump
io.netty:netty-codec-haproxyfrom4.1.114.Finalto4.2.7.Final
- Update io.netty:netty-codec-haproxy
4.1.91.Final->4.1.112.Final - Update used Fabric Loader
0.14.17->0.16.3 - Update used Gradle
7.2->8.10
Should still work on Minecraft versions 1.14-1.21.1
- 1.19.4-45.0.49
- 1.19.3-44.1.23
- 1.19.2-43.2.8
- 1.19.1-42.0.9
- 1.19-41.1.0
Lower versions currently not working
- Update dependencies
- Should work on Minecraft 1.14-1.19.3
- Tested on Minecraft 1.14 with Java 8, and Minecraft 1.19.3 with Java 17
Tested with Fabric and Quilt 1.14-1.19, should work also on snapshots