Cómo instalar y configurar el ConnectServer aislado en MU Online
Entiende el papel del ConnectServer en MU Online y configúralo aislado en máquina y puerto propios: lista de servidores, ServerList.dat, IpAddress, puertos 44405/55901/55557 y redireccionamiento correcto del cliente hasta el GameServer.
El ConnectServer es la pieza más incomprendida — y más crítica — de un servidor de MU Online. No corre mapa, no calcula daño, no guarda personaje: su único trabajo es ser la puerta de entrada. Cuando el jugador abre el cliente, es el ConnectServer quien entrega la lista de servidores, muestra la car
El ConnectServer es la pieza más incomprendida — y más crítica — de un servidor de MU Online. No corre mapa, no calcula daño, no guarda personaje: su único trabajo es ser la puerta de entrada. Cuando el jugador abre el cliente, es el ConnectServer quien entrega la lista de servidores, muestra la carga de cada uno y, al hacer clic en un servidor, redirige la conexión al IP y al puerto del GameServer correcto. Por ser la única pieza expuesta a internet antes del login, es también el primer blanco de ataques y el punto donde nace el 90% de los errores de "no conecta". Este tutorial explica el papel del ConnectServer en detalle y muestra cómo instalarlo y configurarlo aislado, en máquina y puerto propios, como lo hacen los servidores de producción.
Qué es el ConnectServer
Imagina el ConnectServer como la recepción de un edificio con varios pisos (los GameServers). El visitante (cliente) no sube directo al piso: pasa por la recepción, ve la lista de pisos disponibles y es enviado al piso elegido. El flujo real es:
- El cliente abre y lee el ServerList.dat, que contiene el IP y el puerto del ConnectServer.
- El cliente conecta al ConnectServer (puerto público, ej.:
44405). - El ConnectServer devuelve la lista de servidores — cada GameServer registrado, con nombre y porcentaje de ocupación.
- El jugador elige un servidor; el ConnectServer responde con el IP:puerto de ese GameServer.
- El cliente se desconecta del ConnectServer y conecta directo al GameServer para loguear y jugar.
Es decir: después de redirigir, el ConnectServer sale de escena. Eso es lo que permite aislarlo — es liviano, sin estado de juego, y puede vivir solo.
Por qué aislar el ConnectServer
Correr el ConnectServer separado del GameServer trae ventajas concretas:
- Seguridad: el IP real del GameServer no queda expuesto hasta el redireccionamiento. Floods y scans golpean primero al ConnectServer aislado, protegiendo el servidor de juego.
- Disponibilidad: reinicias el GameServer (patch, ajuste, crash) sin tumbar la pantalla de selección de servidores. El jugador ve "servidor offline" en vez de "no conecta".
- Escala: un único ConnectServer puede listar varios GameServers, incluso en máquinas distintas. Así se monta un servidor multicanal o multirealm.
- Mitigación de ataques: puedes poner firewall, rate-limit o protección anti-DDoS solo frente al ConnectServer, sin tocar el GameServer.
En un servidor de prueba local, todo corre en la misma máquina (127.0.0.1) y el aislamiento no importa. En producción, aislar es estándar profesional.
Requisitos previos
- Un servidor de MU ya montado y funcional (si aún no lo tienes, mira el tutorial de creación de servidor).
- Acceso al paquete de tu emulador (IGCN, MuEMU, X-Team, Season 6, etc.) que contenga el ejecutable del ConnectServer.
- Una IP pública (o VPS) si el servidor es en línea; o
127.0.0.1para pruebas locales. - Permiso para abrir puertos en el firewall del sistema y en el NAT del proveedor/router.
- La herramienta de edición del ServerList.dat de tu emulador (el archivo suele estar cifrado).
- Copia de seguridad de los archivos de configuración antes de cualquier cambio.
Archivos y puertos involucrados
Los nombres y números varían por emulador — trata los valores de abajo como ejemplos y confírmalos en tu paquete.
| Función | Archivo / puerto (ejemplo) | Dónde está |
|---|---|---|
| Config del ConnectServer | ConnectServer.ini / CSMain.ini | Servidor |
| Lista interna de servidores | ServerList.dat (lado servidor) | Servidor |
| Puerto público (cliente) | 44405 | Servidor |
| Puerto de registro del GameServer | 55557 | Servidor |
| Puerto de datos/respuesta | 55901 | Servidor |
| Dirección que lee el cliente | ServerList.dat (lado cliente) | Cliente |
| IP anunciado del GameServer | IpAddress en la config del GameServer | Servidor |
> Cuidado con la colisión de nombres: existe un ServerList.dat en el servidor (que el ConnectServer usa para saber qué GameServers listar) y otro ServerList.dat en el cliente (que dice dónde está el ConnectServer). Son archivos distintos con el mismo nombre — no los confundas.
Paso 1 — Localizar y preparar el ejecutable
En el paquete del emulador, el ConnectServer suele estar en una carpeta propia (ConnectServer/, CS/ o similar), con el ejecutable y un archivo de configuración .ini o .dat. Si vas a aislarlo en otra máquina/VM, copia la carpeta entera del ConnectServer allí, manteniendo la estructura. Generalmente no necesita MySQL ni los datos de juego — es autosuficiente.
Paso 2 — Configurar el ConnectServer (puertos y escucha)
Abre la config principal del ConnectServer. En muchos emuladores es un .ini al estilo de abajo — los nombres de las claves varían, pero el concepto es el mismo:
[ConnectServer]
; Puerto en que el CLIENTE conecta (el mismo del ServerList.dat del cliente)
ConnectServerPort = 44405
; Puerto en que los GameServers se REGISTRAN en el ConnectServer
GameServerListPort = 55557
; Puerto de datos/respuesta usado internamente
DataPort = 55901
; Numero maximo de conexiones simultaneas en la entrada
MaxConnections = 1000
; Mostrar la carga (%) de cada servidor en la lista
ShowServerLoad = 1
ConnectServerPortes el puerto público — al que el jugador realmente accede. Necesita estar abierto en el firewall y en el NAT.GameServerListPortes por donde cada GameServer "se presenta" al ConnectServer. Si ConnectServer y GameServer están en máquinas distintas, ese puerto necesita ser alcanzable entre ellas (red interna o liberado).MaxConnectionses tu primera línea de defensa contra floods — ajústalo al tamaño del servidor.
Guarda y deja el reinicio para después de configurar la lista.
Paso 3 — Registrar los GameServers en la lista del ConnectServer
El ConnectServer necesita saber cuáles servidores anunciar. Esto suele quedar en un ServerList.dat (lado servidor) o en una sección de la propia config. Cada línea define un servidor de la pantalla de selección:
[ServerList]
; Codigo | Nombre mostrado | IP del GameServer | Puerto del GameServer
0 | ViciadosMU - Season 6 | 200.100.50.10 | 55901
1 | ViciadosMU - PvP | 200.100.50.11 | 55901
Aquí es donde ocurre el redireccionamiento: el IP y el puerto de esta lista son exactamente adonde será enviado el cliente cuando el jugador elija ese servidor. Si aislaste el ConnectServer, el IP aquí es el del GameServer (otra máquina), no el del propio ConnectServer. Equivocarse en esto es la causa n.º 1 de "selecciono el servidor y no entra".
Paso 4 — Ajustar el IpAddress del GameServer
Del otro lado, el GameServer también necesita anunciar correctamente el IP en el que acepta conexiones. En la config del GameServer (varía: GameServerInfo.dat, GameServer.ini, sección [ServerInfo]) existe una clave de dirección:
[GameServerInfo]
; IP que el GameServer anuncia al ConnectServer y al cliente
IpAddress = 200.100.50.10
; Puerto en que el GameServer acepta jugadores (coincide con la lista del CS)
GameServerPort = 55901
; Direccion:puerto del ConnectServer donde este GameServer se registrara
ConnectServerIp = 200.100.50.20
ConnectServerPort = 55557
Regla de oro del IpAddress:
- Servidor local/prueba:
127.0.0.1. - Servidor en línea: el IP público que el cliente del jugador logra alcanzar — nunca
127.0.0.1ni el IP interno de LAN, o solo tú (en la misma máquina) lograrás entrar.
El ConnectServerIp cierra el triángulo: es donde este GameServer se registra. Como el ConnectServer está aislado, ese IP es el de la máquina del ConnectServer.
Paso 5 — Configurar el ServerList.dat del cliente
Ahora el lado del jugador. El ServerList.dat del cliente apunta el juego al ConnectServer. Casi siempre está cifrado — usa la herramienta de tu emulador (ServerList Editor) y no lo edites en el bloc de notas, o el cliente rechaza el archivo.
Configura:
- IP: el IP público (o
127.0.0.1en prueba local) de la máquina del ConnectServer — nunca del GameServer. - Puerto: el mismo
ConnectServerPortdel Paso 2 (ej.:44405).
Si cambias el IP o el puerto del ConnectServer después, necesitas redistribuir el ServerList.dat actualizado a los jugadores por el launcher — de lo contrario seguirán golpeando la dirección antigua.
Paso 6 — Abrir los puertos en el firewall y en el NAT
El aislamiento solo funciona con la red liberada. Libera:
- En el firewall de la máquina del ConnectServer: el puerto público (
44405) y el puerto de registro (55557). - En el NAT/router o en el panel del VPS: reenvía el puerto público
44405a la máquina del ConnectServer. - Entre ConnectServer y GameServer (si están en máquinas distintas): garantiza que el
55557y el55901se comuniquen por la red interna.
En Windows, un ejemplo de liberación por línea de comandos:
; PowerShell / Símbolo del sistema como administrador
netsh advfirewall firewall add rule name="MU ConnectServer" dir=in action=allow protocol=TCP localport=44405
netsh advfirewall firewall add rule name="MU GameServer Reg" dir=in action=allow protocol=TCP localport=55557
Paso 7 — Orden de inicialización y prueba
El orden importa. Levanta los servicios en esta secuencia:
- ConnectServer primero (la recepción debe estar en pie para recibir registros).
- GameServer(s) después — cada uno se registrará en el ConnectServer vía
ConnectServerIp:55557. - Confirma en la consola del ConnectServer que los GameServers aparecieron como conectados.
Luego prueba del lado del cliente:
- Abre el cliente y llega a la pantalla de selección de servidores — la lista debe cargar (prueba de que el ConnectServer respondió).
- Verifica si aparece la carga (%), indicando que los GameServers están registrados.
- Elige un servidor: el cliente debe redirigir y llegar al login (prueba de que el IP:puerto de la lista es correcto).
- Haz login y entra al juego (prueba de que el
IpAddressdel GameServer es alcanzable).
Errores comunes y soluciones
| Síntoma | Causa probable | Solución |
|---|---|---|
| El cliente se traba en la pantalla de conexión | El ServerList.dat del cliente apunta a IP/puerto equivocados | Reeditar con el editor y apuntar al IP:puerto del ConnectServer |
| Lista de servidores vacía | Ningún GameServer registrado en el ConnectServer | Verificar ConnectServerIp/Port del GameServer y el puerto 55557 |
| Selecciona el servidor pero no entra | IP en la lista del CS o IpAddress del GS incorrectos | Usar el IP público real del GameServer, no 127.0.0.1 |
| Solo tú (host) logras entrar | GameServer anunciando IP local (127.0.0.1 / LAN) | Cambiar IpAddress por el IP público |
| Conecta y se cae en segundos | Puerto público sin NAT/firewall o cerrado | Abrir y reenviar el puerto 44405 |
| El ConnectServer no arranca | Puerto ya en uso o sintaxis en el .ini | Cambiar el puerto / revisar líneas y comillas de la config |
| La carga (%) no aparece | ShowServerLoad apagado o GS sin heartbeat | Activar la opción y confirmar el registro del GameServer |
Buenas prácticas para producción
- Una VM solo para el ConnectServer. Es liviano; una máquina pequeña lo aguanta, y el aislamiento vale el costo.
- Nunca expongas el puerto del GameServer directamente al público sin necesidad — deja que el ConnectServer sea la cara pública.
- Monitorea la consola del ConnectServer: las caídas de registro de los GameServers aparecen allí antes de que el jugador reclame.
- Versiona el ServerList.dat del cliente. Todo cambio de IP/puerto exige redistribuir por el launcher.
- Documenta el mapa de puertos (44405 público, 55557 registro, 55901 datos). Eso salva horas cuando migras de VPS.
Lista de verificación de lanzamiento
- Carpeta del ConnectServer aislada en máquina/VM propia.
- Puertos configurados en el
.ini(público 44405, registro 55557, datos 55901). - GameServers registrados en la lista del ConnectServer con IP:puerto correctos.
IpAddressdel GameServer usando el IP público (nunca 127.0.0.1 en producción).ConnectServerIp/Portdel GameServer apuntando al ConnectServer aislado.- ServerList.dat del cliente apuntando al IP:puerto del ConnectServer.
- Puertos abiertos en el firewall y reenviados en el NAT/VPS.
- Orden de arranque probado (ConnectServer → GameServer → cliente).
- Flujo completo validado: la lista carga, redirige y loguea en el juego.
Con el ConnectServer aislado y probado, tienes una base de red sólida y escalable: agregar un nuevo GameServer se vuelve solo una línea más en la lista y un registro apuntando a la misma recepción. A partir de aquí, el siguiente paso natural es blindar ese puerto público con protección anti-DDoS y rate-limit, ya que es la única cara de tu servidor expuesta a internet.
Preguntas frecuentes
¿Qué hace exactamente el ConnectServer?
Es la puerta de entrada del servidor. El cliente conecta primero al ConnectServer, recibe la lista de servidores (nombre, carga e IP:puerto de cada GameServer) y, cuando el jugador elige un servidor, es redirigido al IP y al puerto del GameServer correspondiente. No procesa juego — solo orquesta la entrada.
¿Realmente necesito aislar el ConnectServer en otra máquina?
No es obligatorio, pero es muy recomendable en producción. Aislarlo (máquina o VM/puerto propios) protege el IP del GameServer, absorbe floods de conexión y ataques en el puerto público, y permite reiniciar el GameServer sin tumbar la pantalla de selección de servidores. En servidor de pruebas local, corre todo en la misma máquina.
¿Qué puerto usa el ConnectServer?
Varía por emulador, pero el estándar histórico es 44405 para que el cliente conecte. Internamente aún escucha el puerto donde los GameServers se registran (comúnmente 55557) y responde en el puerto de datos (ej.: 55901). Revisa siempre la config de tu emulador — los números son ejemplos, no una regla fija.
¿Qué es el ServerList.dat y por qué el cliente lo necesita?
Es el archivo, del lado del cliente, que le dice al juego en qué IP y puerto está el ConnectServer. Si el IP en él no coincide con el de tu ConnectServer, el cliente se traba en la pantalla de conexión. Suele estar cifrado; edítalo con la herramienta de tu emulador, no en el bloc de notas.
Configuré todo y el cliente no conecta. ¿Por dónde empiezo?
Verifica en este orden: (1) el puerto del ConnectServer está abierto en el firewall y en el NAT; (2) el ServerList.dat apunta al IP público correcto; (3) el IpAddress registrado del GameServer es accesible por el cliente (error clásico: registrar 127.0.0.1 en un servidor público); (4) el ConnectServer y el GameServer están realmente en pie.