Cómo Configurar MU Online en Linux — Guía Completa
Aprende a configurar un servidor de MU Online en Linux paso a paso: instalación de dependencias, Wine, base de datos y configuración de red.
Introducción: Por Qué Usar Linux para tu Servidor MU
Administrar un servidor de MU Online en Linux ofrece ventajas concretas frente a Windows Server: menor consumo de recursos del sistema operativo base, mayor estabilidad bajo carga continua y herramientas nativas de automatización como cron, systemd y bash scripting sin dependencias adicionales. El costo operacional también es inferior, ya que las distribuciones de servidor de Linux son gratuitas.
El desafío principal es que los binarios oficiales de los servidores MU fueron compilados para Windows. La solución estándar de la comunidad es ejecutarlos mediante Wine, una capa de compatibilidad que traduce llamadas de la API de Windows al sistema de llamadas de Linux. Con la configuración correcta, el rendimiento resultante es comparable al de una instalación nativa en Windows.
Esta guía cubre la preparación del sistema, instalación de dependencias, configuración de Wine, preparación de la base de datos y ajustes de red para poner en funcionamiento un servidor MU en Linux.
Preparación del Sistema Operativo
Antes de instalar cualquier componente del servidor MU, el sistema operativo debe estar actualizado y configurado correctamente.
Actualización del sistema y herramientas base:
sudo apt update && sudo apt upgrade -y
→ Actualiza índices de repositorios y paquetes instalados
sudo apt install -y \
wget curl git unzip build-essential \
ca-certificates gnupg lsb-release \
software-properties-common
→ Instala herramientas esenciales de administración
Configuración del usuario dedicado:
Es recomendable no ejecutar los procesos del servidor como root. Crea un usuario específico para administrar el servicio:
sudo useradd -m -s /bin/bash muserver
→ Crea el usuario sin privilegios de administrador
sudo passwd muserver
→ Define una contraseña para el usuario
sudo usermod -aG sudo muserver
→ Agrega al grupo sudo solo si necesitas administración ocasional
Ajuste de límites del sistema:
Los servidores con muchas conexiones simultáneas requieren aumentar el límite de archivos abiertos. Edita /etc/security/limits.conf y agrega al final:
muserver soft nofile 65535
→ Límite blando de descriptores de archivo para el usuario muserver
muserver hard nofile 65535
→ Límite duro — el proceso no puede superarlo
Reinicia la sesión del usuario para que los cambios surtan efecto.
Instalación de Wine y Dependencias de Compatibilidad
Wine es el componente central que permite ejecutar los binarios del servidor MU en Linux. La versión de Wine impacta directamente en la compatibilidad con cada versión del servidor.
Habilitar la arquitectura de 32 bits (los binarios de MU son aplicaciones x86):
sudo dpkg --add-architecture i386
→ Permite instalar paquetes de 32 bits en sistemas x86_64
sudo apt update
→ Recarga los repositorios con soporte para i386
Agregar el repositorio oficial de WineHQ:
sudo mkdir -pm755 /etc/apt/keyrings
sudo wget -O /etc/apt/keyrings/winehq-archive.key \
https://dl.winehq.org/wine-builds/winehq.key
→ Descarga la clave GPG del repositorio
echo "deb [arch=amd64,i386 signed-by=/etc/apt/keyrings/winehq-archive.key] \
https://dl.winehq.org/wine-builds/ubuntu/ \
$(lsb_release -cs) main" \
| sudo tee /etc/apt/sources.list.d/winehq.list
→ Agrega el repositorio de WineHQ a las fuentes de apt
sudo apt update && sudo apt install -y --install-recommends winehq-stable
→ Instala Wine estable con todas sus dependencias recomendadas
Inicialización del prefijo Wine:
Cambia al usuario muserver e inicializa el entorno de Wine:
su - muserver
WINEPREFIX=/home/muserver/.wine_mu WINEARCH=win32 winecfg
→ Crea un prefijo de 32 bits específico para el servidor MU
→ Se abre una ventana gráfica si hay sesión de display — ciérrala al terminar
> [!CONSEJO] > Usar un prefijo Wine dedicado (WINEPREFIX) para el servidor MU aísla su entorno de otros programas que puedas ejecutar con Wine. Esto evita conflictos de versiones de DLL y facilita los respaldos — basta con comprimir la carpeta del prefijo.
Instalación de Winetricks y bibliotecas necesarias:
wget -O /usr/local/bin/winetricks \
https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks
chmod +x /usr/local/bin/winetricks
→ Hace el script ejecutable
WINEPREFIX=/home/muserver/.wine_mu winetricks \
vcrun2019 d3dx9 mfc140 msxml6
→ Instala runtimes de Visual C++, DirectX y otras DLL comunes del servidor MU
Configuración de la Base de Datos
Los servidores MU utilizan Microsoft SQL Server para almacenar datos de cuentas, personajes, ítems y estadísticas. En Linux, la alternativa más compatible es SQL Server para Linux, disponible desde 2017.
Instalación de SQL Server 2019 en Linux:
curl -fsSL \
https://packages.microsoft.com/keys/microsoft.asc \
| sudo gpg --dearmor -o /usr/share/keyrings/microsoft-prod.gpg
→ Importa la clave GPG de Microsoft
curl https://packages.microsoft.com/config/ubuntu/22.04/mssql-server-2019.list \
| sudo tee /etc/apt/sources.list.d/mssql-server.list
→ Agrega el repositorio de SQL Server 2019
sudo apt update && sudo apt install -y mssql-server
→ Instala el paquete del motor de base de datos
sudo /opt/mssql/bin/mssql-conf setup
→ Ejecuta el asistente de configuración inicial
→ Selecciona edición Developer (gratuita para entornos no productivos)
→ Define la contraseña del usuario SA
Verificación del servicio de base de datos:
sudo systemctl status mssql-server
→ Comprueba que el servicio esté activo y sin errores
sudo systemctl enable mssql-server
→ Configura el inicio automático con el sistema
Instalación de sqlcmd para administración por consola:
sudo apt install -y mssql-tools18 unixodbc-dev
echo 'export PATH="$PATH:/opt/mssql-tools18/bin"' >> ~/.bashrc
source ~/.bashrc
→ Agrega sqlcmd al PATH del usuario
sqlcmd -S localhost -U SA -P 'TuContrasena'
→ Prueba la conexión — debe mostrar el prompt 1>
Restauración de la base de datos del servidor MU:
Con el archivo de backup .bak disponible en el servidor, realiza la restauración:
sqlcmd -S localhost -U SA -P 'TuContrasena' -Q "
RESTORE DATABASE MuOnline
FROM DISK = '/home/muserver/db/MuOnline.bak'
WITH MOVE 'MuOnline' TO '/var/opt/mssql/data/MuOnline.mdf',
MOVE 'MuOnline_log' TO '/var/opt/mssql/data/MuOnline_log.ldf',
REPLACE;
"
→ Restaura la base de datos ajustando las rutas de los archivos de datos
> [!ATENCION] > La contraseña del usuario SA debe cumplir la política de complejidad de SQL Server: mínimo 8 caracteres, combinando mayúsculas, minúsculas, números y símbolos. Contraseñas débiles serán rechazadas durante la configuración inicial, lo que puede interrumpir el proceso de instalación.
Ejecución de los Procesos del Servidor MU
Con Wine y la base de datos configurados, el paso siguiente es copiar los archivos del servidor y lanzar los procesos principales.
Estructura de directorios recomendada:
/home/muserver/muserver/
├── GameServer/
│ └── GameServer.exe → proceso principal del juego
├── ConnectServer/
│ └── ConnectServer.exe → coordina conexiones de clientes
├── DataServer/
│ └── DataServer.exe → gestiona acceso a base de datos
└── logs/
→ directorio de registros de cada proceso
Script de inicio para los procesos del servidor:
Crea el archivo /home/muserver/start_mu.sh:
#!/bin/bash
export WINEPREFIX=/home/muserver/.wine_mu
export WINEDEBUG=-all
→ Suprime mensajes de depuración de Wine para no saturar los logs
BASE=/home/muserver/muserver
LOG=$BASE/logs
mkdir -p "$LOG"
echo "Iniciando DataServer..."
cd "$BASE/DataServer"
wine DataServer.exe >> "$LOG/dataserver.log" 2>&1 &
→ Lanza DataServer en segundo plano y redirige salida al log
sleep 5
→ Espera a que DataServer establezca conexión con la base de datos
echo "Iniciando ConnectServer..."
cd "$BASE/ConnectServer"
wine ConnectServer.exe >> "$LOG/connectserver.log" 2>&1 &
sleep 3
echo "Iniciando GameServer..."
cd "$BASE/GameServer"
wine GameServer.exe >> "$LOG/gameserver.log" 2>&1 &
echo "Todos los procesos iniciados. Revisa los logs en $LOG"
chmod +x /home/muserver/start_mu.sh
→ Otorga permisos de ejecución al script
Configuración de Red y Firewall
El servidor MU utiliza puertos específicos que deben estar abiertos en el firewall del sistema y, si corresponde, en el proveedor de infraestructura.
Puertos estándar del servidor MU:
44405/TCP → ConnectServer (puerto al que se conecta el cliente)
55901/TCP → GameServer (puerto de juego principal)
55906/UDP → GameServer (comunicación de estado de jugadores)
1433/TCP → SQL Server (solo acceso local, no exponer externamente)
Configuración con UFW (Uncomplicated Firewall):
sudo ufw enable
→ Activa el firewall (si no estaba activo)
sudo ufw allow 22/tcp comment 'SSH administracion'
→ Mantiene acceso SSH para administracion remota
sudo ufw allow 44405/tcp comment 'MU ConnectServer'
sudo ufw allow 55901/tcp comment 'MU GameServer TCP'
sudo ufw allow 55906/udp comment 'MU GameServer UDP'
→ Abre los puertos necesarios para clientes MU
sudo ufw deny 1433/tcp comment 'SQL Server - solo acceso local'
→ Bloquea acceso externo a la base de datos
sudo ufw status verbose
→ Muestra las reglas activas para verificacion
> [!CONSEJO] > Si el servidor está detrás de un router o proveedor de infraestructura en la nube, también debes configurar las reglas de reenvío de puertos (port forwarding) en el router o los grupos de seguridad en la nube para los mismos puertos. Las reglas de UFW solo controlan el firewall del sistema operativo local.
Automatización con systemd
Para que el servidor MU se inicie automáticamente y pueda gestionarse como cualquier servicio del sistema, crea una unidad de systemd.
Crea el archivo /etc/systemd/system/muserver.service:
[Unit]
Description=MU Online Game Server
After=network.target mssql-server.service
→ Garantiza que la red y SQL Server estén disponibles antes de iniciar
[Service]
Type=forking
User=muserver
WorkingDirectory=/home/muserver
ExecStart=/home/muserver/start_mu.sh
Restart=on-failure
RestartSec=10
→ Reinicia automáticamente si algún proceso falla
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
→ Recarga la configuración de systemd
sudo systemctl enable muserver
→ Habilita el inicio automático del servicio
sudo systemctl start muserver
→ Inicia el servicio inmediatamente
sudo systemctl status muserver
→ Verifica el estado y los últimos mensajes del servicio
Monitoreo Básico del Servidor
Una vez en funcionamiento, es importante tener visibilidad sobre el comportamiento del servidor. Algunos comandos útiles para el monitoreo diario:
tail -f /home/muserver/muserver/logs/gameserver.log
→ Sigue en tiempo real la salida del GameServer
ps aux | grep wine
→ Lista los procesos Wine activos y su consumo de CPU/RAM
ss -tlnp | grep -E '44405|55901'
→ Verifica que los puertos del servidor están escuchando
journalctl -u muserver -f
→ Sigue los logs del servicio systemd en tiempo real
logrotate para evitar que los logs consuman todo el espacio disponible en disco. Un archivo de configuración básico en /etc/logrotate.d/muserver con las directivas daily, rotate 7 y compress es suficiente para la mayoría de los casos.Consideraciones Finales
Configurar MU Online en Linux requiere familiaridad con la administración de sistemas, pero el resultado es un entorno más eficiente y controlable que las alternativas en Windows. Los puntos clave a recordar son: mantener Wine actualizado para maximizar la compatibilidad, no exponer SQL Server a la red externa bajo ninguna circunstancia, y documentar cualquier cambio realizado en la configuración para facilitar la resolución de problemas futuros.
El monitoreo regular de los logs y el consumo de recursos te permitirá identificar problemas antes de que afecten la experiencia de los jugadores. A medida que crezcas en experiencia, herramientas como Grafana con Prometheus pueden agregar una capa de observabilidad más sofisticada al entorno.
Perguntas frequentes
¿Qué distribución de Linux es más recomendada para un servidor MU?
Ubuntu Server 22.04 LTS es la opción más utilizada por su estabilidad y amplio soporte de la comunidad. Debian 12 también es una alternativa sólida. Ambas ofrecen repositorios actualizados para Wine y las bibliotecas necesarias para ejecutar los binarios del servidor.
¿Cuánta RAM necesito mínimamente para correr el servidor?
El mínimo absoluto es 2 GB de RAM, pero para una experiencia estable con hasta 50 jugadores simultáneos se recomienda entre 4 GB y 8 GB. El proceso GameServer y el ConnectServer juntos consumen entre 500 MB y 1 GB dependiendo de la carga de jugadores activos.
¿Es posible ejecutar los servicios de MU sin Wine usando un contenedor Docker?
Sí. Es posible crear una imagen Docker basada en Ubuntu con Wine preinstalado, lo que facilita la portabilidad y el aislamiento del entorno. Sin embargo, el rendimiento de Wine dentro de Docker puede variar según la configuración del host y la versión del kernel de Linux utilizada.
¿Cómo puedo proteger el servidor contra ataques DDoS básicos?
A nivel de sistema operativo puedes usar iptables o nftables para limitar la tasa de conexiones por IP. Herramientas como fail2ban permiten bloquear automáticamente IPs que excedan umbrales definidos. Adicionalmente, configurar un firewall externo o usar un proveedor con mitigación en capa de red es el enfoque más efectivo para ataques volumétricos.