Advanced Connectivity Troubleshooting on MU Online Server
Diagnose and resolve advanced connectivity issues on MU Online servers: ports, firewall, ConnectServer, GameServer, and SQL database configuration.
Diagnostic Overview
Connectivity problems on MU Online servers involve multiple layers: the OS network stack, the firewall, the ConnectServer, the GameServer, the DataServer, and SQL Server. Isolating each layer systematically is the key to resolving failures quickly.
The standard communication architecture works as follows:
Client → ConnectServer (44405) → GameServer (55901-55910) → DataServer (55557) → SQL Server (1433)
Any interruption in this chain causes a connection failure for the player.
Step 1: Verify Process Status
Before any network diagnosis, confirm all processes are running.
1.1 Open Command Prompt as Administrator and run:
tasklist | findstr /i "ConnectServer GameServer DataServer EventServer"
1.2 If any process is missing, navigate to the corresponding directory and start it manually:
cd C:\MuServer\ConnectServer
start ConnectServer.exe
cd C:\MuServer\GameServer
start GameServer.exe
cd C:\MuServer\DataServer
start DataServer.exe
1.3 Check logs immediately after starting. Startup errors appear in the first lines:
GameServer/Log/GameServer.log
ConnectServer/Log/ConnectServer.log
DataServer/Log/DataServer.log
Step 2: Validate ConnectServer Configuration
2.1 Open ConnectServer/Config/ConnectServer.ini and validate the critical fields:
[ConnectServer]
port=44405
maxconnection=10000
serverip=0.0.0.0
[GameServer01]
ServerCode=0
ServerName=Lorencia
ServerIP=203.0.113.50
ServerPort=55901
ServerType=0
ServerIP must be the public IP of the VPS, not the internal 192.168.x.x address. External players need to reach that IP directly.2.2 For Season 6 versions with multiple GameServers, each [GameServerXX] entry must have a unique ServerCode and a distinct port (55901, 55902, etc.).
2.3 Test port 44405 externally using PowerShell from a different machine:
Test-NetConnection -ComputerName YOUR_PUBLIC_IP -Port 44405
If TcpTestSucceeded returns False, the port is blocked at the firewall or router level.
Step 3: Configure Firewall Rules
3.1 Open the required ports in Windows Firewall via PowerShell (run as Administrator):
# ConnectServer
New-NetFirewallRule -DisplayName "MU ConnectServer" -Direction Inbound -Protocol TCP -LocalPort 44405 -Action Allow
# GameServer (adjust range based on number of servers)
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 If the server is behind a home router, configure port forwarding to redirect ports 44405, 55901-55910, and 1433 to the server's internal IP.
Step 4: Diagnose SQL Server Connection
4.1 Test the database connection directly on the server using sqlcmd:
sqlcmd -S localhost -U sa -P YourPassword -Q "SELECT @@VERSION"
If it fails with a login error, the sa user may be disabled or mixed authentication mode is not enabled.
4.2 Enable mixed SQL + Windows authentication via SQL Server Management Studio (SSMS):
Right-click the server → Properties → Security → select SQL Server and Windows Authentication mode → restart the SQL Server service.
4.3 Verify that the MuOnline database is accessible and the primary tables exist:
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 If the GameServer cannot connect to SQL, verify the connection string in GameServer/Data/Config/GameServerInfo.ini:
[DBConfig]
DBServer=localhost
DBID=sa
DBPasswd=YourPassword
DBName=MuOnline
MSSQLSERVER or SQLEXPRESS. If using a named instance, the DBServer field must be localhost\INSTANCE_NAME. Named instances require SQL Server Browser to be running (services.msc).Step 5: Check for Corrupted Data in the Database
5.1 Look for blocked accounts preventing specific players from logging in:
USE MuOnline
GO
SELECT AccountID, IsBlock, BlockCode
FROM Account
WHERE IsBlock = 1
UPDATE Account
SET IsBlock = 0, BlockCode = 0
WHERE AccountID = 'account_name'
5.2 Reposition characters stuck in invalid maps (causes a disconnect loop at 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
Step 6: Diagnose Disconnections During Events
6.1 Check event schedule configuration in the database:
USE MuOnline
GO
-- Blood Castle
SELECT * FROM T_EventData WHERE EventType = 1
-- Devil Square
SELECT * FROM T_EventData WHERE EventType = 2
-- Chaos Castle
SELECT * FROM T_EventData WHERE EventType = 3
6.2 Confirm that the event configuration files in GameServer/Data/Events/ are correctly set:
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 Example of a valid Blood Castle configuration in 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
Step 7: Real-Time Log Monitoring
7.1 Monitor GameServer.log in real time via PowerShell:
Get-Content "C:\MuServer\GameServer\Log\GameServer.log" -Wait -Tail 50
7.2 Critical keywords to filter in the logs:
| Log Message | Likely Cause |
|---|---|
DataServer Connect Failed | DataServer offline or port 55557 blocked |
DB Connect Error | Incorrect SQL credentials or service stopped |
Socket Error 10061 | ConnectServer is not running |
Invalid PacketType | Incompatible client version or external attack |
Map Load Failed | Corrupted map file in GameServer/Data/ |
Account Already Connected | Ghost session in DB — player cannot log in |
7.3 Resolve ghost sessions (Account Already Connected) directly in the database:
USE MuOnline
GO
SELECT AccountID, ConnectStat, ServerName
FROM MEMB_STAT
WHERE ConnectStat = 1
UPDATE MEMB_STAT
SET ConnectStat = 0, ServerName = ''
WHERE AccountID = 'account_name'
7.4 To clear all ghost sessions at once (use with caution on an empty server):
USE MuOnline
GO
UPDATE MEMB_STAT SET ConnectStat = 0, ServerName = ''
WHERE ConnectStat = 1
7.5 Verify open ports with netstat to confirm all services are listening:
netstat -an | findstr "44405 55901 55557 1433"
All active ports must appear with the state LISTENING.
Final Diagnostic Checklist
Before closing the troubleshooting session, confirm each item:
- ConnectServer, GameServer, and DataServer are running (tasklist)
- Ports 44405, 55901-55910, 55557, and 1433 are in LISTENING state (netstat)
- Windows Firewall has cleared all the ports above
- Public IP is correct in ConnectServer/Config/ConnectServer.ini
- SQL credentials are correct in GameServer/Data/Config/GameServerInfo.ini
- No character is stuck in an invalid map (MapNumber > 200)
- No account blocked incorrectly (IsBlock = 1)
- Ghost sessions cleared in the MEMB_STAT table
- No overlapping event schedules in GameServer/Data/Events/
- SQL Server and SQL Server Browser set to start automatically (services.msc)
Perguntas frequentes
Why do players see 'Cannot connect to server' even though the server is running?
The ConnectServer may have an incorrect IP in ConnectServer/Config/ConnectServer.ini, or the GameServer is not properly registered. Verify that ServerCode and ServerIP are correct and that port 44405 is open in the firewall.
What port does ConnectServer use by default and how do I change it?
ConnectServer listens on port 44405 (TCP). To change it, edit ConnectServer/Config/ConnectServer.ini in the 'port=' field and update any corresponding firewall rules.
How do I verify the GameServer is connecting to DataServer correctly?
Check logs at GameServer/Log/GameServer.log and look for 'DataServer Connect'. If it fails, check GameServer/Data/Config/GameServerInfo.ini — the DataServerIP and DataServerPort fields (default 55557) must match the running DataServer.
Why does the SQL Server connection fail after a Windows restart?
The SQL Server service may not be set to start automatically. Go to services.msc, locate 'SQL Server (MSSQLSERVER)', and set the startup type to Automatic. Also verify that SQL Server Browser is active for named instance connections.
How do I diagnose intermittent player disconnections during events like Blood Castle?
Check the T_EventData table in the MuOnline database for incorrect schedule settings. Disconnections during events typically indicate packet timeout — increase the PacketTimeout value in GameServer/Data/Config/GameServerInfo.ini (default 10000ms).