Overview
While we at Server Academy mostly create content based around administrating the Windows Server operating system, we also love to game! One of our favorite games is DCS World, a flight simulator with highly detailed fighter jets and realistic flight models and combat systems.
In this tutorial, we are going to cover the steps require to build a DCS World server on Windows Server 2016. While this involves gaming, what you learn in this tutorial like port forwarding, firewall configuration and scheduled PowerShell scripts will in your IT career.
We are going to complete this with the steps below:
You want to be sure that you have configured your DCS Server with a static IP address (instructions here). In my scenario, my gaming server's static internal IP address is 10.2.0.2.
Download and install prerequisite files
Keep in mind all you really need is the DCS Server and a Windows computer and you can skip the other files if you'd like. However, below are the tools that I will be installing and configuring and what I recommend you use.
Download the files listed below (excluding the OS if you already have one):
- Windows Server 2016 Desktop Experience (Windows 10 would also work)
- DCS World Open Beta Server
- TacView Advanced
- Simple Radio Standalone (scroll to bottom of page)
SRS is hosted on GitHub which among other things is a way for developers to collaborate on software. The process for downloading and installing something from GitHub could be a little different than what you're used to so I will cover the steps below:
When you click the Simple Radio Standalone link above, you need to scroll to the bottom of the page and located the "Assets" section. Click the DCS-SimpleRadioStandalone-x.x.x.x.zip file to download the installer.
Just extract that zip file and run the Installer inside of the folder with the default settings to complete the installation.
Once the installation is complete, you're done with the downloads / installations.
After you have downloaded the above steps, this is what your desktop should look like:
Launch the DCS World OpenBeta Dedicated Server, and log in to your https://www.digitalcombatsimulator.com/ user account, then close the dedicated server as we still need to configure our firewalls to accept DCS client connections.
Become a System Admin
Without Leaving Your Home
Configure the Windows Firewall to pass DCS traffic
Let's open Windows PowerShell by clicking the Windows button, searching for "PowerShell", right-clicking and choosing Run as administrator.
We need to open the following ports in order for DCS to accept client connections:
DCS Client - Inbound: 10308 TCP/UDP
WebGUI - Inbound: 8088 TCP
TacView Real-time Telemetry - Inbound: 42674 TCP
TacView Remote Control - Inbound: 42675 TCP
Copy / paste the commands below into your PowerShell window to automatically open these firewall rules:
# DCS TCP inbound rules
New-NetFirewallRule -DisplayName "DCS TCP Inbound" -Direction Inbound -LocalPort 10308 -Protocol TCP -Action Allow
# DCS UDP inbound rules
New-NetFirewallRule -DisplayName "DCS UDP Inbound" -Direction Inbound -LocalPort 10308 -Protocol UDP -Action Allow
# DCS WebGUI TCP inbound rules
New-NetFirewallRule -DisplayName "DCS WebGUI TCP Inbound" -Direction Inbound -LocalPort 8088 -Protocol TCP -Action Allow
# TacView Realtime Telemetry
New-NetFirewallRule -DisplayName "TacView Realtime Telemetry Inbound" -Direction Inbound -LocalPort 42674 -Protocol TCP -Action Allow
# TacView Remote Control
New-NetFirewallRule -DisplayName "TacView Remote Control Inbound" -Direction Inbound -LocalPort 42675 -Protocol TCP -Action Allow
# DCS SRS TCP1
New-NetFirewallRule -DisplayName "DCS SRS TCP1" -Direction Inbound -LocalPort 5002 -Protocol TCP -Action Allow
# DCS SRS TCP2
New-NetFirewallRule -DisplayName "DCS SRS TCP2" -Direction Inbound -LocalPort 5003 -Protocol TCP -Action Allow
Configuring network firewall to pass DCS traffic
Now we need to configure your network firewall to pass the traffic on the ports above to our new DCS server. Unfortunately this isn't something that I can script for you because every home router will be different and have a different interface, but I will show you the steps and basics principals to follow in a home network.
First open a web browser and navigate to your home router page (10.0.0.1 in my case, probably 192.168.1.1 for you). If you're not sure what your routers IP address is, you can usually find it by opening Command Prompt and typing "ipconfig". Your router's IP is usually listed under Default Gatway.
Once I navigate to 10.0.0.1 I get redirected to the ASUS login page. The default login is usually admin / admin (username / password).
From here I can navigate to Advanced Settings > WAN > Virtual Server / Port Forwarding.
From here I need to add the ports we configured on the default firewall which were:
DCS Client - Inbound: 10308 TCP/UDP
WebGUI - Inbound: 8088 TCP
TacView Real-time Telemetry - Inbound: 42674 TCP
TacView Remote Control - Inbound: 42675 TCP
SRS TCP1 - Inbound: 5002
SRS TCP2 - Inbound: 5003
Once I am done my router configuration looks like this:
At this point let's make sure that the outside world can see our ports. Double-click the DCS World OpenBeta Dedicated Server shortcut on your desktop (shown in screenshot above). Once the server is above, use a port tool to see if the ports we opened above are visible (the server must be turned on first):
One site you can use is https://www.canyouseeme.org/.
Check ports:
- 10308
- 8088
- 42674
- 42675
- 5002
- 5003
TacView Configuration
Next you need to edit your Tacview configuration. I am going to use NotePad++ to edit my config but you use whatever you prefer.
This file is generally located at the path below:
C:\Users\[Your Profile]\Saved Games\DCS.openbeta_server\Config\options.lua
Inside of this configuration file you should find a section called "TacView" directly under Plugins as shown in the screenshot below:
Some times the Tacview settings is missing - if this happens you can add in the settings manually but more than likely you have a corrupt installation and will need to reinstall from scratch.
Here is a brief description of what I consider to be the most important settings:
tacviewHostTelemetryPassword
The passwords clients will use to connect to our TacView service
tacviewPlaybackDelay
An anti-cheat measure that prevents users from viewing where other players or units are in the map
tacviewRemoteControlPassword
The password for clients who want to access the remote control in your server
Once you've made the configuration changes you would like, save and close the config.
Configuring DCS server settings (tbd)
...
Configure Server Voice Chat Simple Radio Standalone (tbd)
...
Detailed configuration settings: https://github.com/ciribob/DCS-SimpleRadioStandalone/wiki
Updating your DCS server
...