Killing Floor

Killing Floor

Not enough ratings
Comprehensive Guide: Creating a 24/7 KF Server using Microsoft Azure
By Vel
This is part 2 of my Guides series of creating a KF Server + All other needed things to make a good playable one. In this guide we'll be using Microsoft Azure as a platform to host it. I wanted to write the guide for a free account, however this can work for BOTH, free and paid.

Free: Trial or Students (University Email)
Paid: Normal via their website

Please comment/PM me if you need any help.
   
Award
Favorite
Favorited
Unfavorite
General Information
Yo, Floor Killers.

Back with the guide series, i'll be teaching you on how to make a 24/7 hosted server with Microsoft Azure services.

If you are a student, please go and create an account with 100 credits using your University Email Address; if not, you can try the free (not recommended) or you can pay for the MINIMAL needed specs. Browse through their collection of bundles and pick whatever you want.

- Payments: Pay As you go --> You can pay per usage, instead of total monthly or so.
- Free: 100 credits to use anytime for 12 months. I used this and it gave me almost 1 month+ of 24/7 hosting


You can check my other guide to learn about making a redirect URL for hosting Server Mods ( Faster download on Joining )

Good luck following the steps & don't forget to reach me for help.

_____________

Links:

- Free Account[azure.microsoft.com] (Or Google Azure for Students)
- Pricing Calculator[azure.microsoft.com] (Estimates your payments according to your needs)
- General Pricings[azure.microsoft.com]
Needed Resources
This section has every single needed resouces from Azure to properly run the Server.

My Own Server Resources Here:



or as a list, here:

