How to Create a MU Online Server on a VPS — Step by Step
Learn how to set up a MU Online private server on a VPS from scratch — OS configuration, SQL Server, GameServer, ConnectServer and firewall rules.
Setting up a MU Online private server on a VPS requires careful preparation across four main layers: the operating system, the database engine, the server binaries, and the network. This guide walks through each layer in sequence so you finish with a fully functional and securely configured server environment.
Step 1 — Choosing and Configuring Your VPS
Before touching any server files, get your VPS environment right. Choose a plan with at minimum 4 vCPUs, 8 GB RAM, and 80 GB SSD. For anything beyond 150 concurrent players, scale to 8 GB or 16 GB RAM and add a secondary disk for database backups.
Install Windows Server 2019 Standard 64-bit as the operating system. Most modern MU server file packages are compiled against Windows libraries present in 2019, and SQL Server 2019 runs best on this version.
After the first RDP login, run Windows Update completely before installing anything else. A fully patched base OS avoids compatibility conflicts during SQL Server and .NET Framework installation.
> [!WARNING] > Change the default RDP port (3389) to a non-standard port and restrict access to your own IP address immediately after provisioning the VPS. Leaving RDP exposed to the entire internet leads to brute-force attacks within hours of the machine going live.
Create a dedicated Windows user account for running the server processes — never run GameServer or ConnectServer under the Administrator account in production. This limits the blast radius if a binary is ever compromised.
Step 2 — Installing and Configuring SQL Server
MU Online server files store all character, account, and item data in a Microsoft SQL Server database. SQL Server 2019 Developer or Express editions are free for non-commercial use and fully capable for private server workloads.
Run the SQL Server installer and select Database Engine Services only — you do not need Analysis Services or Reporting Services. During installation, set the authentication mode to Mixed Mode and create a strong sa password. Note this password — you will reference it in every server configuration file.
After installation, open SQL Server Configuration Manager and verify that:
- TCP/IP protocol is Enabled
- The TCP port on the IP addresses tab is set to 1433
- SQL Server Browser service is Running
Import the MU database backup files using SQL Server Management Studio (SSMS). The standard procedure is:
→ Open SSMS → Connect to localhost with sa credentials
→ Right-click Databases → Restore Database
→ Select Device → locate the .bak file for each database:
MuOnline → character and item data
MuBilling → account and billing records
EventChipDB → seasonal event tracking (if applicable)
→ Set the Destination Database name exactly as expected by the server files
→ Options tab → check "Overwrite the existing database" → OK
> [!TIP] > After restoring, run DBCC CHECKDB ('MuOnline') in a new SSMS query window. A clean result with no errors confirms the backup is intact before you invest time in configuring anything else.
Once restored, create a dedicated SQL login with only the permissions the server processes need:
-- Create application login (replace StrongPassword123 with your own)
CREATE LOGIN muserver_app WITH PASSWORD = 'StrongPassword123';
-- Grant db_owner on each MU database
USE MuOnline;
CREATE USER muserver_app FOR LOGIN muserver_app;
ALTER ROLE db_owner ADD MEMBER muserver_app;
USE MuBilling;
CREATE USER muserver_app FOR LOGIN muserver_app;
ALTER ROLE db_owner ADD MEMBER muserver_app;
Never use sa in the server configuration files. The dedicated login keeps your sa credentials isolated.
Step 3 — Deploying the Server Binaries
Organize your server files under a clean directory structure before configuring anything:
C:\MuServer\
├── ConnectServer\ → CS binary and Config\
├── GameServer\ → GS binary, Data\, Maps\, Config\
├── DataServer\ → DS binary and Config\
└── Logs\ → shared log output folder
ConnectServer Configuration
The ConnectServer acts as the entry point — it tells clients which GameServer they should connect to. Open ConnectServer\Config\CSConfig.ini and set:
[ServerInfo]
ServerPort → 55901 ; port clients connect to first
ServerListPort → 44405 ; port GS registers itself on
MaxConnections → 5000 ; tune based on expected player peak
ServerIP → 0.0.0.0 ; listen on all interfaces
[Log]
LogDirectory → C:\MuServer\Logs\CS\
LogLevel → 1 ; 0=errors only, 1=standard, 2=verbose
GameServer Configuration
The GameServer configuration is more involved. Open GameServer\Config\GameServerInfo.ini:
[DBConnection]
SQLServer → 127.0.0.1,1433
SQLUser → muserver_app
SQLPassword → StrongPassword123
DBName → MuOnline
[Network]
GameServerCode → 0 ; server ID shown to clients
GameServerPort → 55902 ; main game port
MaxConnections → 1000 ; concurrent player cap
[ConnectServer]
ConnectServerIP → 127.0.0.1 ; use LAN IP if CS is on same machine
ConnectServerPort → 44405
[Rates]
ExpRate → 100 ; experience multiplier
DropRate → 50 ; item drop multiplier
127.0.0.1 for inter-process communication. Using the public IP for internal traffic goes through the network stack unnecessarily and adds latency.Start the processes in order: DataServer first, then ConnectServer, then GameServer. Check each Logs directory for startup errors before proceeding to the next process.
Step 4 — Firewall and Network Configuration
Windows Firewall must allow inbound traffic on the game ports. Open PowerShell as Administrator and run:
# ConnectServer — client entry point
netsh advfirewall firewall add rule `
name="MU ConnectServer" dir=in action=allow `
protocol=TCP localport=55901
# GameServer — game traffic
netsh advfirewall firewall add rule `
name="MU GameServer" dir=in action=allow `
protocol=TCP localport=55902-55910
# Block SQL Server from external access (should be local only)
netsh advfirewall firewall add rule `
name="Block SQL External" dir=in action=block `
protocol=TCP localport=1433 remoteip=!LocalSubnet
If your VPS provider has a separate cloud firewall or security group panel (common with major providers), replicate these rules there as well. Cloud-level firewalls drop packets before they reach the OS, providing an additional defensive layer.
Verify connectivity from a client machine using Telnet or a port scanner: telnet YOUR_VPS_IP 55901. A successful connection means ConnectServer is reachable. If it hangs or refuses, check the Windows Firewall rules and confirm the ConnectServer process is actually running.
Step 5 — Testing and Hardening Before Launch
With all services running, perform a full end-to-end test:
- Point a test client
main.ini(or equivalent config file for your Season) to your VPS public IP. - Create a test account directly in the
MuBillingdatabase or through an admin panel. - Log in, create a character, and walk around Lorencia to confirm basic gameplay works.
- Check the GameServer log for repeated error lines — address any database connection errors or missing Data file warnings before opening to players.
Beyond functional testing, implement these hardening measures before public launch:
- Automated backups — schedule a daily SQL Server backup job via SQL Agent that exports
.bakfiles to a separate disk or remote storage. - Process watchdog — use Windows Task Scheduler with a PowerShell script that checks whether the GS process is alive and restarts it automatically if it crashes.
- Log rotation — MU server logs grow fast; set up a weekly cleanup that archives logs older than 14 days to a zip file.
- DDoS baseline — document your VPS provider's DDoS mitigation capabilities and enable any included protection tiers before announcing your server publicly.
A server that survives its first 48 hours of public traffic is one that was tested thoroughly before opening the gates.
Perguntas frequentes
What are the minimum VPS specs to run a MU Online server?
For a small server (up to 100 simultaneous players) you need at least 4 vCPUs, 8 GB RAM, and 80 GB SSD storage. SQL Server 2019 alone can consume 2–4 GB of RAM at peak, so running on less than 8 GB will cause instability under moderate load.
Which Windows Server version should I use for the VPS?
Windows Server 2019 Standard (64-bit) is the most compatible option for modern MU server files. It supports SQL Server 2019, has good RDP stability, and receives regular security updates. Windows Server 2022 also works but some older Season files require compatibility patches.
Do I need to open all ports in the VPS firewall?
No. Only expose the ports your server actually uses: 55901 (ConnectServer), 55902–55910 (GameServer game ports), 1433 (SQL Server — internal only, never expose to the internet), 3389 (RDP — restrict to your own IP), and 80/443 if hosting a website. Exposing unnecessary ports increases your attack surface.
How do I prevent players from disconnecting when I update server files?
Schedule maintenance windows and announce them in Discord at least 30 minutes in advance. Use the GS restart script with a countdown notice inside the game via the /notice GM command. Keep a full backup before any file update so you can roll back in under 5 minutes if something breaks.