O maior portal de MU Online do Brasil — desde 2003
Tutorial Avançado Tutoriais

Como Configurar Servidor de MU Online no Linux com Wine/Mono

Guia técnico completo para rodar um servidor MuServer Season 6 no Linux usando Wine, com configuração de SQL Server via FreeTDS e ajustes de rede.

EQ Equipe ViciadosMU · Atualizado em 3 jul 2026 · ⏱ 12 min de leitura

Por que Rodar MuServer no Linux?

Servidores Linux oferecem vantagens reais em ambientes de produção: menor custo de licenciamento, melhor estabilidade em uptime longo, acesso facilitado a ferramentas de monitoramento como htop, netstat e journald. O desafio é que o MuServer é um binário nativo Win32 — todo o ecossistema foi construído para Windows. Este guia cobre a abordagem mais viável: Wine para os executáveis do servidor + SQL Server para Linux (ou instância remota) para o banco de dados.

Nota: Este guia foi validado em Ubuntu 22.04 LTS e Debian 12 com MuServer Season 6 EP3. Outras distribuições seguem o mesmo processo com pequenas variações nos comandos de instalação de pacotes.

Pré-Requisitos

  • VPS ou servidor dedicado com Ubuntu 22.04 LTS / Debian 12
  • Mínimo: 4 vCPUs, 8 GB RAM, 40 GB de disco
  • Acesso root ou sudo
  • Arquivos do MuServer Season 6 já obtidos e descompactados
  • Instância SQL Server (remota em Windows ou SQL Server 2019 para Linux)

Parte 1 — Instalação do Wine

Passo 1: Habilitar repositório do Wine

sudo dpkg --add-architecture i386
sudo mkdir -pm755 /etc/apt/keyrings
sudo wget -O /etc/apt/keyrings/winehq-archive.key \
  https://dl.winehq.org/wine-builds/winehq.key
sudo wget -NP /etc/apt/sources.list.d/ \
  https://dl.winehq.org/wine-builds/ubuntu/dists/jammy/winehq-jammy.sources
sudo apt update

Passo 2: Instalar Wine estável e Winetricks

sudo apt install --install-recommends winehq-stable
sudo apt install cabextract  # necessário para winetricks
wget https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks
chmod +x winetricks && sudo mv winetricks /usr/local/bin/

Passo 3: Criar prefixo Wine de 32 bits para o MuServer

O MuServer Season 6 é um binário Win32 puro. Um prefixo dedicado isola suas DLLs.

export WINEPREFIX=/opt/muserver/wine32
export WINEARCH=win32
wine wineboot --init

Passo 4: Instalar dependências de runtime via Winetricks

WINEPREFIX=/opt/muserver/wine32 WINEARCH=win32 winetricks vcrun2005
WINEPREFIX=/opt/muserver/wine32 WINEARCH=win32 winetricks vcrun2008
WINEPREFIX=/opt/muserver/wine32 WINEARCH=win32 winetricks vcrun2010
WINEPREFIX=/opt/muserver/wine32 WINEARCH=win32 winetricks dotnet20
Dica: Se winetricks dotnet20 falhar com erro de download, use winetricks --force dotnet20 ou copie manualmente o dotnetfx20.exe da Microsoft para ~/.cache/winetricks/dotnet20/.

Parte 2 — Configurar o SQL Server

Opção A: SQL Server 2019 para Linux (na mesma máquina)

# Importar chave e repositório Microsoft
curl -fsSL https://packages.microsoft.com/keys/microsoft.asc \
  | sudo gpg --dearmor -o /usr/share/keyrings/microsoft-prod.gpg

curl https://packages.microsoft.com/config/ubuntu/22.04/mssql-server-2019.list \
  | sudo tee /etc/apt/sources.list.d/mssql-server-2019.list

sudo apt update
sudo apt install mssql-server

# Configuração inicial (definir SA password e edição Express)
sudo /opt/mssql/bin/mssql-conf setup

Opção B: Instância SQL Server remota em Windows

Neste caso, apenas configure o FreeTDS apontando para o IP do Windows Server:

# /etc/freetds/freetds.conf
[MUSERVER_DB]
    host = 192.168.1.100
    port = 1433
    tds version = 7.4
    database = MuOnline

