Short answer. You can host a Counter-Strike 2 server yourself for free: install Steam app 730 with SteamCMD using an anonymous login, create a Game Server Login Token (GSLT) for app 730, and start cs2 with -dedicated and UDP port 27015 open. Or rent a Counter-Strike 2 server and skip the networking.
Players join with the game console command connect followed by your server's address and port. Without a GSLT the server only accepts players on the same local network.
Checked on 5 November 2026 against the Counter-Strike 2 update Valve announced on Steam that day.
This guide uses Valve's Developer Community page for CS2 dedicated servers, Steam's game server account page, and the setup our own Counter-Strike 2 servers run. To skip to the rental route, go to Option 2.
What you need
The server software: Counter-Strike 2 itself. Since the dedicated server and the game client were merged, both use Steam app 730. It is free and downloads with an anonymous Steam login.
A machine that stays on: a spare PC, a home server or a cloud virtual machine. This guide uses 64-bit Linux, which is what we run. Valve's page also covers Windows, but we have not tested a Windows server.
Hardware and operating system: Valve's page lists minimum hardware for the dedicated server, and on Linux it needs glibc 2.31 or newer, which means Ubuntu 20.04, Debian 11 or a later release. The full download is about 60 GB, by Valve's estimate. The system requirements on the Steam store page are for playing the game, not for hosting it.
A Game Server Login Token (GSLT): a free token tied to your Steam account, created for app 730. Valve's page for it says your account cannot be community banned, locked or limited, needs a qualifying registered phone, and must own the game.
Network: UDP 27015 for the game, reachable from the internet. The game port also takes RCON over TCP, if you use it.
The game: every player needs Counter-Strike 2 on Steam. It is free to play.
Option 1: host it yourself
These steps are for Debian 11 or Ubuntu 20.04 and later. The download step follows our own install script; the start command follows Valve's page.
Create the token
Open Steam's game server accounts page at https://steamcommunity.com/dev/managegameservers, sign in, and create an account for App ID 730.
Copy the token it gives you. Valve says you are accountable for your tokens: do not share them. If you reset your Steam password through Steam Support, all your tokens are regenerated, and a token that goes unused long enough expires and can be regenerated.
SteamCMD downloads can fail without saying so. On our installs, about two in seven clean downloads ended with "success" and an empty folder, and the server then died on first start. Check that steamapps/appmanifest_730.acf exists in the server folder, and run the command again if it does not. Our install script does exactly this check and tries up to three times.
Copy the Steam client library to ~/.steam/sdk64 in the server user's home folder, where the server looks for it. Without it the server stops with Failed to load module '/home/cs2/.steam/sdk64/steamclient.so'.
Open the game port. Allow UDP 27015 on the machine's firewall (for example sudo ufw allow 27015/udp) and forward it on your router. If you want RCON from outside, allow TCP on the same number as well, and set a long password.
Start the server with the cs2.sh script in the game folder. Valve's page says to use the script on Linux rather than running the cs2 binary directly, because the script does some setup first. Replace YOURTOKEN with your GSLT:
-dedicated is what makes Counter-Strike 2 start as a server instead of opening the game. +sv_setsteamaccount is where the token goes. On our servers +game_type 0 +game_mode 1 is Competitive; the other pairs are in the table below. Add -insecure to turn VAC anti-cheat off. Run it under a service manager such as systemd so it restarts after a crash.
Know when it is ready. The server is up when the log prints Connection to Steam servers successful. That is the line our panel waits for.
Join it. In Counter-Strike 2, open the developer console and type connect followed by your public IP address and port, for example connect 203.0.113.10:27015. For a password-protected server, add +sv_password yourpassword to the launch line and have players type password yourpassword in the console before they connect.
Update by stopping the server and running the download command again. Valve's page says to repeat this every time the game is updated, and Counter-Strike 2 updates often: Valve posted updates on 22 October, 28 October and 5 November 2026.
Game modes: the pairs we use
Competitive:+game_type 0 +game_mode 1 (Valve's default when you give none)
Casual:+game_type 0 +game_mode 0
Wingman:+game_type 0 +game_mode 2
Arms Race:+game_type 1 +game_mode 0
Deathmatch:+game_type 1 +game_mode 2
Custom:+game_type 3 +game_mode 0
The token trap
A server started without a GSLT still runs, but it logs in to Steam anonymously and restricts joins to the local network. It is not listed either. If your friends cannot reach the server from outside your house, check the token before you check the firewall.
Option 2: host it on PlayNHost
Renting removes the install, the port forwarding and the update routine. You still bring your own token, choose a mode and a map, and invite your players.
Pick a plan. Open the Counter-Strike 2 server hosting page and compare the plans: VERTIGO (10 players), ANIBUS (18) and MIRAGE (30) at the time of writing. Press Create Server (Customize Plan on MIRAGE) and finish the order. Prices change, so check them on that page.
Wait for the install. The server appears in the panel. Until you add a token, its console prints a box telling you the server is limited to the local network, with a link to the page where you paste it.
Create and paste your token. Create a token for App ID 730 as in the self-host steps. In the panel open the Settings tab, then Game Settings, paste it into Steam Game Server Login Token, and restart.
Name it and choose the rules. On the same page set the Server name, an optional Join password, the Starting map, and pick a Game mode: Competitive 5v5, Casual, Wingman 2v2, Deathmatch, Arms Race or Custom (plugin-driven). Restart to apply. See How to set up your Counter Strike 2 server: key settings.
Your game port is assigned and open from the start, and the launch line is built from your settings, so there is nothing to forward.
With Auto-update server on (the default, under Show advanced in Game Settings), SteamCMD checks for a new build each time the server starts.
With VAC anti-cheat on (the default), the server starts secure. Turning it off adds the -insecure flag for you.
Remote admin stays off until you set an RCON password: the -usercon flag is only added when you do.
Plugin support (Metamod + CounterStrikeSharp) is a switch. The trap with plugins is that Metamod has to be listed in game/csgo/gameinfo.gi, and the Metamod:Source install guide says to redo that change every time an update modifies the file. Until you do, a self-hosted server keeps running while quietly loading no plugins. Our install re-patches that file at every boot, after SteamCMD has finished, and refreshes the loader files when the game build changes. See How to add mods to your Counter Strike 2 server.
Self-hosting or renting: an honest comparison
Cost: the server software is free. Self-hosting costs power, hardware and bandwidth, or a cloud machine. Renting is a recurring fee set by the plan and the billing period you choose.
Uptime: a home server is only up while your PC, power and internet are. A rented server runs on the host's hardware.
Exposure: at home, players connect to your public IP address and you look after the firewall and router. A rented server keeps your home IP out of it.
Setup: self-hosting needs the command line, port forwarding, SteamCMD retries and a launch line. Renting needs a token, a name, a mode and a map. You need the token either way.
Control: self-hosting gives you every file. On our servers you change settings in the panel and still have the Files tab for your own configs and plugins.
We use cookies to keep the site working, to understand how it is used, and to measure our marketing. You can accept all, accept essential cookies only, or choose per category.We use cookies to keep the site working, to understand how it is used, and to measure our marketing. They are on by default here. You can switch off anything you do not want.Read our privacy policy