DISCLAIMER: You are making your server more available to the world by following these steps. Be aware that you might put your server at risk for cyber attack or compromise if you publish details about connecting to your server online.
Before continuing, please consider taking steps to secure your server such as disabling remote root access to your shell and database, disable remote access for your mangos database user, change your router password to something strong, install any firmware updates for your router and any security updates available for your server. Unless you are comfortable with the risk and know how to protect yourself, be careful of who you share your server information with.
OK! Now that's out of the way...
These instructions are for setting up a dedicated hardware server on a home network. I didn't find clear concise instructions for setting it up for external connections so I'll share what worked for me.
These instructions assume that your server is up and running with localhost or 127.0.0.1 in the BindIP conf fields and the address column of your server's realmlist entry in your realmd (by default) schema.
Before we start...
If your server is running, stop both server and realm executables by whatever your preferred method is.
Use the ip a command to determine your server's LAN IP address. Probably something like 192.168.1.xxx.
In both your mangosd.conf and realmd.conf change the BindIP value to a string containing your server's LAN IP, like:
BindIP = "192.168.1.19" # or whatever the IP address might be...
Save and close both of those files.
Determine Your Server's Public IP
You will need your public IP address which you can find by googling "what is my public ip address". IMPORTANT: Make sure that you do this from the server itself. Jot that down.
Now open MySQL Workbench or the MySQL shell or whatever your favorite means of SQL delivery.
In the realmd schema (by default) in the realmlist table find the entry for your server.
Update the address column to be your public IP address that you jotted down before and in the localAddress column, put your LAN IP address, like 192.168.1.xxx.
If you have a netgear router you will go to routerlogin.net. You need to login with your admin username and password. The username is probably admin unless you changed it. The password is either in your router's documentation (on a card or something), on a sticker on the router or it's something you changed it to. That's on you.
If these next instructions don't work for you, you may need to poke around your router's proprietary UI to find the right options... Good luck!
- At the top choose the ADVANCED tab.
- On the left, choose Advanced Setup
- On the Advanced Setup submenu, choose Port Forwarding / Port Triggering
- You will need to create 3 forwarding rules.
For each PortNumber of the ports 3443, 3724 and 8085:
- Click the +Add Custom Service button
- Fill in the service name with something, maybe "mangosX"
- In the External Starting Port field, put the PortNumber
- In the External Ending Port field, put the PortNumber
- In the Internal IP address field, put your server's LAN IP address, 192.168.1... (probably)
- Click the Apply button to save the rule
Now you can start your server back up by your preferred method.
There's just one more step and that's setting up our client's realmlist.wtf file. This is also the part you'll tell your friends when they want to connect.
Over wherever your actual WoW client lives, find the realmlist.wtf file and change the IP to the external IP address that you just jotted down previously.
In your realmlist.wtf file you should now have:
set realmlist <whateverYourExternalIPAddressIs> set patchlist <whateverYourExternalIPAddressIs>
You (or your friend) is now ready to start their client with Wow.exe and join your awesome cool publicly available server! Enjoy!