Cómo Configurar VPS Windows Server 2019 para MU Online
Guía completa paso a paso para configurar un VPS con Windows Server 2019 y correr tu servidor MU Online con SQL Server, puertos y firewall correctamente definidos.
Introducción
Configurar un VPS con Windows Server 2019 para correr un servidor privado de MU Online requiere atención a varios detalles: instalación de SQL Server, configuración del firewall, ajuste de servicios de Windows y organización de los directorios del servidor. Esta guía cubre el proceso completo — desde el estado inicial del VPS hasta el servidor listo para recibir jugadores.
Requisitos Previos
- VPS con Windows Server 2019 (mínimo 4 GB RAM, 2 vCPUs, 60 GB SSD)
- Acceso RDP al servidor con usuario Administrador
- Archivos del servidor MU (GameServer, ConnectServer, DataServer, EventServer)
- Instalador de SQL Server 2017 o 2019
Parte 1 — Preparación Inicial de Windows Server 2019
Paso 1: Primer acceso y configuración del sistema
Conéctate al VPS por Remote Desktop (RDP) usando la IP pública, el usuario Administrator y la contraseña del proveedor. Abre PowerShell como Administrador y renombra el servidor:
# Verificar el build de Windows
winver
# Renombrar para identificar fácilmente en los logs
Rename-Computer -NewName "MUSERVER-PROD" -Restart
Tras el reinicio, configura la zona horaria del servidor para evitar problemas con los timestamps de los logs:
# Ejemplo para México/Colombia/Perú (UTC-5)
Set-TimeZone -Id "SA Pacific Standard Time"
# Ejemplo para Argentina/Chile (UTC-3)
Set-TimeZone -Id "Argentina Standard Time"
Paso 2: Deshabilitar servicios innecesarios
Reduce el consumo de recursos deshabilitando lo que no se necesita en un servidor de juego:
# Windows Search — consume I/O de disco innecesario
Set-Service -Name "WSearch" -StartupType Disabled
Stop-Service -Name "WSearch" -Force
# SysMain (Superfetch) — inútil en un servidor dedicado
Set-Service -Name "SysMain" -StartupType Disabled
Stop-Service -Name "SysMain" -Force
# Print Spooler — innecesario en un VPS
Set-Service -Name "Spooler" -StartupType Disabled
Stop-Service -Name "Spooler" -Force
Paso 3: Agregar exclusiones en Windows Defender
Evita falsos positivos sin comprometer la seguridad:
Add-MpPreference -ExclusionPath "C:\MuServer"
Add-MpPreference -ExclusionProcess "GameServer.exe"
Add-MpPreference -ExclusionProcess "ConnectServer.exe"
Add-MpPreference -ExclusionProcess "DataServer.exe"
Paso 4: Instalar Visual C++ Redistributable
La mayoría de los binarios de MuServer Season 6 requieren runtimes específicos. Instala en este orden:
- Visual C++ 2010 Redistributable (x86)
- Visual C++ 2012 Redistributable (x86 y x64)
- Visual C++ 2015-2022 Redistributable (x86 y x64)
Verifica las instalaciones en Panel de Control → Programas y características antes de continuar. Si el GameServer se cierra inmediatamente al abrirlo, un runtime faltante es la causa más común.
Parte 2 — Instalación y Configuración de SQL Server
Paso 5: Instalar SQL Server 2019
Ejecuta el instalador de SQL Server 2019 y selecciona la instalación Personalizada. En la selección de características, marca únicamente:
- Servicios de Motor de base de datos
- Replicación de SQL Server (opcional, requerida por algunos paquetes de MU)
Configura la instancia como Instancia predeterminada (nombre: MSSQLSERVER) para que los archivos .ini de MuServer se conecten sin especificar el nombre de la instancia.
Tras la instalación, abre el Administrador de configuración de SQL Server y:
- Expande Configuración de red de SQL Server
- Haz clic en Protocolos para MSSQLSERVER
- Habilita TCP/IP (clic derecho → Habilitar)
- Doble clic en TCP/IP → pestaña Direcciones IP → desplázate hasta IPAll → establece Puerto TCP en
1433 - Reinicia el servicio SQL Server desde
services.msc
Paso 6: Configurar autenticación mixta y límite de memoria
En SQL Server Management Studio (SSMS), conéctate al servidor local y configura:
Autenticación mixta (obligatorio para el login via cadena de conexión):
- Clic derecho sobre la instancia → Propiedades
- Pestaña Seguridad → selecciona Modo de autenticación de SQL Server y Windows
- Haz clic en Aceptar y reinicia el servicio SQL Server
Límite de memoria (evita que SQL consuma toda la RAM disponible):
EXEC sp_configure 'show advanced options', 1;
RECONFIGURE;
-- Para un VPS de 4 GB: limitar SQL Server a 2 GB
EXEC sp_configure 'max server memory', 2048;
RECONFIGURE;
Paso 7: Crear la base de datos y un usuario dedicado
-- Crear la base de datos principal con la collation correcta para MU Online
CREATE DATABASE MuOnline
COLLATE Latin1_General_CI_AS;
GO
-- Crear base de datos de log separada (recomendado)
CREATE DATABASE MuOnlineLog
COLLATE Latin1_General_CI_AS;
GO
-- Crear un login dedicado para el GameServer
CREATE LOGIN muserver_user WITH PASSWORD = 'TuContraseñaFuerte@2024',
DEFAULT_DATABASE = MuOnline,
CHECK_EXPIRATION = OFF,
CHECK_POLICY = OFF;
GO
-- Mapear el login a la base de datos y conceder permisos
USE MuOnline;
GO
CREATE USER muserver_user FOR LOGIN muserver_user;
EXEC sp_addrolemember 'db_owner', 'muserver_user';
GO
Paso 8: Restaurar la base de datos de MuServer
Con el archivo .bak disponible en C:\MuServer\backup\, restáuralo desde SSMS:
USE master;
GO
RESTORE DATABASE MuOnline
FROM DISK = 'C:\MuServer\backup\MuOnline.bak'
WITH MOVE 'MuOnline' TO 'C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\DATA\MuOnline.mdf',
MOVE 'MuOnline_log' TO 'C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\DATA\MuOnline_ldf.ldf',
REPLACE, STATS = 10;
GO
MSSQL15.MSSQLSERVER corresponde a SQL Server 2019. Para SQL Server 2017 usa MSSQL14.MSSQLSERVER. Verifica la ruta real en C:\Program Files\Microsoft SQL Server\.Parte 3 — Configuración de los Archivos de MuServer
Paso 9: Organizar la estructura de directorios
Crea la estructura estándar en C:\MuServer\:
C:\MuServer\
├── ConnectServer\
│ └── ConnectServer.exe
├── DataServer\
│ └── DataServer.exe
├── GameServer\
│ ├── Data\
│ │ ├── Events\
│ │ ├── Maps\
│ │ └── Monster\
│ ├── Logs\
│ └── GameServer.exe
├── EventServer\
│ └── EventServer.exe
└── StartAll.bat
Paso 10: Configurar la cadena de conexión en GameServer
Edita GameServer\Data\DBConfig.ini (o DBConnectConfig.ini según la versión del paquete):
[DBCONFIG]
DBServer=127.0.0.1
DBPort=1433
DBName=MuOnline
DBUser=muserver_user
DBPass=TuContraseñaFuerte@2024
Edita también DataServer\DSConfig.ini:
[DataServer]
ServerCode=0
DB_Ip=127.0.0.1
DB_Port=1433
DB_Name=MuOnline
DB_User=muserver_user
DB_Pass=TuContraseñaFuerte@2024
Paso 11: Configurar el ConnectServer
Edita ConnectServer\ConnectServerInfo.ini:
[ConnectServer]
Port=44405
MaxConnectServer=2
ServerCodeStart=0
ServerCodeEnd=10
[ServerInfo0]
ServerCode=0
ServerName=Lorencia
GameServerIPAddress=TU_IP_PUBLICA
GameServerPort=55901
Reemplaza TU_IP_PUBLICA con la IP externa del VPS. El cliente de MU usa esta IP para conectarse directamente al GameServer — nunca uses 127.0.0.1 aquí.
Parte 4 — Configuración del Firewall de Windows
Paso 12: Crear reglas de entrada via PowerShell
Ejecuta el bloque completo en PowerShell como Administrador:
# ConnectServer
New-NetFirewallRule -DisplayName "MU-ConnectServer" -Direction Inbound -Protocol TCP -LocalPort 44405 -Action Allow
# GameServer — puertos por instancia de mapa
New-NetFirewallRule -DisplayName "MU-GameServer" -Direction Inbound -Protocol TCP -LocalPort 55901-55910 -Action Allow
# DataServer
New-NetFirewallRule -DisplayName "MU-DataServer" -Direction Inbound -Protocol TCP -LocalPort 55960 -Action Allow
# Panel web (si aplica)
New-NetFirewallRule -DisplayName "MU-WebPanel" -Direction Inbound -Protocol TCP -LocalPort 80 -Action Allow
# RDP — confirma que está abierto
New-NetFirewallRule -DisplayName "RDP-Custom" -Direction Inbound -Protocol TCP -LocalPort 3389 -Action Allow
Parte 5 — Inicio y Verificación
Paso 13: Script de inicio en el orden correcto
El orden de inicio de los componentes es crítico. Crea el archivo C:\MuServer\StartAll.bat:
@echo off
echo Iniciando DataServer...
start "" "C:\MuServer\DataServer\DataServer.exe"
timeout /t 5 /nobreak
echo Iniciando EventServer...
start "" "C:\MuServer\EventServer\EventServer.exe"
timeout /t 3 /nobreak
echo Iniciando ConnectServer...
start "" "C:\MuServer\ConnectServer\ConnectServer.exe"
timeout /t 3 /nobreak
echo Iniciando GameServer...
start "" "C:\MuServer\GameServer\GameServer.exe"
echo.
echo Todos los servicios iniciados.
pause
Ejecútalo siempre como Administrador (clic derecho → Ejecutar como administrador).
Paso 14: Verificar la conectividad de los componentes
Confirma que los puertos están escuchando:
# Verificar todos los puertos de MU de una vez
netstat -ano | findstr ":44405 :55901 :55960"
En SSMS, confirma que el GameServer se conectó a la base de datos:
USE MuOnline;
GO
-- Últimas conexiones registradas
SELECT TOP 10 memb___id, ConnectTM, DisConnectTM
FROM MEMB_INFO
ORDER BY ConnectTM DESC;
GO
-- Configuración de experiencia (confirma integridad de la base de datos)
SELECT * FROM T_CommonServerInfo;
GO
Paso 15: Crear una cuenta de prueba via SQL
Para verificar el flujo completo sin un panel web:
USE MuOnline;
GO
INSERT INTO MEMB_INFO (
memb___id, memb__pwd, memb_name, sno__numb,
post_code, addr_info, addr_deta, tel__numb,
email_info, mail_chek, bloc_code, ctl1_code
)
VALUES (
'testuser',
CONVERT(VARCHAR(10), HASHBYTES('MD5', 'pass123'), 2),
'Test User', '00000000000',
'00000', 'Direccion', 'Detalle', '00000000000',
'[email protected]', 'N', 0, 0
);
GO
T_CommonServerInfo devuelve un error, el script SQL de creación de tablas no se ejecutó correctamente. Revisa los logs en GameServer\Logs\GameServer.log para identificar errores específicos de conexión.Solución de Problemas Comunes
GameServer se cierra inmediatamente al abrirlo
Secuencia de diagnóstico:
- ¿Está corriendo SQL Server? →
services.msc→ SQL Server (MSSQLSERVER) - ¿Está habilitado TCP/IP en el Administrador de configuración de SQL Server?
- ¿Son correctas las credenciales en
DBConfig.ini? - ¿Está habilitada la autenticación mixta en las propiedades del servidor SQL?
- ¿Está instalado el Visual C++ Redistributable (versión x86)?
ConnectServer no acepta conexiones externas
# Verificar si el puerto está escuchando localmente
netstat -ano | findstr :44405
# Si no aparece: ConnectServer no inició — revisa sus logs
# Si aparece pero el acceso externo falla: verifica el firewall externo del proveedor del VPS
Muchos proveedores de VPS tienen su propio firewall en el panel de control, separado del Firewall de Windows. Verifica y abre los puertos allí también.
Alto uso de CPU por SQL Server
-- Identificar las queries más pesadas
SELECT TOP 10
qs.total_worker_time / qs.execution_count AS avg_cpu_us,
qs.execution_count,
SUBSTRING(qt.text, (qs.statement_start_offset/2)+1,
((CASE qs.statement_end_offset
WHEN -1 THEN DATALENGTH(qt.text)
ELSE qs.statement_end_offset END
- qs.statement_start_offset)/2)+1) AS query_text
FROM sys.dm_exec_query_stats qs
CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) qt
ORDER BY avg_cpu_us DESC;
Conclusión
Con el VPS configurado siguiendo estos pasos, tu servidor MU Online tendrá una base sólida: SQL Server optimizado con límite de memoria, firewall configurado sin exponer el puerto de la base de datos, servicios de Windows ajustados para rendimiento y componentes iniciando en el orden correcto. El siguiente paso es configurar los eventos del servidor (Blood Castle, Devil Square, Chaos Castle) y el panel web de administración.
Perguntas frequentes
¿Qué versión de SQL Server debo usar con Windows Server 2019?
SQL Server 2017 o 2019 son los más compatibles con Windows Server 2019. Evita SQL Server 2000 en este entorno — no tiene soporte oficial. Usa SQL Server 2017 Express (gratuito) para servidores con bases de datos de menos de 10 GB.
¿Qué puertos necesito abrir en el firewall del VPS?
Los puertos esenciales son: 44405 (ConnectServer), 55901-55910 (GameServer por instancia de mapa), 55960 (DataServer), 1433 (SQL Server — solo local), 80 (panel web) y 3389 (RDP). Nunca expongas el puerto 1433 al exterior si la base de datos y el GameServer están en la misma máquina.
El servidor MU se cierra pocos minutos después de iniciarlo en el VPS — ¿qué verificar?
Revisa primero el log en GameServer\\Logs\\GameServer.log. Causas comunes: RAM insuficiente (mínimo 4 GB para Season 6), SQL Server sin límite de memoria configurado, o el antivirus bloqueando los ejecutables. Configura SQL Server para usar como máximo 2 GB de RAM si el VPS tiene 4 GB en total.
¿Cómo evitar que Windows Server 2019 reinicie automáticamente tras las actualizaciones?
Abre gpedit.msc → Configuración del equipo → Plantillas administrativas → Componentes de Windows → Windows Update. Establece 'Configurar actualizaciones automáticas' en 'Notificar la descarga y notificar la instalación' (opción 2). Esto evita reinicios automáticos sin tu aprobación.