Saltar al contenido principal
Volver a guías
Servidores 11 de junio de 2026 · 9 min de lectura

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:

ComponenteRolEjemplo
ProxyPuerta de entrada. Los jugadores se conectan aquí primero.Velocity (IP pública: 25565)
BackendServidor 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 lobby o 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

ModoDescripciónCuándo usarlo
noneNo 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.
legacyEnvía información del jugador en el handshake. Funciona con BungeeCord y servidores antiguos.Redes legacy que ya usan BungeeCord.
bungeeguardSimilar a legacy pero con un token secreto.Si necesitas compatibilidad con BungeeCord pero con seguridad extra.
modernUsa 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

PluginPropósito
VelocityLoggedInMantiene una lista de jugadores autenticados útil para otros plugins.
VotingPluginGestión de votos y recompensas a nivel de red.
MiniMOTDMOTD avanzado con icono de servidor animado, tablist y más.
BungeeGuardÚtil si necesitas compatibilidad con plugins diseñados para BungeeCord.
MaintenanceActivar/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"]

Velocity 3.4+ soporta forwarding moderno con TLS. Esto encripta toda la comunicación entre proxy y backends:

  1. Genera un certificado:
    keytool -genkey -alias velocity -keyalg RSA -keysize 4096 -validity 365 -keystore server.pem
    
  2. Copia server.pem a cada backend.
  3. 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:

  1. El backend no está iniciado — verifica que el proceso de Paper esté corriendo.
  2. Puerto incorrecto — confirma que el puerto en velocity.toml coincide con el server-port del backend.
  3. Firewall bloqueando — asegúrate de que el firewall permite conexiones locales en los puertos de backend.
  4. El backend no está en modo offline — verifica online-mode=false en server.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

  1. forwarding.secret no coincide — verifica que el contenido de forwarding.secret en el proxy y en cada backend sea idéntico.
  2. BungeeCord mode encendido — asegúrate de que bungeecord: false en spigot.yml de cada backend (cuando usas forwarding modern).
  3. online-mode inconsistente — si el proxy tiene online-mode=true, cada backend debe tener velocity-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):

  1. Asegúrate de que player-info-forwarding-mode = "modern" en velocity.toml.
  2. Verifica que el plugin sea compatible con Velocity forwarding. La mayoría de plugins modernos lo son.
  3. 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 dump y revisa logs regularmente para detectar actividad sospechosa.
RS

Revers Studio

11 de junio de 2026