NEW 📢 Limited launch offer: up to 70% off your first month on every game!See plans

How to host a Counter-Strike 2 server (2026)

Counter Strike 2Updated Nov 5, 20269 min read

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

  1. Open Steam's game server accounts page at https://steamcommunity.com/dev/managegameservers, sign in, and create an account for App ID 730.
  2. 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.

Install the server

  1. Install the libraries SteamCMD needs.
    sudo dpkg --add-architecture i386
    sudo apt update
    sudo apt install curl tar lib32gcc-s1 -y
  2. Create a user for the server and switch to it.
    sudo useradd -m -s /bin/bash -U cs2
    sudo su - cs2
  3. Install SteamCMD and let it update itself once.
    mkdir -p ~/steamcmd ~/server
    cd ~/steamcmd
    curl -sSL https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz | tar -xzf -
    ./steamcmd.sh +quit
  4. Download the server.
    ~/steamcmd/steamcmd.sh +force_install_dir /home/cs2/server +login anonymous +app_update 730 validate +quit
    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.
  5. 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'.
    mkdir -p ~/.steam/sdk64
    cp ~/steamcmd/linux64/steamclient.so ~/.steam/sdk64/

Open the port and start it

  1. 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.
  2. 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:
    cd ~/server/game
    ./cs2.sh -dedicated -ip 0.0.0.0 -port 27015 \
      -maxplayers 10 +game_type 0 +game_mode 1 +map de_dust2 \
      +hostname "My CS2 server" +sv_setsteamaccount YOURTOKEN
    -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.
  3. 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.
  4. 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.
  5. 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.

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. Invite your players. Give them the Server Address shown on Overview. See How to join your Counter Strike 2 server.

What the panel does for you:

  • 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.

Ready to skip the setup? See the Counter-Strike 2 server plans. Already have a server that will not start or that nobody can join? Read Counter Strike 2 server problems and fixes.

Already hosting it somewhere else? Move your server to us

OUR LATEST BLOGS