Configurar un proxy Velocity para tu red de servidores
Guía completa para instalar y configurar Velocity como proxy, conectar servidores backend, configurar forwarding y resolver problemas comunes.
Tabla de contenidos
Introducción
Un proxy actúa como puerta de entrada a tu red de servidores Minecraft. Los jugadores se conectan al proxy y este los redirige al servidor correspondiente (lobby, survival, minijuegos, etc.) sin que el jugador tenga que escribir direcciones diferentes. Velocity es el proxy moderno recomendado: es rápido, seguro y está activamente mantenido. En esta guía aprenderás a instalarlo, configurarlo y conectarlo con tus servidores Paper.
1. Proxy vs servidor backend — conceptos básicos
Antes de empezar, es importante entender la diferencia:
| Componente | Rol | Ejemplo |
|---|---|---|
| Proxy | Puerta de entrada. Los jugadores se conectan aquí primero. | Velocity (IP pública: 25565) |
| Backend | Servidor que ejecuta el mundo real. No expuesto directamente. | Paper en localhost:25566 (lobby), :25567 (survival) |
El proxy escucha en el puerto público (25565) y cada backend escucha en puertos internos (25566, 25567, etc.) solo accesibles desde el proxy.
Ventajas de usar un proxy
- Un solo IP de conexión — los jugadores siempre usan la misma IP, sin importar a qué servidor quieran ir.
- Balanceo de carga — puedes tener múltiples instancias del mismo servidor y distribuir jugadores entre ellas.
- Mantenimiento sin desconexión — puedes reiniciar un backend sin que los jugadores pierdan la conexión al proxy.
- Seguridad — los backends están ocultos tras el proxy, reduciendo la superficie de ataque.
- Conmutación instantánea — cambiar de servidor es instantáneo (usando
/server lobbyo portales BungeeCord).
2. Instalación de Velocity
Velocity requiere Java 11 o superior y es compatible con Minecraft 1.7.2 hasta la versión más reciente.
Descarga
Descarga el JAR desde la página oficial de Velocity o usa este comando:
# Descargar la última versión estable
curl -o velocity.jar https://api.papermc.io/v2/projects/velocity/versions/3.4.0/builds/1/downloads/velocity-3.4.0-1.jar
Estructura de carpetas
proxy/
├── velocity.jar
├── plugins/ # Plugins del proxy (opcional)
├── velocity.toml # Configuración principal
├── forwarding.secret # Secreto compartido con backends
└── server.pem # Para forwarding moderno (opcional)
Script de inicio
java -Xms256M -Xmx512M -jar velocity.jar
Velocity consume muy poca RAM porque no carga mundos ni chunks. 512 MB son más que suficientes incluso para redes grandes.
# start-proxy.ps1 (PowerShell)
$jar = "velocity.jar"
$javaArgs = @(
"-Xms256M"
"-Xmx512M"
"-XX:+UseG1GC"
"-XX:G1HeapRegionSize=4M"
"-XX:+UnlockExperimentalVMOptions"
"-XX:+ParallelRefProcEnabled"
"-XX:+AlwaysPreTouch"
"-jar", $jar
)
& "java" $javaArgs
3. Configuración de velocity.toml
# ─── Conexión ───
bind = "0.0.0.0:25565" # IP y puerto donde escucha el proxy
motd = "&6Mi Red Minecraft" # MOTD que ven los jugadores en el listado de servidores
show-max-players = 500 # Jugadores máximos mostrados (no es un límite real)
online-mode = true # true = online mode (premium), false = offline (crackeado)
# ─── Compression ───
compression-threshold = 256 # Tamaño mínimo en bytes antes de comprimir (default 256)
compression-level = 6 # Nivel de compresión 1-9 (6 es buen balance)
# ─── Forwarding ───
player-info-forwarding-mode = "modern" # MODERN, BUNGEEGUARD, LEGACY, NONE
# forward-mode = "modern" usa forwarding.secret (recomendado)
# ─── Servers ───
[servers]
lobby = "127.0.0.1:25566"
survival = "127.0.0.1:25567"
creative = "127.0.0.1:25568"
minigames = "127.0.0.1:25569"
[forced-hosts]
"lobby.mired.com" = "lobby"
"survival.mired.com" = "survival"
"creative.mired.com" = "creative"
# ─── Global ───
try-versions-between-1-7-and-1-21 = true # Permite conectar clientes de versiones intermedias
Explicación de player-info-forwarding-mode
| Modo | Descripción | Cuándo usarlo |
|---|---|---|
none | No envía información del jugador. Los backends ven todas las conexiones como si vinieran de 127.0.0.1. | Solo pruebas locales. Inseguro para producción. |
legacy | Envía información del jugador en el handshake. Funciona con BungeeCord y servidores antiguos. | Redes legacy que ya usan BungeeCord. |
bungeeguard | Similar a legacy pero con un token secreto. | Si necesitas compatibilidad con BungeeCord pero con seguridad extra. |
modern | Usa el archivo forwarding.secret. Es el método más seguro y el recomendado por Velocity. | Siempre que sea posible — requires Minecraft 1.13+ en los backends. |
4. Configurar Paper como backend
Cada servidor Paper que actúe como backend debe configurarse para aceptar conexiones del proxy.
server.properties
# Desactivar online-mode en el backend (el proxy se encarga de la autenticación)
online-mode=false
# Puerto del backend (debe coincidir con velocity.toml)
server-port=25566
# IP de escucha — solo localhost para que no sea accesible desde fuera
server-ip=127.0.0.1
paper.yml
velocity-support:
enabled: true
online-mode: true # true si el proxy está en online-mode
secret: "" # se leerá del archivo forwarding.secret
spigot.yml
settings:
bungeecord: false # IMPORTANTE: debe ser false cuando usas Velocity con modern forwarding
# Si usas bungeeguard o legacy, cambia a true
forwarding.secret
Copia el archivo forwarding.secret generado por Velocity en la carpeta raíz de cada servidor backend. Este archivo contiene una cadena aleatoria que el proxy y los backends usan para verificar que la comunicación es legítima.
# Copiar el secreto a cada backend (ejemplo)
Copy-Item -LiteralPath "proxy/forwarding.secret" -Destination "backend-lobby/" -Force
Copy-Item -LiteralPath "proxy/forwarding.secret" -Destination "backend-survival/" -Force
5. Conectar jugadores al proxy
Los jugadores deben conectarse directamente al proxy (puerto 25565). Nunca deben tener acceso directo a los backends.
Firewall — bloquear acceso a backends
# Windows Firewall — bloquear puertos de backend (ejecutar como Admin)
New-NetFirewallRule -DisplayName "Bloquear Backends" -Direction Inbound -LocalPort 25566-25569 -Protocol TCP -Action Block
En Linux:
# UFW
sudo ufw deny 25566:25569/tcp
sudo ufw allow 25565/tcp
SRV record (opcional)
Si quieres que los jugadores puedan conectarse sin escribir el puerto (ej. play.mired.com en vez de mired.com:25565), configura un registro SRV en tu DNS:
_minecraft._tcp.play.mired.com. 86400 IN SRV 0 5 25565 mired.com.
6. Plugins útiles para Velocity
Plugins recomendados
| Plugin | Propósito |
|---|---|
| VelocityLoggedIn | Mantiene una lista de jugadores autenticados útil para otros plugins. |
| VotingPlugin | Gestión de votos y recompensas a nivel de red. |
| MiniMOTD | MOTD avanzado con icono de servidor animado, tablist y más. |
| BungeeGuard | Útil si necesitas compatibilidad con plugins diseñados para BungeeCord. |
| Maintenance | Activar/desactivar modo mantenimiento desde el proxy sin tocar los backends. |
Instalar plugins
Simplemente coloca el JAR en la carpeta plugins/ del proxy y reinicia Velocity. Los plugins de BungeeCord no son compatibles con Velocity — necesitas versiones específicas para Velocity.
7. Comandos y configuración avanzada
Comandos integrados de Velocity
/velocity list — muestra información del proxy
/velocity version — versión de Velocity
/velocity plugins — plugins cargados
/velocity reload — recarga la configuración
/velocity dump — genera un dump de diagnóstico
/glist — lista jugadores en todos los servidores
/server <servidor> — cambiar de servidor
/alert <mensaje> — enviar alerta a todos los jugadores
Configurar un servidor por defecto
Los jugadores nuevos que se conectan al proxy deben ir a algún lado. Configura el servidor por defecto en velocity.toml:
[servers]
lobby = "127.0.0.1:25566"
survival = "127.0.0.1:25567"
# Si no se especifica try, el primero de la lista es el default
try = ["lobby"]
Configurar la versión moderna con SSL (optional but recommended)
Velocity 3.4+ soporta forwarding moderno con TLS. Esto encripta toda la comunicación entre proxy y backends:
- Genera un certificado:
keytool -genkey -alias velocity -keyalg RSA -keysize 4096 -validity 365 -keystore server.pem - Copia
server.pema cada backend. - Configura en cada backend en
paper.yml:velocity-support: enabled: true online-mode: true secret: "ruta/al/server.pem" # también puedes seguir usando forwarding.secret
8. Resolución de problemas comunes
”No se puede conectar al servidor” (backend no accesible)
Causas posibles y soluciones:
- El backend no está iniciado — verifica que el proceso de Paper esté corriendo.
- Puerto incorrecto — confirma que el puerto en
velocity.tomlcoincide con elserver-portdel backend. - Firewall bloqueando — asegúrate de que el firewall permite conexiones locales en los puertos de backend.
- El backend no está en modo offline — verifica
online-mode=falseenserver.properties.
”Your multiplayer client is outdated”
Velocity está configurado para aceptar versiones entre 1.7 y la más reciente, pero cada backend solo acepta una versión específica. Si un jugador intenta unirse con una versión incompatible, verás este error.
Solución: usa el plugin ViaVersion en cada backend (no en el proxy) para permitir múltiples versiones.
# Configuración ViaVersion en el backend
# viaversion.yml
max-version: latest
min-version: 1_16
También puedes instalar ViaBackwards y ViaRewind en el backend para compatibilidad con versiones aún más antiguas.
”Unable to connect” al hacer /server
- forwarding.secret no coincide — verifica que el contenido de
forwarding.secreten el proxy y en cada backend sea idéntico. - BungeeCord mode encendido — asegúrate de que
bungeecord: falseenspigot.ymlde cada backend (cuando usas forwarding modern). - online-mode inconsistente — si el proxy tiene
online-mode=true, cada backend debe tenervelocity-support.online-mode=true.
Los plugins del backend no detectan a los jugadores
Cuando usas Velocity con forwarding modern, los plugins en los backends ven la IP real del jugador como 192.168.x.x (o la IP del proxy en modo legacy). Si un plugin requiere la IP real del jugador (ej. para geolocalización o anti-alt):
- Asegúrate de que
player-info-forwarding-mode = "modern"envelocity.toml. - Verifica que el plugin sea compatible con Velocity forwarding. La mayoría de plugins modernos lo son.
- Si el plugin espera la IP del proxy en vez de la del jugador, puede que necesites una versión actualizada del plugin.
El proxy se cae por OutOfMemory
Velocity es ligero, pero si tienes muchos plugins o una red muy grande, puede necesitar más RAM:
java -Xms512M -Xmx1G -jar velocity.jar
Si el problema persiste, revisa los plugins del proxy — algunos pueden tener fugas de memoria.
9. Seguridad del proxy
Buenas prácticas
- No expongas los backends: deben escuchar solo en
127.0.0.1. Si están en máquinas diferentes, usa una VPN o túneles SSH. - Mantén Velocity actualizado: las nuevas versiones incluyen parches de seguridad.
- Usa forwarding modern: es el método más seguro para pasar información del jugador a los backends.
- Rate limiting: aunque Velocity no incluye rate limiting por defecto, puedes combinarlo con TCPShield (ver guía de seguridad) o un proxy reverso como Nginx para mitigar ataques DDoS a nivel de conexión.
- Monitoreo: usa los comandos
/velocity dumpy revisa logs regularmente para detectar actividad sospechosa.
Revers Studio
11 de junio de 2026
Guías relacionadas
Gestión de mundos en Minecraft
Aprende a gestionar múltiples mundos, pre-generar terreno, controlar bordes y optimizar el Nether y el End en tu servidor.
ServidoresSeguridad y protección para servidores Minecraft
Guía completa para proteger tu servidor Minecraft contra ataques, griefing, exploits y accesos no autorizados. Firewall, anti-cheat, backups y más.
ServidoresCómo crear un servidor Minecraft desde cero
Guía paso a paso para montar tu propio servidor Minecraft con Paper en un VPS o dedicado. Desde la elección del hosting hasta la configuración inicial.