Cómo Crear un Servidor MU Online Season 8–12 — Guía Completa
Guía paso a paso para montar un servidor privado de MU Online Season 8 o Season 12: SQL, archivos, puertos y configuración central explicados.
Arquitectura del Servidor: los Servicios que lo Componen
Un servidor privado de MU Online no es un único ejecutable — es una pila de servicios que cooperan entre sí. Antes de tocar cualquier archivo de configuración es imprescindible entender cómo encajan las piezas.
El ConnectServer es el punto de entrada público. Cada cliente se conecta primero a este servicio para obtener la lista de servidores de juego disponibles. Le entrega al cliente una IP y un puerto, y luego se retira del camino.
El DataServer (a veces llamado DBServer) es dueño de todos los datos persistentes. Mantiene una conexión abierta con SQL Server y gestiona cada operación de lectura y escritura: cuentas, personajes, ítems, gremios y propiedad del castillo. Ningún otro servicio escribe directamente en la base de datos.
El GameServer ejecuta la simulación del mundo — mapas, monstruos, cálculos de habilidades e interacciones entre jugadores. Se comunica con el DataServer para la persistencia y con el ConnectServer para el registro. Los servidores Season 12 suelen dividir esto aún más con un JoinServer dedicado que gestiona las colas de login y la comunicación entre servidores.
Comprender estos roles evita los errores más frecuentes de los principiantes: apuntar dos servicios a los puertos incorrectos, o ejecutar el DataServer con una cuenta SQL sin permisos de escritura.
Requisitos del Sistema y Preparación
Antes de instalar cualquier componente del servidor, hay que preparar la máquina anfitriona.
Sistema operativo. Windows Server 2016 o 2019 es la base más estable. Las ediciones de escritorio (Windows 10, Windows 11) funcionan para pruebas locales pero no son adecuadas para un entorno de producción con jugadores reales debido a los límites de conexión que impone el sistema operativo.
SQL Server. Instalar Microsoft SQL Server (Express es suficiente para pruebas; Standard o Developer para producción). Durante la instalación, habilitar la Autenticación en Modo Mixto para que los logins SQL funcionen junto a la autenticación de Windows. Anotar el nombre de instancia — será necesario al construir las cadenas de conexión ODBC.
Controladores ODBC. Instalar el controlador ODBC que corresponda a la versión de SQL Server. Abrir Orígenes de datos ODBC (64 bits), crear un DSN de sistema llamado MuOnline apuntando a la instancia SQL y probar la conexión antes de continuar.
Visual C++ Redistributables. Los ejecutables de servidor compilados para Season 8 suelen requerir los paquetes redistribuibles de VC++ 2005 y 2008. Los binarios de Season 12 normalmente requieren VC++ 2015–2022. Instalar tanto la versión x86 como la x64 de cada paquete.
Configuración de la Base de Datos
Con SQL Server funcionando y el DSN creado, restaurar o adjuntar el backup de la base de datos MuOnline que viene con los archivos del servidor. Normalmente es un archivo .bak que se restaura desde SQL Server Management Studio (SSMS), o un conjunto de archivos .mdf/.ldf que se adjuntan directamente.
Una vez que la base de datos esté en línea, crear un login SQL dedicado:
-- Crear login y mapearlo a la base MuOnline
CREATE LOGIN MuAdmin WITH PASSWORD = 'ContraseñaFuerte#2026';
USE MuOnline;
CREATE USER MuAdmin FOR LOGIN MuAdmin;
ALTER ROLE db_owner ADD MEMBER MuAdmin;
-- Verificar que los procedimientos almacenados existen
SELECT name FROM sys.procedures WHERE name LIKE 'WZ_%' ORDER BY name;
-- Esperados: WZ_ACCOUNT_CHECK, WZ_GET_CHAR_INFO, WZ_SAVE_CHAR, etc.
Actualizar el DSN de ODBC con este login SQL. Abrir el DSN, avanzar hasta la pantalla de autenticación, seleccionar Autenticación SQL Server e ingresar las credenciales del paso anterior.
> [!ATENCION] > Nunca usar la cuenta sa para los archivos del servidor en producción. Si las credenciales de sa se filtran a través de un archivo de configuración, un atacante obtiene acceso completo a SQL Server, incluyendo la capacidad de ejecutar comandos del sistema operativo mediante xp_cmdshell. Un login con alcance db_owner limita considerablemente el daño potencial.
Configuración del ConnectServer
La configuración del ConnectServer es típicamente un archivo de texto plano o INI llamado ConnectServer.ini o CSConfig.ini. Los parámetros críticos son:
[ConnectServer]
Port → 55901 ; los clientes se conectan aquí primero
MaxConnections → 10000 ; ajustar al pico esperado de jugadores
[GameServerList]
ServerCount → 1 ; número de entradas de GameServer
Server0_IP → 127.0.0.1 ; IP pública del GameServer (o IP LAN para prueba local)
Server0_Port → 44405 ; puerto del GameServer
Server0_Name → Lorencia ; se muestra en la lista de servidores
Server0_Code → 0 ; debe coincidir con la config ServerCode del GameServer
> [!CONSEJO] > Cuando todos los servicios corren en una sola máquina, usar 127.0.0.1 para la comunicación interna entre servicios. Cuando el GameServer corre en una máquina física separada, reemplazar 127.0.0.1 por la IP LAN de esa máquina. Nunca usar la IP WAN pública para la comunicación interna entre servicios — fuerza el tráfico a través de NAT y puede provocar reinicios de conexión.
Configuración del DataServer
La configuración del DataServer vincula el servicio con SQL Server. Abrir DSConfig.ini (el nombre de archivo varía según la compilación del servidor):
[DataServer]
Port → 55980
MaxConnections → 500
[Database]
DSN → MuOnline ; debe coincidir exactamente con el nombre del DSN de sistema ODBC
User → MuAdmin
Password → ContraseñaFuerte#2026
[Log]
SaveLog → 1
LogPath → ./Log/DS/
Iniciar el DataServer primero. Observar la ventana de consola: un inicio exitoso imprime una línea similar a [DataServer] Listen OK - Port 55980. Cualquier error relacionado con SQL en esta etapa indica un nombre de DSN incorrecto, credenciales erróneas o un procedimiento almacenado faltante en la base de datos.
Configuración del GameServer
El GameServer tiene la mayor superficie de configuración. El archivo principal suele ser GameServerInfo.ini o GSConfig.ini:
[ServerInfo]
ServerCode → 0 ; debe coincidir con Server0_Code del ConnectServer
ServerName → Lorencia
MaxPlayer → 500
[Network]
GameServerPort → 44405
ConnectServerIP → 127.0.0.1
ConnectServerPort → 55901
DataServerIP → 127.0.0.1
DataServerPort → 55980
[GamePlay]
Season → 8 ; o 12 según los archivos del servidor
EXPRate → 100 ; 100 = 1x, 300 = 3x
DropRate → 100
ZenRate → 100
MaxLevel → 400 ; 800 para Season 12 con Master Level
Los servidores Season 12 incorporan bloques adicionales para MuHelper, el sistema Gens e Illusion Temple. Consultar la documentación incluida con la compilación específica del servidor para esas secciones.
JoinServerInfo.ini separado que controla la comunicación entre servidores y la gestión de colas de login. Si el servidor tiene múltiples canales o GameServers, este archivo es donde se define la topología de la red de servidores.Firewall y Redireccionamiento de Puertos
Abrir los siguientes puertos en el Firewall de Windows mediante reglas de entrada TCP:
- 55901 — ConnectServer (los clientes se conectan aquí primero)
- 44405 — GameServer (tráfico de juego)
- 55980 — DataServer (interno; bloquear en el router, exponer solo internamente)
En el router, reenviar los puertos 55901 y 44405 hacia la IP local de la máquina servidora. El puerto del DataServer debe permanecer interno — solo el GameServer necesita alcanzarlo.
Arranque de los Servicios y Verificación de Conectividad
Iniciar los servicios en este orden para evitar errores de conexión:
- SQL Server (ya corre como servicio de Windows)
- DataServer
- ConnectServer
- GameServer
Observar cada ventana de consola en busca de líneas de error antes de avanzar al siguiente paso. Una vez que los cuatro estén corriendo sin errores, abrir un cliente de MU Online configurado para apuntar a la IP pública del servidor en el puerto 55901. Una pantalla de login exitosa con el nombre del servidor en la lista confirma que el ConnectServer y el GameServer se están comunicando correctamente.
Problemas Comunes y Soluciones
"Cannot connect to server" en la pantalla de login. El cliente no está alcanzando el ConnectServer. Verificar que el puerto 55901 esté abierto en el firewall y redirigido en el router. Confirmar que la configuración del cliente apunte a la IP pública correcta.
Los personajes desaparecen al cerrar sesión. El GameServer no puede escribir a través del DataServer hacia SQL. Revisar el log del DataServer en busca de errores de timeout de SQL. Verificar los permisos del login SQL con SELECT IS_MEMBER('db_owner') dentro de la base MuOnline.
La IA de los monstruos se congela después de unos minutos. Es un síntoma conocido de la configuración de afinidad de CPU de un solo núcleo en un host multinúcleo. Configurar la afinidad del proceso GameServer para usar todos los núcleos disponibles, o consultar la configuración de hilos de la compilación específica del servidor.
Corrupción de inventario al soltar ítems. Normalmente causada por una discrepancia entre las tablas de ítems del servidor y los procedimientos almacenados de la base de datos. Asegurarse de que el backup de la base de datos y el binario del servidor provengan de la misma versión de los archivos del servidor.
La lectura sistemática de los logs es el camino más rápido hacia cualquier diagnóstico. Cada servicio escribe entradas con marca de tiempo — siempre empezar por ahí antes de modificar cualquier configuración.
Perguntas frequentes
¿Cuáles son los requisitos mínimos de hardware para correr un servidor privado de MU Online?
Como mínimo práctico se necesita una máquina (dedicada o virtual) con 4 GB de RAM, CPU de doble núcleo a 2,4 GHz y 50 GB de almacenamiento disponible. Para más de 50 jugadores simultáneos se recomienda 8 GB de RAM y CPU de cuatro núcleos para evitar caídas de rendimiento durante sieges y eventos masivos.
¿Qué versión de SQL Server es más compatible con los archivos de Season 8 y Season 12?
SQL Server 2008 R2 es la opción más compatible con archivos de Season 8, mientras que los archivos de Season 12 generalmente soportan SQL Server 2012 hasta 2019. Siempre hay que usar la versión de SQL contra la que fueron compilados los archivos del servidor. Una versión más nueva rara vez causa problemas, pero una versión más antigua generará procedimientos almacenados faltantes y consultas de personaje rotas.
¿Cómo abro los puertos de red necesarios para mi servidor de MU Online?
Los puertos principales que deben estar abiertos en el firewall y en el router son TCP 55901 (ConnectServer), TCP 44405 (GameServer) y TCP 55980 (DataServer). Si se usa un panel de control web o un JoinServer, también hay que abrir el puerto que les corresponda. En Windows Server se crean reglas de entrada en el Firewall de Windows Defender con Seguridad Avanzada para cada uno de esos puertos.
¿Por qué los personajes no se guardan al cerrar sesión?
Los fallos de guardado de personaje apuntan casi siempre a una conexión rota entre el GameServer y el DataServer, o a una cuenta de SQL con permisos insuficientes. Verificar que el DSN de ODBC en la configuración del DataServer apunte a la instancia SQL correcta y que el login SQL tenga el rol db_owner en la base MuOnline. El log del DataServer mostrará entradas de 'connection lost' o 'timeout' como primer indicador del problema.