Troubleshooting Avançado de Conectividade no Servidor de MU Online
Diagnostique e resolva problemas avançados de conectividade em servidores MU Online: portas, firewall, ConnectServer, GameServer e banco de dados SQL.
Visão Geral do Diagnóstico
Problemas de conectividade em servidores MU Online envolvem múltiplas camadas: a rede do sistema operacional, o firewall, o ConnectServer, o GameServer, o DataServer e o SQL Server. Isolar cada camada sistematicamente é a chave para resolver falhas rapidamente.
A arquitetura de comunicação padrão funciona assim:
Cliente → ConnectServer (44405) → GameServer (55901-55910) → DataServer (55557) → SQL Server (1433)
Qualquer interrupção nessa cadeia causa falha de conexão para o jogador.
Etapa 1: Verificar o Estado dos Processos
Antes de qualquer diagnóstico de rede, confirme que todos os processos estão em execução.
1.1 Abra o Prompt de Comando como Administrador e execute:
tasklist | findstr /i "ConnectServer GameServer DataServer EventServer"
1.2 Se algum processo estiver ausente, navegue até o diretório correspondente e inicie manualmente:
cd C:\MuServer\ConnectServer
start ConnectServer.exe
cd C:\MuServer\GameServer
start GameServer.exe
cd C:\MuServer\DataServer
start DataServer.exe
1.3 Verifique os logs imediatamente após iniciar. Erros de inicialização aparecem nas primeiras linhas:
GameServer/Log/GameServer.log
ConnectServer/Log/ConnectServer.log
DataServer/Log/DataServer.log
Etapa 2: Validar Configurações do ConnectServer
2.1 Abra ConnectServer/Config/ConnectServer.ini e valide os campos críticos:
[ConnectServer]
port=44405
maxconnection=10000
serverip=0.0.0.0
[GameServer01]
ServerCode=0
ServerName=Lorencia
ServerIP=192.168.1.100
ServerPort=55901
ServerType=0
ServerIP deve ser o IP público do VPS, não o IP interno 192.168.x.x. Jogadores externos precisam alcançar esse IP diretamente.2.2 Para versões Season 6 com múltiplos GameServers, cada entrada [GameServerXX] deve ter ServerCode único e porta distinta (55901, 55902, etc.).
2.3 Teste a porta 44405 externamente usando PowerShell em uma máquina diferente:
Test-NetConnection -ComputerName SEU_IP_PUBLICO -Port 44405
Se TcpTestSucceeded retornar False, a porta está bloqueada no firewall ou roteador.
Etapa 3: Configurar Regras de Firewall
3.1 Abra as portas necessárias no Windows Firewall via PowerShell (execute como Administrador):
# ConnectServer
New-NetFirewallRule -DisplayName "MU ConnectServer" -Direction Inbound -Protocol TCP -LocalPort 44405 -Action Allow
# GameServer (ajuste o range conforme numero de servidores)
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 55557 -Action Allow
# SQL Server
New-NetFirewallRule -DisplayName "SQL Server MU" -Direction Inbound -Protocol TCP -LocalPort 1433 -Action Allow
3.2 Se o servidor está atrás de um roteador doméstico, configure o port forwarding para redirecionar as portas 44405, 55901-55910 e 1433 para o IP interno do servidor.
Etapa 4: Diagnosticar a Conexão SQL Server
4.1 Teste a conexão ao banco de dados diretamente no servidor usando sqlcmd:
sqlcmd -S localhost -U sa -P SuaSenha -Q "SELECT @@VERSION"
Se falhar com erro de login, o usuário sa pode estar desabilitado ou a autenticação mista não está ativada.
4.2 Habilite autenticação mista SQL + Windows via SQL Server Management Studio (SSMS):
Clique direito no servidor → Properties → Security → selecione SQL Server and Windows Authentication mode → reinicie o serviço SQL Server.
4.3 Verifique se o banco de dados MuOnline está acessível e as tabelas principais existem:
USE MuOnline
GO
SELECT TOP 1 Name, AccountID FROM Character
SELECT TOP 1 AccountID, GameIDC FROM Account
SELECT COUNT(*) AS TotalCharacters FROM Character
4.4 Se o GameServer não conecta ao SQL, verifique a string de conexão em GameServer/Data/Config/GameServerInfo.ini:
[DBConfig]
DBServer=localhost
DBID=sa
DBPasswd=SuaSenha
DBName=MuOnline
MSSQLSERVER ou SQLEXPRESS. Se usar uma instância nomeada, o campo DBServer deve ser localhost\NOME_DA_INSTANCIA. Instâncias nomeadas requerem que o SQL Server Browser esteja rodando (services.msc).Etapa 5: Verificar Dados Corrompidos no Banco
5.1 Consulte contas bloqueadas que impedem o login de jogadores específicos:
USE MuOnline
GO
SELECT AccountID, IsBlock, BlockCode
FROM Account
WHERE IsBlock = 1
UPDATE Account
SET IsBlock = 0, BlockCode = 0
WHERE AccountID = 'nome_da_conta'
5.2 Reposicione personagens presos em mapas inválidos (causa loop de desconexão ao fazer login):
USE MuOnline
GO
SELECT Name, AccountID, MapNumber, MapPosX, MapPosY
FROM Character
WHERE MapNumber > 200 OR MapNumber < 0
UPDATE Character
SET MapNumber = 0, MapPosX = 135, MapPosY = 127, Life = 100
WHERE MapNumber > 200 OR MapNumber < 0
Etapa 6: Diagnosticar Desconexões Durante Eventos
6.1 Verifique a configuração de horários de eventos no banco de dados:
USE MuOnline
GO
SELECT * FROM T_EventData WHERE EventType = 1
SELECT * FROM T_EventData WHERE EventType = 2
SELECT * FROM T_EventData WHERE EventType = 3
6.2 Confirme que os arquivos de configuração em GameServer/Data/Events/ estão corretos:
GameServer/Data/Events/BloodCastle.ini
GameServer/Data/Events/DevilSquare.ini
GameServer/Data/Events/ChaosCastle.ini
GameServer/Data/Events/CrywolfEvent.ini
GameServer/Data/Events/IllusionTemple.ini
6.3 Exemplo de configuração válida para Blood Castle em BloodCastle.ini:
[BloodCastle]
BloodCastle1Start=0:00,2:00,4:00,6:00,8:00,10:00,12:00,14:00,16:00,18:00,20:00,22:00
BloodCastle1Duration=15
BloodCastle1Remain=10
Etapa 7: Monitoramento com Logs em Tempo Real
7.1 Monitore o GameServer.log em tempo real via PowerShell:
Get-Content "C:\MuServer\GameServer\Log\GameServer.log" -Wait -Tail 50
7.2 Palavras-chave críticas para filtrar nos logs:
| Mensagem no Log | Causa Provável |
|---|---|
DataServer Connect Failed | DataServer offline ou porta 55557 bloqueada |
DB Connect Error | Credenciais SQL incorretas ou servico parado |
Socket Error 10061 | ConnectServer nao esta rodando |
Invalid PacketType | Cliente com versao incompativel ou ataque externo |
Map Load Failed | Arquivo de mapa corrompido em GameServer/Data/ |
Account Already Connected | Sessao fantasma no banco — jogador nao consegue logar |
7.3 Resolva sessões fantasma (Account Already Connected) diretamente no banco:
USE MuOnline
GO
SELECT AccountID, ConnectStat, ServerName
FROM MEMB_STAT
WHERE ConnectStat = 1
UPDATE MEMB_STAT
SET ConnectStat = 0, ServerName = ''
WHERE AccountID = 'nome_da_conta'
7.4 Para encerrar todas as sessões fantasma de uma vez (use com cuidado em servidor vazio):
USE MuOnline
GO
UPDATE MEMB_STAT SET ConnectStat = 0, ServerName = ''
WHERE ConnectStat = 1
7.5 Verifique as portas abertas com netstat:
netstat -an | findstr "44405 55901 55557 1433"
Todas as portas ativas devem aparecer com estado LISTENING.
Checklist Final de Diagnóstico
Antes de encerrar o troubleshooting, confirme cada item:
- ConnectServer, GameServer e DataServer estao em execucao (tasklist)
- Portas 44405, 55901-55910, 55557 e 1433 estao em LISTENING (netstat)
- Firewall do Windows liberou todas as portas acima
- IP publico esta correto em ConnectServer/Config/ConnectServer.ini
- Credenciais SQL estao corretas em GameServer/Data/Config/GameServerInfo.ini
- Nenhum personagem esta em mapa invalido (MapNumber > 200)
- Nenhuma conta bloqueada indevidamente (IsBlock = 1)
- Sessoes fantasma limpas na tabela MEMB_STAT
- Eventos sem horarios sobrepostos em GameServer/Data/Events/
- SQL Server e SQL Server Browser iniciando automaticamente (services.msc)
Perguntas frequentes
Por que os jogadores veem 'Cannot connect to server' mesmo com o servidor rodando?
O ConnectServer pode estar com IP incorreto no arquivo ConnectServer/Config/ConnectServer.ini ou o GameServer nao esta registrado corretamente. Verifique se ServerCode e ServerIP estao corretos e se a porta 44405 esta aberta no firewall.
Qual porta o ConnectServer usa por padrao e como altera-la?
O ConnectServer escuta na porta 44405 (TCP). Para alterar, edite ConnectServer/Config/ConnectServer.ini no campo 'port=' e atualize qualquer regra de firewall correspondente.
Como verificar se o GameServer esta se conectando ao DataServer corretamente?
Consulte os logs em GameServer/Log/GameServer.log e procure por 'DataServer Connect'. Se falhar, verifique GameServer/Data/Config/GameServerInfo.ini — campos DataServerIP e DataServerPort (padrao 55557) devem corresponder ao DataServer em execucao.
Por que a conexao ao banco de dados SQL Server falha apos uma reinicializacao do Windows?
O servico SQL Server pode nao estar iniciando automaticamente. Va em services.msc, localize 'SQL Server (MSSQLSERVER)' e defina o tipo de inicializacao como Automatico. Tambem verifique se o SQL Server Browser esta ativo para conexoes por nome de instancia.
Como diagnosticar desconexoes intermitentes de jogadores durante eventos como Blood Castle?
Verifique a tabela T_EventData no banco MuOnline para configuracoes incorretas de horario. Desconexoes durante eventos geralmente indicam timeout de pacote — aumente o valor PacketTimeout em GameServer/Data/Config/GameServerInfo.ini (padrao 10000ms).