How to Host a Counter-Strike: Source Server (SRCDS Guide 2026)
Host a CS:S dedicated server: SteamCMD app 232330, the srcds start line, server.cfg, a Steam token for app 240, ports 27015 and your map cycle.
Updated Oct 7, 2026 · 6 min read
On this page
To host a Counter-Strike: Source server, install the dedicated server with SteamCMD (app ID 232330), start it with srcds_run -game cstrike, put your settings in cstrike/cfg/server.cfg, and give it a Steam Game Server Login Token made for app ID 240 so it shows in the browser. Open port 27015 on UDP and TCP and players connect with connect your.ip:27015 in the console. The server is light: 2 GB of RAM runs a private 5v5, and a 24 slot server with plugins fits in 4 GB.
CS:S is old, but it is far from dead. Valve shipped a large update in February 2025 that brought 64-bit builds and Steam Networking support, and the community still runs surf, bhop, jailbreak, zombie escape and plain dust2 servers every night. Here is the full setup from an empty machine to a listed server.

What you need
- A machine that stays on: a spare PC, a Linux VPS or a rented game server. Windows and Linux both have server builds.
- About 3 GB of disk for the server files, more for custom maps.
- SteamCMD, Valve's command line installer. You do not need a Steam account that owns the game, the server installs anonymously.
- A Steam account in good standing to create the login token (it needs a phone number and must own at least one game).
- Access to your router if you host at home, for port forwarding.
Install the server with SteamCMD
Download SteamCMD from the Valve developer wiki, unpack it, then run this one line from its folder:
steamcmd +force_install_dir ./css +login anonymous +app_update 232330 validate +quit
On Linux the server still needs 32-bit libraries for some tools, so install lib32gcc-s1 (Debian and Ubuntu) before the first start. When the download finishes you have a css folder holding srcds_run (Linux) or srcds.exe (Windows) and a cstrike game folder. Run the same SteamCMD line again after every Valve patch, since clients on a newer build cannot join an outdated server.
Start it with the right command line
The start line sets the game, port, slots and first map. Settings that change often belong in server.cfg instead.
Linux:
./srcds_run -game cstrike -console -port 27015 +maxplayers 24 +map de_dust2 +sv_setsteamaccount YOURTOKEN
Windows:
srcds.exe -console -game cstrike -port 27015 +maxplayers 24 +map de_dust2 +sv_setsteamaccount YOURTOKEN
| Option | What it does |
|---|---|
-game cstrike |
Loads Counter-Strike: Source. Without it the server will not start the right game. |
-port 27015 |
The game port. Change it when you run two servers on one IP. |
+maxplayers 24 |
Player slots. The engine allows up to 64, most maps play best at 16 to 32. |
+map de_dust2 |
The map loaded at start. |
+sv_setsteamaccount |
Your Steam login token, which lets the server list publicly. |
-tickrate 66 |
Common on surf and bhop servers. 66 is the default for CS:S. |
Arguments with a - are engine launch options, arguments with a + are console commands run at start.
Get the Steam login token
Valve lists community servers through Game Server Login Tokens. Go to Steam's game server account page, enter 240 as the App ID (that is the CS:S game, not the 232330 server tool), add a memo like "dust2 server", and create it. Copy the 32 character token into +sv_setsteamaccount on your start line.
One token per server. If two servers share a token, one of them gets kicked off the master list. If you never set a token the server still runs and friends can connect by IP, but it will not show reliably in the Internet tab. For the full set of listing problems see why a CS:S server does not show in the server list.
Write server.cfg
Create cstrike/cfg/server.cfg. The server runs it on every map change, so anything here sticks. A sensible starting file:
hostname "My CS:S Server | dust2 24/7"
rcon_password "pick-a-long-password"
sv_password ""
sv_lan 0
sv_region 255
sv_contact "you@example.com"
mp_timelimit 30
mp_maxrounds 0
mp_roundtime 2.5
mp_freezetime 5
mp_friendlyfire 0
mp_autoteambalance 1
mp_limitteams 1
sv_alltalk 0
sv_allowdownload 1
sv_allowupload 0
sv_downloadurl ""
exec banned_user.cfg
exec banned_ip.cfg
writeid
writeip
The ones that cause the most trouble:
sv_lan 0must stay 0 for an internet server. With 1, only your local network can join.sv_passwordmakes the server private. Players then typepassword yourpassin the console beforeconnect.rcon_passwordlets you run admin commands from your own game console withrcon_passwordandrcon.sv_region 255means world. Set it to your region code if you want region filters to find you.sv_downloadurlpoints to a web server holding your custom maps. Without it, new players download maps from the game server at a crawl.
Set up the map cycle
The rotation lives in cstrike/cfg/mapcycle.txt, one map name per line without .bsp. If the file is missing the server falls back to mapcycle_default.txt. Custom maps go in cstrike/maps. Change map live with changelevel de_inferno in the server console or through rcon.
For surf and bhop you also raise sv_airaccelerate (surf servers often use 150 or more) and usually add a timer plugin. Those need Metamod:Source and SourceMod first, covered in how to install SourceMod on a CS:S server.
Open the ports
| Port | Protocol | Used for |
|---|---|---|
| 27015 | UDP | Game traffic and server queries |
| 27015 | TCP | Remote console (rcon) |
| 27020 | UDP | SourceTV, only if you turn it on |
| 27005 | UDP | Client port, outbound, rarely needs forwarding |
At home, forward 27015 UDP and TCP to the PC running the server and allow srcds through the firewall. If your provider uses CGNAT, port forwarding will not work at all and you need a server with a public IP.
Join and test
Enable the developer console in Options, Keyboard, Advanced, press the tilde key and type:
connect 203.0.113.10:27015
Then check the server appears under Find Servers, Internet after a few minutes. If it only shows under LAN or not at all, check sv_lan and the token first.

Running it without your own PC
The part that wears people down is not the install, it is keeping it running: the PC has to stay on, the server needs updating after each patch, and home connections struggle once 20 people are shooting at once. On a GamezServers Counter-Strike: Source server we create the Steam token for you at setup, so it lists from the first start, and the starting map and auto update are settings in the control panel. server.cfg, mapcycle.txt and your maps are in the file manager or over SFTP, there is a live console, one click backups, and no port forwarding. If your clan wants to share the cost, up to 10 friends can split the bill.
FAQ
What is the SteamCMD app ID for a CS:S server?
232330 is the dedicated server you install. The game itself is 240, and that is the App ID you use when you create the Steam login token.
How much RAM does a Counter-Strike: Source server need?
Very little. A vanilla server for a 5v5 runs on 2 GB, 24 to 32 slots with SourceMod plugins fit 4 GB, and only big surf or zombie map pools need more.
Can I run a CS:S server and play on the same PC?
Yes, for a small game. The server and client share the CPU, so a full 24 player server on the same machine you play on will hurt both. A separate machine is better for anything public.
How do I make my CS:S server private?
Set sv_password in server.cfg and change the map or restart. Players type password followed by the password in the console, then connect.
Skip the setup. Your own Counter-Strike: Source server.
Then $4.99/mo. Just trying it? $1.25 for 3 days