Como Configurar VPS Windows Server 2019 para MU Online
Guia completo para configurar um VPS com Windows Server 2019 e rodar seu servidor MU Online com SQL Server, portas e firewall corretamente definidos.
Introdução
Configurar um VPS com Windows Server 2019 para rodar um servidor MU Online privado exige atenção a vários detalhes: instalação do SQL Server, configuração de firewall, ajuste de serviços do Windows e organização dos diretórios do servidor. Este guia cobre o processo completo — do estado inicial do VPS até o servidor pronto para receber jogadores.
Pré-requisitos
- VPS com Windows Server 2019 (mínimo 4 GB RAM, 2 vCPUs, 60 GB SSD)
- Acesso RDP ao servidor com usuário Administrador
- Arquivos do servidor MU (GameServer, ConnectServer, DataServer, EventServer)
- Instalador do SQL Server 2017 ou 2019
Parte 1 — Preparação Inicial do Windows Server 2019
Passo 1: Primeiro acesso e configuração do sistema
Conecte ao VPS via Remote Desktop (RDP) usando o IP público, usuário Administrator e a senha do provedor. Ao abrir o PowerShell como Administrador, renomeie o servidor e verifique a versão:
# Verificar build do Windows
winver
# Renomear para identificar facilmente nos logs
Rename-Computer -NewName "MUSERVER-PROD" -Restart
Após o reboot, configure o fuso horário do servidor para evitar problemas com timestamps de log:
Set-TimeZone -Id "E. South America Standard Time" # UTC-3 (Brasil)
Passo 2: Desabilitar serviços desnecessários
Reduza o consumo de recursos desabilitando o que não é necessário para um servidor de jogo:
# Windows Search — consome I/O de disco desnecessário
Set-Service -Name "WSearch" -StartupType Disabled
Stop-Service -Name "WSearch" -Force
# SysMain (Superfetch) — inútil em servidor dedicado
Set-Service -Name "SysMain" -StartupType Disabled
Stop-Service -Name "SysMain" -Force
# Print Spooler — desnecessário em VPS
Set-Service -Name "Spooler" -StartupType Disabled
Stop-Service -Name "Spooler" -Force
Passo 3: Adicionar exclusões no Windows Defender
Evite falsos positivos sem comprometer a segurança:
Add-MpPreference -ExclusionPath "C:\MuServer"
Add-MpPreference -ExclusionProcess "GameServer.exe"
Add-MpPreference -ExclusionProcess "ConnectServer.exe"
Add-MpPreference -ExclusionProcess "DataServer.exe"
Passo 4: Instalar o Visual C++ Redistributable
A maioria dos binários de MuServer Season 6 exige runtimes específicas. Instale na seguinte ordem:
- Visual C++ 2010 Redistributable (x86)
- Visual C++ 2012 Redistributable (x86 e x64)
- Visual C++ 2015-2022 Redistributable (x86 e x64)
Verifique em Painel de Controle → Programas e Recursos antes de prosseguir. Se o GameServer fechar imediatamente ao abrir, a causa mais comum é runtime ausente.
Parte 2 — Instalação e Configuração do SQL Server
Passo 5: Instalar SQL Server 2019
Execute o instalador do SQL Server 2019 selecionando a instalação Personalizada. Nas funcionalidades, marque apenas:
- Database Engine Services
- SQL Server Replication (opcional para alguns pacotes de MU)
Configure a instância como Default Instance (nome: MSSQLSERVER) para que os arquivos .ini do MuServer se conectem sem especificar nome de instância.
Após instalar, abra o SQL Server Configuration Manager e:
- Expanda SQL Server Network Configuration
- Clique em Protocols for MSSQLSERVER
- Habilite TCP/IP (botão direito → Enable)
- Dê duplo clique em TCP/IP → aba IP Addresses → role até IPAll e defina TCP Port como
1433 - Reinicie o serviço SQL Server via
services.msc
Passo 6: Configurar autenticação mista e limitar memória
No SQL Server Management Studio (SSMS), conecte ao servidor local e configure:
Autenticação mista (obrigatório para login via string de conexão):
- Clique com botão direito na instância → Properties
- Aba Security → selecione SQL Server and Windows Authentication mode
- Clique OK e reinicie o serviço SQL Server
Limite de memória (evita que o SQL consuma toda a RAM):
EXEC sp_configure 'show advanced options', 1;
RECONFIGURE;
-- Para VPS de 4 GB: limite de 2 GB para o SQL Server
EXEC sp_configure 'max server memory', 2048;
RECONFIGURE;
Passo 7: Criar banco de dados e usuário dedicado
-- Criar banco principal com collation correta para MU Online
CREATE DATABASE MuOnline
COLLATE Latin1_General_CI_AS;
GO
-- Criar banco de log separado (recomendado)
CREATE DATABASE MuOnlineLog
COLLATE Latin1_General_CI_AS;
GO
-- Criar login dedicado para o GameServer
CREATE LOGIN muserver_user WITH PASSWORD = 'SuaSenhaForte@2024',
DEFAULT_DATABASE = MuOnline,
CHECK_EXPIRATION = OFF,
CHECK_POLICY = OFF;
GO
-- Mapear ao banco e conceder permissões
USE MuOnline;
GO
CREATE USER muserver_user FOR LOGIN muserver_user;
EXEC sp_addrolemember 'db_owner', 'muserver_user';
GO
Passo 8: Restaurar o banco de dados do MuServer
Com o arquivo .bak disponível em C:\MuServer\backup\, restaure via 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 é para SQL Server 2019. Para SQL Server 2017 use MSSQL14.MSSQLSERVER. Verifique o caminho real em C:\Program Files\Microsoft SQL Server\.Parte 3 — Configuração dos Arquivos do MuServer
Passo 9: Organizar a estrutura de diretórios
Crie a estrutura padrão em C:\MuServer\:
C:\MuServer\
├── ConnectServer\
│ └── ConnectServer.exe
├── DataServer\
│ └── DataServer.exe
├── GameServer\
│ ├── Data\
│ │ ├── Events\
│ │ ├── Maps\
│ │ └── Monster\
│ ├── Logs\
│ └── GameServer.exe
├── EventServer\
│ └── EventServer.exe
└── StartAll.bat
Passo 10: Configurar string de conexão no GameServer
Edite GameServer\Data\DBConfig.ini (ou DBConnectConfig.ini dependendo da versão do pacote):
[DBCONFIG]
DBServer=127.0.0.1
DBPort=1433
DBName=MuOnline
DBUser=muserver_user
DBPass=SuaSenhaForte@2024
Edite também DataServer\DSConfig.ini:
[DataServer]
ServerCode=0
DB_Ip=127.0.0.1
DB_Port=1433
DB_Name=MuOnline
DB_User=muserver_user
DB_Pass=SuaSenhaForte@2024
Passo 11: Configurar o ConnectServer
Edite ConnectServer\ConnectServerInfo.ini:
[ConnectServer]
Port=44405
MaxConnectServer=2
ServerCodeStart=0
ServerCodeEnd=10
[ServerInfo0]
ServerCode=0
ServerName=Lorencia
GameServerIPAddress=SEU_IP_PUBLICO
GameServerPort=55901
Substitua SEU_IP_PUBLICO pelo IP externo do VPS. O cliente MU usa esse IP para conectar diretamente ao GameServer — nunca use 127.0.0.1 aqui.
Parte 4 — Configuração do Firewall do Windows
Passo 12: Criar regras de entrada via PowerShell
Execute o bloco completo no PowerShell como Administrador:
# ConnectServer
New-NetFirewallRule -DisplayName "MU-ConnectServer" -Direction Inbound -Protocol TCP -LocalPort 44405 -Action Allow
# GameServer — portas por instância 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
# Painel web (se aplicável)
New-NetFirewallRule -DisplayName "MU-WebPanel" -Direction Inbound -Protocol TCP -LocalPort 80 -Action Allow
# RDP — confirme que está aberto
New-NetFirewallRule -DisplayName "RDP-Custom" -Direction Inbound -Protocol TCP -LocalPort 3389 -Action Allow
Parte 5 — Inicialização e Verificação
Passo 13: Script de inicialização na ordem correta
A ordem de inicialização dos componentes é crítica. Crie o arquivo 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 os servicos iniciados.
pause
Execute sempre como Administrador (botão direito → Executar como administrador).
Passo 14: Verificar conectividade dos componentes
Confirme que as portas estão ouvindo:
# Verificar todas as portas do MU de uma vez
netstat -ano | findstr ":44405 :55901 :55960"
No SSMS, confirme que o GameServer conectou ao banco:
USE MuOnline;
GO
-- Últimas conexões registradas
SELECT TOP 10 memb___id, ConnectTM, DisConnectTM
FROM MEMB_INFO
ORDER BY ConnectTM DESC;
GO
-- Configuração de experiência (confirma integridade do banco)
SELECT * FROM T_CommonServerInfo;
GO
Passo 15: Criar conta de teste via SQL
Para verificar o fluxo completo sem painel 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', 'senha123'), 2),
'Teste User', '00000000000',
'00000-000', 'Endereco', 'Detalhe', '00000000000',
'[email protected]', 'N', 0, 0
);
GO
T_CommonServerInfo retornar erro, o script SQL de criação de tabelas não foi executado corretamente. Revise os logs em GameServer\Logs\GameServer.log para identificar erros específicos de conexão.Solução de Problemas Comuns
GameServer fecha imediatamente ao abrir
Sequência de diagnóstico:
- SQL Server está rodando? →
services.msc→ SQL Server (MSSQLSERVER) - TCP/IP habilitado no SQL Server Configuration Manager?
- Credenciais em
DBConfig.iniestão corretas? - Autenticação mista habilitada nas propriedades do servidor SQL?
- Visual C++ Redistributable instalado (x86)?
ConnectServer não aceita conexões externas
# Verificar se a porta está ouvindo localmente
netstat -ano | findstr :44405
# Se não aparecer: ConnectServer não iniciou — veja os logs
# Se aparecer mas exterior não acessa: verifique firewall do provedor (painel externo do VPS)
Muitos provedores de VPS têm um firewall próprio no painel de controle, separado do firewall do Windows. Verifique e abra as portas lá também.
Alto uso de CPU pelo SQL Server
-- Identificar as queries mais 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;
Conclusão
Com o VPS configurado seguindo estes passos, seu servidor MU Online terá uma base sólida: SQL Server otimizado com limite de memória, firewall configurado sem expor a porta do banco, serviços do Windows ajustados para performance e componentes iniciando na ordem correta. O próximo passo é configurar os eventos do servidor (Blood Castle, Devil Square, Chaos Castle) e o painel web de administração.
Perguntas frequentes
Qual versão do SQL Server devo usar com Windows Server 2019?
SQL Server 2017 ou 2019 são as mais compatíveis com Windows Server 2019. Evite SQL Server 2000 neste ambiente — ele não é suportado oficialmente. Use SQL Server 2017 Express (gratuito) para servidores com menos de 10 GB de banco de dados.
Quais portas preciso abrir no firewall do VPS?
As portas essenciais são: 44405 (ConnectServer), 55901-55910 (GameServer por instância de mapa), 55960 (DataServer), 1433 (SQL Server — apenas local), 80 (painel web) e 3389 (RDP). Nunca exponha a porta 1433 ao exterior se o banco e o GameServer estão na mesma máquina.
O servidor MU trava após alguns minutos rodando no VPS — o que verificar?
Verifique primeiro o log em GameServer\\Logs\\GameServer.log. Causas comuns: memória RAM insuficiente (mínimo 4 GB para Season 6), SQL Server sem limite de memória configurado, ou antivírus bloqueando os executáveis. Configure o SQL Server para usar no máximo 2 GB de RAM se o VPS tiver 4 GB total.
Como impedir que o Windows Server 2019 reinicie automaticamente após atualizações?
Acesse gpedit.msc → Configuração do Computador → Modelos Administrativos → Componentes do Windows → Windows Update. Defina 'Configurar Atualizações Automáticas' como 'Baixar e notificar para instalar' (opção 3). Isso baixa as atualizações mas exige aprovação manual para reiniciar.