How to Make a CS2 Server (2026 Guide)
Set up a Counter-Strike 2 dedicated server with SteamCMD. GSLT token, launch options, game modes, server.cfg, ports, plugins and how to connect.
Updated Sep 30, 2026 · 6 min read
On this page
Your own Counter-Strike 2 server lets you set the rules: private scrims, practice with infinite grenades, retakes, deathmatch or Workshop maps with friends. The server is the full game running in dedicated mode, it is free, and it runs on Windows and Linux. This guide walks through the full setup, including the Game Server Login Token that public servers need. At the end there is a quicker option.
Short on time? A hosted CS2 server is live in about 60 seconds with its own address, no 60 GB download and no port forwarding. How to host a CS2 server walks through it step by step.
What you need
- A PC or Linux server that stays on while you play.
- Around 4 GB of RAM for a 5v5, and 6 to 8 GB for community servers with plugins or 32 players.
- About 60 GB of free disk space. The server downloads the whole game.
- A CPU with high clock speed. Each tick is simulated on a single thread, so clock speed matters more than core count.
- A stable connection with low latency, and access to your router for port forwarding.
- A Steam account in good standing to create a server token.
For more on sizing, read how much RAM a game server needs.
Step 1: Install SteamCMD
- Windows: download SteamCMD from Valve, extract it to a folder such as
C:\steamcmdand runsteamcmd.exeonce. - Linux (Debian or Ubuntu): enable 32 bit packages and install SteamCMD:
sudo dpkg --add-architecture i386
sudo apt update
sudo apt install steamcmd
On Ubuntu you may need to enable the multiverse repository first.
Step 2: Download CS2
CS2 has no separate server app. The dedicated server is the game itself, app ID 730, and it downloads anonymously:
steamcmd +force_install_dir ~/cs2-server +login anonymous +app_update 730 validate +quit
On Windows use a path like C:\cs2-server. Expect a download of around 60 GB. Run the same command whenever CS2 updates, because clients cannot join an outdated server.
Linux only: CS2 looks for the Steam client library in ~/.steam/sdk64. Link it once or the server fails to start:
mkdir -p ~/.steam/sdk64
ln -s ~/steamcmd/linux64/steamclient.so ~/.steam/sdk64/steamclient.so
Adjust the first path to wherever SteamCMD is installed on your system.
Step 3: Get a Game Server Login Token
Without a Game Server Login Token (GSLT), a CS2 server only works on your local network. To make one:
- Go to steamcommunity.com/dev/managegameservers and sign in.
- Enter app ID
730and a memo such as "home server". - Copy the token it creates.
Each server running at the same time needs its own token. Keep it private, because anyone with it can run a server under your account. If the console later shows "Cert request for invalid failed with reason code 5005", see CS2 server GSLT token errors.
Step 4: Launch the server
On Linux, start the server from the install folder:
./game/bin/linuxsteamrt64/cs2 -dedicated -port 27015 -maxplayers 12 +map de_mirage +game_type 0 +game_mode 1 +sv_setsteamaccount YOURTOKEN
On Windows, the executable is game\bin\win64\cs2.exe with the same options. The token goes in the launch line with +sv_setsteamaccount, not in a config file you load later.
The game type and mode pick what you play:
| Mode | game_type | game_mode |
|---|---|---|
| Casual | 0 | 0 |
| Competitive | 0 | 1 |
| Wingman | 0 | 2 |
| Deathmatch | 1 | 2 |
Step 5: Configure server.cfg
Create game/csgo/cfg/server.cfg. It runs every time a map loads. A simple starting point:
hostname "My CS2 Server"
rcon_password "change-this"
sv_password ""
mp_autoteambalance 1
mp_limitteams 1
hostname: the name shown in the server browser.rcon_password: the password for remote admin. Always change it.sv_password: set a value to make the server private, leave it empty for a public server.
For match settings, CS2 also runs mode specific files such as gamemode_competitive.cfg. Put your own overrides in gamemode_competitive_server.cfg in the same folder so updates do not overwrite them.
Step 6: Open the ports
Forward these ports on your router to the server's local IP address:
| Port | Protocol | Used for |
|---|---|---|
| 27015 | UDP | Game traffic, required |
| 27015 | TCP | RCON, only if you manage the server remotely |
| 27020 | UDP | SourceTV, only if you enable it |
Allow cs2 through your firewall too. Running a second server? Give it its own port, for example 27017, and its own token. Our port forwarding guide covers the router side. Keep in mind that with a home server, your upload speed sets everyone's ping, which is the main reason competitive groups move their server to a data center.
Step 7: How players connect
- In CS2, open Settings, then Game, and set Enable Developer Console to Yes.
- Press ~ to open the console.
- For a private server, type
password yourpasswordand press Enter. - Type
connect 203.0.113.10:27015, using your public IP instead of the example.
Public servers with a token also appear in the Community Server Browser, where players can add them to Favorites.
Workshop maps
Load any Steam Workshop map by its ID, either in the launch line or from the server console:
host_workshop_map WORKSHOP_ID
Replace WORKSHOP_ID with the number from the map's Workshop page. The server downloads the map, and players download it automatically when they join. Collections and map rotations are covered in how to play CS2 Workshop maps on a server.
Plugins with Metamod and CounterStrikeSharp
Community servers run plugins through Metamod:Source, with CounterStrikeSharp on top for C# plugins such as retakes, practice mode, admin menus and match systems. Metamod is loaded by adding a line to game/csgo/gameinfo.gi. CS2 updates often overwrite that file, so after every update check that the line is still there, and update CounterStrikeSharp when a new build comes out. Updates are the most frequent chore on a self hosted CS2 server, since clients cannot join until the server matches their version.
Common problems
- Server not in the browser, friends cannot connect: no token, an invalid token, or UDP 27015 not forwarded. Check the console for token errors on startup.
- Linux server exits straight away with a steamclient error: the
steamclient.solink from Step 2 is missing. - "Server is running an older version": update with SteamCMD and restart.
- Plugins stopped working after an update:
gameinfo.giwas overwritten. Add the Metamod line back and update your plugins. - Rubber banding: usually your upload bandwidth or CPU. Close other heavy programs, or host somewhere with a better connection.
The easy way
Self hosting CS2 means a 60 GB install, a token to manage, ports to forward and plugins to fix after every patch, all on your home connection, where one family member streaming can spike everyone's ping mid round.
A hosted server skips that. A 4 GB plan covers a 5v5 or practice server for 9.99 USD a month, half that for the first month if you are new, and it splits neatly across a team with Split with friends. It is live in about 60 seconds with its own address: paste your token in the panel, then use the Change map, Restart match and End warmup buttons, a live console for any command and a file manager for server.cfg and plugins. See CS2 server hosting for plans, or follow how to host a CS2 server.
Skip the setup. Your CS2 server, live in 60 seconds.
Plans first month from $4.99. No command line, cancel any time.