Passo 5: Criar o banco de dados MuOnline

Conecte ao SQL Server com sqlcmd e execute:

-- Criar banco e usuário dedicado
CREATE DATABASE MuOnline
  COLLATE Latin1_General_CI_AS;
GO

USE MuOnline;
GO

CREATE LOGIN muserver_user WITH PASSWORD = 'SuaSenhaForte123!',
  CHECK_POLICY = OFF;
GO

CREATE USER muserver_user FOR LOGIN muserver_user;
GO

EXEC sp_addrolemember 'db_owner', 'muserver_user';
GO
Atenção: Nunca use sa diretamente nos arquivos de configuração do MuServer em produção. Crie um login dedicado com privilégios apenas no banco MuOnline.

Em seguida, restaure o dump do banco (arquivo .bak ou scripts .sql que acompanham o MuServer):

sqlcmd -S localhost -U sa -P 'SuaSenhaAdmin' \
  -Q "RESTORE DATABASE MuOnline FROM DISK='/opt/muserver/backup/MuOnline.bak'"

Parte 3 — Estrutura de Arquivos e Configuração

Passo 6: Copiar os arquivos do servidor

# Estrutura esperada após cópia
/opt/muserver/
├── ConnectServer/
│   ├── ConnectServer.exe
│   └── Config/
│       └── ConnectServer.ini
├── DataServer/
│   ├── DataServer.exe
│   └── DataServer.ini
├── GameServer/
│   ├── GameServer.exe
│   ├── Config/
│   │   ├── GameServerInfo.ini
│   │   └── GatePort.ini
│   └── Data/
│       ├── Events/
│       └── Maps/
└── EventServer/
    └── EventServer.exe
# Permissões corretas
chmod -R 755 /opt/muserver/
chmod -R 644 /opt/muserver/GameServer/Data/

Passo 7: Editar as strings de conexão de banco

Cada componente tem seu próprio arquivo de configuração de banco. Edite todos:

# GameServer/Config/GameServerInfo.ini
[DB_CONNECT]
DBHost=127.0.0.1
DBPort=1433
DBName=MuOnline
DBUser=muserver_user
DBPass=SuaSenhaForte123!
# DataServer/DataServer.ini
[DATABASE]
ServerAddress=127.0.0.1
DatabasePort=1433
DatabaseName=MuOnline
DatabaseUID=muserver_user
DatabasePWD=SuaSenhaForte123!

Passo 8: Configurar portas no ConnectServer

# ConnectServer/Config/ConnectServer.ini
[CONNECT_SERVER]
ClientPort=44405
ServerPort=55901
MaxClientCount=10000
Nota: O ConnectServer escuta na porta 44405 para clientes e 55901 para comunicação interna entre GameServers. Certifique-se de que essas portas estejam abertas no firewall: sudo ufw allow 44405/tcp && sudo ufw allow 55901/tcp.

Parte 4 — Scripts de Inicialização

Passo 9: Criar scripts de start/stop

# /opt/muserver/start_all.sh
#!/bin/bash

export WINEPREFIX=/opt/muserver/wine32
export WINEARCH=win32
export DISPLAY=:0

LOG_DIR="/opt/muserver/logs"
mkdir -p "$LOG_DIR"

echo "[$(date)] Iniciando DataServer..."
cd /opt/muserver/DataServer
wine DataServer.exe >> "$LOG_DIR/dataserver.log" 2>&1 &
sleep 5

echo "[$(date)] Iniciando ConnectServer..."
cd /opt/muserver/ConnectServer
wine ConnectServer.exe >> "$LOG_DIR/connectserver.log" 2>&1 &
sleep 3

echo "[$(date)] Iniciando GameServer..."
cd /opt/muserver/GameServer
wine GameServer.exe >> "$LOG_DIR/gameserver.log" 2>&1 &

echo "[$(date)] Todos os componentes iniciados."
chmod +x /opt/muserver/start_all.sh
Dica: Para servidores headless (sem monitor), instale o Xvfb para criar um display virtual: sudo apt install xvfb e inicie com Xvfb :0 -screen 0 1024x768x16 & antes de rodar os servidores Wine.

