Repository navigation
ViaProxy
MineAlphaProxy ships with ViaProxy bundled inside the JAR. This lets clients from 1.7.2 to 26.3 connect, while your backend servers can stay on a single version.
ViaProxy is a standalone translator that accepts connections from clients on any Minecraft version, converts the packets, and forwards them to a target server. It is built on top of ViaVersion, ViaBackwards and ViaRewind.
MineAlphaProxy runs ViaProxy as a child process:
Client (any version)
|
v
ViaProxy :25576
|
v
MineAlphaProxy :25577
|
v
Backend (single version)
Clients connect to port 25576. MineAlphaProxy handles the proxy logic on port 25577.
- On startup, MineAlphaProxy extracts the embedded
ViaProxy.binfrom its JAR to%TEMP%\minealpha-viaproxy\ - It writes a
viaproxy.ymlconfig with the correct ports - It launches
java -jar ViaProxy.jar config viaproxy.ymlas a child process - ViaProxy binds to port
25576and forwards to127.0.0.1:25577 - When MineAlphaProxy stops, ViaProxy is terminated automatically
- Java 21+ - same as MineAlphaProxy
-
10-30 MB extra disk space in
%TEMP%for the extracted ViaProxy - No additional downloads - ViaProxy is already inside the MineAlphaProxy JAR
Nothing special - just start MineAlphaProxy as usual:
> run.bat
[..] INFO - Network server bound to 0.0.0.0:25577
[..] INFO - Extracted ViaProxy to C:\Users\...\Temp\minealpha-viaproxy\ViaProxy.jar
[..] INFO - ViaProxy started: bind 25576 -> target 25577
[..] INFO - ViaProxy log: C:\Users\...\Temp\minealpha-viaproxy\viaproxy.log
ViaProxy runs in the background. Its output goes to viaproxy.log, not to the console - this keeps the console clean for MineAlphaProxy commands.
| Purpose | Address |
|---|---|
| Any version (1.7.2 - 26.3) | your_ip:25576 |
| Same version as backend only | your_ip:25577 |
Tell your players to connect to port 25576. That is the recommended setup.
Your backend server must run 1.20.2 or newer if you want to support all client versions. ViaProxy translates clients, not backends.
If the backend runs an older version, some features may not work. See the ViaVersion compatibility matrix.
MineAlphaProxy's bundled ViaProxy supports these client versions out of the box:
| Era | Versions |
|---|---|
| Classic | 1.7.2 - 1.7.10 |
| Modern | 1.8 - 1.12.2 |
| Aquatic | 1.13 - 1.13.2 |
| Village | 1.14 - 1.14.4 |
| Bee | 1.15 - 1.15.2 |
| Nether | 1.16 - 1.16.5 |
| Caves | 1.17 - 1.18.2 |
| Wild | 1.19 - 1.20.6 |
| Tricky | 1.21 - 1.21.5 |
| Latest | 1.21.6 - 26.3 |
Bedrock clients are also supported through ViaBedrock - they get a Java account translated on the fly.
ViaProxy writes its output to a file:
%TEMP%\minealpha-viaproxy\viaproxy.log
View the last 50 lines:
Get-Content "$env:TEMP\minealpha-viaproxy\viaproxy.log" -Tail 50Follow it live (PowerShell):
Get-Content "$env:TEMP\minealpha-viaproxy\viaproxy.log" -Wait -Tail 20Typical startup output:
[main/INFO] (ViaProxy) Initializing ViaProxy CLI v3.4.14
[main/INFO] (ViaProxy) Using java version: Java 21.0.12
[main/INFO] (ViaVersion) ViaVersion detected lowest supported version by the proxy: 1.7.2-1.7.5 (4)
[main/INFO] (ViaVersion) Highest supported version by the proxy: 26.3 (777)
[main/INFO] (ViaProxy) ViaProxy started successfully!
[main/INFO] (ViaProxy) Binding proxy server to 0.0.0.0:25576
ViaProxy is configured through a generated viaproxy.yml written on every launch:
bind-address: 0.0.0.0:25576
target-address: 127.0.0.1:25577
target-version: auto
server-icon: false
legacy-passthrough: true| Key | Description |
|---|---|
bind-address |
Address and port ViaProxy listens on |
target-address |
Where to forward traffic - always MineAlphaProxy |
target-version |
auto detects the backend version; set explicitly if auto-detection fails |
server-icon |
Show the backend's icon in the server list |
legacy-passthrough |
Allow 1.6 and older clients |
The file is rewritten on each launch. To change settings, edit ViaProxyLauncher.java in the source and rebuild.
If you do not need multi-version support, ViaProxy is simply not started when the embedded resource is missing.
To disable in a build:
- Remove
libs/ViaProxy.jar - Rebuild:
./gradlew clean build
The proxy will start without ViaProxy and print:
WARN c.m.c.viaproxy.ViaProxyLauncher - Embedded ViaProxy.bin not found - Via disabled
Clients must then match the backend version exactly.
ViaProxy could not determine the backend's version from target-version. This is a warning, not an error - it will auto-detect on the first client connection.
To silence it, set target-version to an exact value. In ViaProxyLauncher.java:
String yaml =
"bind-address: 0.0.0.0:" + bindPort + "\n" +
"target-address: 127.0.0.1:" + targetPort + "\n" +
"target-version: 1.21.4\n" + // <- exact version here
"server-icon: false\n" +
"legacy-passthrough: true\n";Rebuild and restart.
Another process is using port 25576. Common causes:
- A previous ViaProxy process did not shut down
- Another proxy (BungeeCord, Velocity) is running
Check on Windows:
netstat -ano | findstr :25576Kill the process by PID:
taskkill /PID <pid> /FCheck:
- Firewall allows inbound on port
25576 -
target-addresspoints to127.0.0.1:25577(default) - MineAlphaProxy is actually running on port
25577
View the ViaProxy log for connection attempts:
Get-Content "$env:TEMP\minealpha-viaproxy\viaproxy.log" -Tail 100Check the log file for exceptions. Common cause: Java version too old. ViaProxy 3.x requires Java 21+.
Verify:
java -version
ViaProxy is not running, or the client is on a version older than 1.7.2.
Make sure the client connects to port 25576, not 25577.
When a new ViaProxy release is out:
- Download
ViaProxy-x.y.z.jarfrom https://github.com/ViaVersion/ViaProxy/releases - Replace
libs/ViaProxy.jarin the source - Rebuild:
./gradlew clean build - Delete
%TEMP%\minealpha-viaproxy\so the new version is extracted on next launch
- ViaProxy translates packets - it does not bypass authentication
- Premium players are still verified by Mojang
- Cracked players still get offline UUIDs
- Modern forwarding (see Modern-Forwarding) still secures the proxy-to-backend link
- Modern Forwarding - secure proxy-to-backend data
-
Configuration - full
core.ymlreference - Troubleshooting - more error fixes