1- Virtual Machine ( I'm using windows in this Guide )
2- Public IP Adress ( Quantity = 2 )
3- Load Balancer
4- NSG (Network Security Group)
5- Availability Set
6- Disk ( Storage )
7- Network Interface
8- Virtual Network

I won't explain what each and every one does, but if you need information about them - Azure has everything you need, also, you can just google it.

Now, before setting up these with proper configurations - i will assume you already signup and can see your Azure DashBoard/Portal without the stuff Corssed in the picture

Starting with the setup
Now we're ready to start installing resources and configuring them.

Focus, read and follow the steps exactly as given ( Most of the steps taken from Azure Guides )

Load Balancer

1- Select Create a resource > Networking > Load Balancer.
2- Enter these values WITH EXACT NAMES
  • myLoadBalancer for the name of the load balancer
  • Public for the type of the load balancer
  • myPublicIP for the public IP that you must create, with SKU set as Basic and Assignment set as Dynamic
  • myResourceGroupLB for the name of the new resource group

Then select Create.


_____

Back-end servers (Virtual network)

1- Select New > Networking > Virtual network.
2- Enter these values WITH EXACT NAMES
  • myVnet for the name of the virtual network
  • myResourceGroupLB for the name of the existing resource group
  • myBackendSubnet for the subnet name

Select Create.



_____

Virtual machines (Can be Windows or Linux, i chose windows for better Remote Controle)

1- select New > Compute > Windows Server 2016
2- Enter the following values WITH EXACT NAMES
  • myVM1 for the name of the virtual machine.
  • azureuser for the administrator username.
  • myResourceGroupLB for the resource group. (Under Resource group, select Use existing, and then select myResourceGroupLB.)
3- Select DS1_V2 for the size of VM
4- Enter the following VM Configs WITH EXACT NAMES
  • myAvailabilitySet for the name of the new availability set that you create.
  • myVNet for the name of the virtual network. (Ensure that it's selected.)
  • myBackendSubnet for the name of the subnet. (Ensure that it's selected.)
  • myVM1-ip for the public IP address.
  • myNetworkSecurityGroup for the name of the new network security group (NSG, a type of firewall) that you must create.
5- Boot Diagnostics = Disabled

Select Create.

_____

NSG rules (Network Security Group Rules, need to open KF Ports Here )

1- From the resource list, select myNetworkSecurityGroup from myResourceGroupLB
2- From settings, select Inbound security rules --> Add
3- Enter the following values EXACTLY
  • Service Tag for Source
  • Internet for Source service tag
  • 80 for Destination port ranges
  • TCP for Protocol
  • Allow for Action
  • 100 for Priority
  • myHTTPRule for Name
  • Allow HTTP for Description

This will allow HTTP on your Machine.



For remote control ( will explain later on), repeat the same but with these values:
  • Service Tag for Source
  • Internet for Source service tag
  • 3389 for Destination port ranges
  • TCP for Protocol
  • Allow for Action
  • 200 for Priority
  • myRDPRule for Name
  • Allow RDP for Description

Now comes the boring part. You HAVE TO repeat these steps for every single port needed by KF. These are the ports needed:
  • 7707 UDP/IP (Game Port)
  • 7708 UDP/IP (Query Port)
  • 7717 UDP/IP (GameSpy Query Port)
  • 28852 TCP/IP and UDP (Allows your Server to Connect to the Master Server Browser)
  • 8075 TCP/IP (Port set via ListenPort that your WebAdmin will run on)
  • 20560 UDP/IP (Steam Port)
Another setting you might have to deal with when hosting a listen server in your killingfloor.ini is:

ServerBehindNAT=False Set it to True

Final NSG should look like this


_____

Installing Internet Information Services ( Web UI for the server + better control )

1- Select myVM1 in the myResourceGroupLB resource group.
2- Press on Connect and copy the IP Address and port (Public)
3- Sign in to the VM using Remote Desktop Connection (See Below) with username azureuser and password Azure123456! and your Copied IP Address (Or your own password if you set one).
4- On the server desktop, browse to Windows Administrative Tools > Server Manager.
5- In Server Manager, select Manage, and then select Add Roles and features.



6- In the Add Roles and Features Wizard, use the following values EXACTYL:
  • On the Select installation type page, select Role-based or feature-based installation.
  • On the Select destination server page, select myVM1.
  • On the Select server role page, select Web Server (IIS).
  • Follow the instructions to complete the rest of the wizard.
Related to step 3 - Remote Desktop Connection:


______

Back-end address pool

1- Select myLoadBalancer
2- Settings > Backend Pools > Add
3- Enter the following values EXACTLY:
  • For Name, enter myBackEndPool.
  • For Associated to, from the drop-down menu, select Availability set.
  • For Availability set, select myAvailabilitySet.
  • Select Add a target network IP configuration to myVM1 that you created to the back-end pool.
OK.

______

Health probe

1- Select myLoadBalancer
2- Settings > Health Probes > Add
3- Enter the following values EXACTLY:
  • myHealthProbe for the name of the health probe
  • HTTP for the protocol type
  • 80 for the port number
  • 15 for Interval, the number of seconds between probe attempts
  • 2 for Unhealthy threshold, the number of consecutive probe failures that must occur before a VM is considered unhealthy
______

Load balancer rule

1- Select myLoadBalancer
2- Settings > Load Balancing Rules > Add
3- Enter the following values EXACTLY:
  • myHTTPRule for the name of the load balancer rule
  • TCP for the protocol type
  • 80 for the port number
  • 80 for the back-end port
  • myBackendPool for the name of the back-end pool
  • myHealthProbe for the name of the health probe

Unfortunatly, you HAVE TO do the same for all KF ports too. Screenshot of result below



That's it from Azure Dashboard side! You have successfully set up a 24/7 Running machine that will be used to run the dedicated KF Server. To test it - simply connect via RDP to the machine, it should open as if it's a new tab of windows - or you can test as:

  • Find the public IP address for the load balancer on the Overview screen. Select All resources, and then select myPublicIP.
  • Copy the public IP address, and then paste it into the address bar of your browser. The default page of IIS web server is displayed in the browser.
Final Touch-up
Given that you have successfully followed previous steps, you should now have a working Machine capable of running normally.

Question is, What Now?!

1- Open KF Ports once again, but INSIDE THE VM, after you have connected to it via RDP.
2- Download steamCMD, install KF and configure your own server to your likings.


I will NOT include steps or explanation for "2." because this is a totally different thing, however feel free to ask me about it (it's the easiest part)

_________

How do open ports in firewall?

1- Connect to the VM via RDP, as you do.
2- Search for FireWall from start
3- Press Add Rules
4- You should easily know what to do from here.

You simply add each and every KF port as previously mentioned, it will look like something like this:



You click on Inboud Rules > New Rule > Port > etc....
Feedback
You've reached the end of my complex guide. I hope you got everything working, up and running. If you are facing any problems please reach me and i may help you :)

Enjoy the GGs and always share your DOSH $$$

My Server (not 24/7), feel free to join me whenever you see it up there!



_____


Special thanks to Azure Services + Guides

Special Thanks to FPs and SCs

Special Thanks to some chinese lady who helped me with some quesionds online

Special thanks to B-Boss, Deck, Rasmus and some others for the motivation to create guides.
2 Comments
Vel  [author] 19 May, 2020 @ 10:41am 
Update: You can avoid all of this configuration by just using the Dockerized version - Check my guides for more information.
Vel  [author] 8 Jan, 2019 @ 10:22am 
@wukash Yep, but it's a bit of a hassle :) For me i'm using an old machine i have to run it ^^ works exactly the same.