Passo 10: Criar serviço systemd

# /etc/systemd/system/muserver.service
[Unit]
Description=MU Online Private Server
After=network.target mssql-server.service

[Service]
Type=forking
User=muserver
WorkingDirectory=/opt/muserver
ExecStart=/opt/muserver/start_all.sh
ExecStop=/usr/bin/pkill -f "wine.*Server.exe"
Restart=on-failure
RestartSec=10

[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable muserver
sudo systemctl start muserver

Parte 5 — Verificação e Troubleshooting

Verificar logs em tempo real

tail -f /opt/muserver/logs/gameserver.log
tail -f /opt/muserver/logs/connectserver.log

Verificar conexões de rede ativas

ss -tlnp | grep -E '44405|55901|55906'

Verificar conectividade com o banco

sqlcmd -S 127.0.0.1 -U muserver_user -P 'SuaSenhaForte123!' \
  -Q "SELECT TOP 1 Name FROM MuOnline..Character"

Erro comum: "err:module: load_builtin_dll failed"

Este erro indica DLL ausente no prefixo. Identifique qual DLL falta no log e instale:

WINEPREFIX=/opt/muserver/wine32 winetricks <nome_do_pacote>
# Exemplos: vcrun2012, vcrun2015, d3dx9, directx9
Atenção: O MuServer não suporta execução multithread nativa pelo Wine em alguns processadores AMD. Se notar crashes aleatórios no GameServer, adicione WINE_CPU_TOPOLOGY=4:1 às variáveis de ambiente do serviço para limitar afinidade de CPU.

Ajuste de Performance no SQL Server para Linux

Após o servidor estar rodando, otimize as queries mais pesadas que o MuServer executa com frequência:

-- Índice na tabela de personagens (reduz tempo de login)
USE MuOnline;
GO

CREATE NONCLUSTERED INDEX IX_Character_AccountID
ON dbo.Character (AccountID)
INCLUDE (Name, cLevel, MapNumber);
GO

-- Índice na tabela de itens do armazém
CREATE NONCLUSTERED INDEX IX_Warehouse_AccountID
ON dbo.Warehouse (AccountID);
GO

Com este setup, seu servidor MU Online Season 6 estará rodando de forma estável no Linux, aproveitando os recursos do sistema operacional para uptime prolongado e monitoramento avançado.

Perguntas frequentes

O Wine suporta todas as versões do MuServer?

As versões mais testadas e estáveis são as baseadas em Season 6 (MuServer S6EP3). Versões mais antigas (S1-S3) tendem a funcionar melhor por serem menos dependentes de bibliotecas modernas do Windows. Servidores S12+ usam componentes .NET pesados que exigem Mono ou Wine com prefixos específicos de 64 bits.

Como conecto o MuServer ao SQL Server rodando em outro host?

No arquivo ConnectServer/Config/ConnectServer.ini e nos arquivos DBServer.ini de cada componente, defina o campo DBHost com o IP ou hostname do SQL Server. Use o driver FreeTDS configurado em /etc/freetds/freetds.conf apontando para a instância correta, e certifique-se de que a porta 1433 está liberada no firewall do host SQL.

O GameServer trava ao carregar mapas. O que verificar?

Confirme que os arquivos de mapa em GameServer/Data/Maps/ têm permissão de leitura (chmod 644). Verifique o log em GameServer/Logs/GameServer.log para erros de acesso a arquivo. Um erro comum é a falta das DLLs MSVCP100.dll e MSVCR100.dll no prefixo Wine — instale com: winetricks vcrun2010.

Posso usar MariaDB no lugar do SQL Server?

Tecnicamente sim, usando um wrapper ODBC, mas o MuServer foi desenvolvido para T-SQL e usa procedures e sintaxes específicas do SQL Server. A abordagem mais estável é rodar o SQL Server 2012/2014 Express em uma VM Windows separada ou usar o SQL Server para Linux (disponível a partir do SQL Server 2017).

EQ

Equipe ViciadosMU

Equipe editorial do ViciadosMU — portal de MU Online no ar desde 2003.

Continue lendo

Artigos relacionados