How to Set Up a CS2 Dedicated Server in 2026
Counter-Strike 2 replaced CS:GO in 2023, bringing updated server requirements and configuration. This guide covers everything you need to run your own CS2 server.
Why Host Your Own CS2 Server?
- >Custom game modes not available in matchmaking
- >Private practice for team scrims
- >Community events and tournaments
- >Custom maps and workshop content
- >No tick rate limitations (128 tick competitive)
- >Full control over rules and settings
Prerequisites
System Requirements
| Requirement | Minimum | Recommended |
|---|---|---|
| CPU | 4 cores | 6+ cores |
| RAM | 8 GB | 16 GB |
| Storage | 50 GB | 100 GB SSD |
| Bandwidth | 10 Mbps | 100 Mbps |
| OS | Windows 10 / Linux | Windows Server / Ubuntu |
Network Requirements
- >Static IP address (or dynamic DNS)
- >Port forwarding ability
- >Low latency connection
- >Port 27015-27030 (TCP/UDP)
Step 1: Install SteamCMD
SteamCMD is required to download CS2 server files.
Windows Installation
C:\steamcmdsteamcmd.exeLinux Installation
Ubuntu/Debian:
sudo apt update
sudo apt install steamcmd
Manual Linux Install:
mkdir ~/steamcmd && cd ~/steamcmd
curl -sqL "https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz" | tar zxvf -
./steamcmd.sh
---
Step 2: Download CS2 Server
Windows Download
Create update_cs2.txt in your SteamCMD folder:
@ShutdownOnFailedCommand 1
@NoPromptForPassword 1
force_install_dir C:\cs2_server
login anonymous
app_update 730 validate
quit
Run:
steamcmd.exe +runscript update_cs2.txt
Linux Download
Create update_cs2.txt:
@ShutdownOnFailedCommand 1
@NoPromptForPassword 1
force_install_dir /home/user/cs2_server
login anonymous
app_update 730 validate
quit
Run:
./steamcmd.sh +runscript update_cs2.txt
Download size: ~35 GB, expect 30-60 minutes.
---
Step 3: Initial Server Configuration
Create Server Config
Navigate to cs2_server/game/csgo/cfg/ and create server.cfg:
// Server Information
hostname "My CS2 Server"
sv_password "" // Leave empty for public server
rcon_password "your_rcon_password_here"
// Server Settings
sv_cheats 0
sv_lan 0
sv_region 0 // 0=US East, 1=US West, 2=Europe, 3=Asia, etc.
// Game Settings
mp_maxrounds 24
mp_timelimit 30
mp_roundtime 2
mp_roundtime_defuse 2
mp_freezetime 10
mp_buytime 45
mp_startmoney 800
// Spectator/TV Settings
tv_enable 1
tv_port 27020
tv_delay 105
tv_maxclients 10
tv_name "My Server GOTV"
// Logging
log on
sv_logbans 1
sv_logecho 1
sv_logfile 1
Gamemode Configuration
CS2 supports multiple game modes. Create gamemode_*.cfg files:
Competitive (gamemode_competitive.cfg):
exec gamemode_competitive_server
mp_friendlyfire 1
mp_limitteams 1
mp_autoteambalance 1
mp_falldamage 1
Casual (gamemode_casual.cfg):
exec gamemode_casual_server
mp_friendlyfire 0
mp_limitteams 0
mp_autoteambalance 0
mp_falldamage 0
---
Step 4: Start the Server
Windows Start Script
Create start_server.bat:
@echo off
cd /d C:\cs2_server
cs2.exe -dedicated -ip 0.0.0.0 -port 27015 +map de_dust2 +game_type 0 +game_mode 1 -maxplayers 20 -tickrate 128 +exec server.cfg
Linux Start Script
Create start_server.sh:
#!/bin/bash
cd /home/user/cs2_server
./cs2 -dedicated -ip 0.0.0.0 -port 27015 +map de_dust2 +game_type 0 +game_mode 1 -maxplayers 20 -tickrate 128 +exec server.cfg
Make executable:
chmod +x start_server.sh
Start Parameters Explained
| Parameter | Description |
|---|---|
-dedicated | Run as dedicated server |
-ip 0.0.0.0 | Bind to all interfaces |
-port 27015 | Server port |
+map de_dust2 | Starting map |
+game_type 0 | 0=Classic, 1=Arms Race, 2=Deathmatch |
+game_mode 1 | 0=Casual, 1=Competitive, 2=Wingman |
-tickrate 128 | Server tick rate |
-maxplayers 20 | Maximum player slots |
Step 5: Game Mode Types
Classic Competitive
+game_type 0 +game_mode 1
- >5v5 format
- >Friendly fire enabled
- >Economy system
- >Competitive ruleset
Classic Casual
+game_type 0 +game_mode 0
- >Larger teams
- >No friendly fire
- >Free armor
- >More relaxed rules
Wingman
+game_type 0 +game_mode 2
- >2v2 format
- >Smaller maps
- >Fast rounds
Deathmatch
+game_type 1 +game_mode 2
- >Respawn enabled
- >Weapon selection
- >Score-based
Arms Race
+game_type 1 +game_mode 0
- >Gun game mode
- >Weapon progression
- >First to knife wins
Step 6: Map Workshop Integration
Adding Workshop Maps
host_workshop_maps.txt in csgo/ folder:workshop_map_id_1
workshop_map_id_2
workshop_map_id_3
Host Workshop Map
host_workshop_map WORKSHOP_ID
Create Map Collection
+host_workshop_collection COLLECTION_ID +workshop_start_map WORKSHOP_ID
---
Step 7: RCON and Administration
Using RCON
Connect via console or tools:
In-game console:
rcon_password your_password
rcon status
rcon changelevel de_inferno
rcon kick player_name
rcon banid 0 STEAM_ID
Admin Plugins
For advanced administration, consider:
- >SourceMod - Primary admin framework
- >CS2 Server Tools - CS2-specific utilities
SourceMod Installation
cs2_server/game/csgo/addons/addons/sourcemod/configs/admins_simple.ini:"STEAM_0:1:12345678" "99:z" // Full admin
---
Step 8: Server Optimization
Network Settings
Add to server.cfg:
// Network Optimization
sv_maxrate 128000
sv_minrate 128000
sv_maxcmdrate 128
sv_mincmdrate 128
sv_maxupdaterate 128
sv_minupdaterate 128
sv_client_cmdrate_difference 0
Tick Rate
Higher tick rates require more CPU:
| Tick Rate | CPU Usage | Recommended For |
|---|---|---|
| 64 | Low | Casual, Deathmatch |
| 102.4 | Medium | Community servers |
| 128 | High | Competitive, Scrims |
CPU Core Assignment (Linux)
taskset -c 0,1,2,3 ./cs2 -dedicated ...
---
Step 9: Firewall Configuration
Windows Firewall
# Allow CS2 server
netsh advfirewall firewall add rule name="CS2 Server" dir=in action=allow protocol=tcp localport=27015-27030
netsh advfirewall firewall add rule name="CS2 Server UDP" dir=in action=allow protocol=udp localport=27015-27030
Linux iptables
# Allow CS2 ports
iptables -A INPUT -p tcp --dport 27015:27030 -j ACCEPT
iptables -A INPUT -p udp --dport 27015:27030 -j ACCEPT
UFW (Ubuntu)
sudo ufw allow 27015:27030/tcp
sudo ufw allow 27015:27030/udp
---
Step 10: Port Forwarding
Required Ports
| Port | Protocol | Purpose |
|---|---|---|
| 27015 | TCP/UDP | Game server |
| 27020 | UDP | Source TV |
| 27005 | UDP | Client |
Router Configuration
---
Troubleshooting
Server Not Appearing in Browser
Causes:
- >Port forwarding incorrect
- >Firewall blocking
- >Incorrect IP binding
-ip 0.0.0.0 to bind all interfacesHigh Latency / Lag
Causes:
- >Insufficient CPU
- >Network congestion
- >High tick rate for hardware
Players Can't Connect
Causes:
- >Wrong password
- >Steam maintenance
- >Client version mismatch
sv_password settingstatusServer Crashes
Causes:
- >Corrupted files
- >Plugin conflicts
- >Memory issues
app_update 730 validatelogs/---
Running as a Service (Linux)
Systemd Service
Create /etc/systemd/system/cs2.service:
[Unit]
Description=CS2 Dedicated Server
After=network.target
[Service]
Type=simple
User=cs2
WorkingDirectory=/home/cs2/cs2_server
ExecStart=/home/cs2/cs2_server/start_server.sh
Restart=always
RestartSec=30
[Install]
WantedBy=multi-user.target
Enable:
sudo systemctl enable cs2
sudo systemctl start cs2
sudo systemctl status cs2
---
Updating the Server
Automatic Updates (Windows)
Create update_cs2.bat:
@echo off
C:\steamcmd\steamcmd.exe +runscript C:\steamcmd\update_cs2.txt
Schedule with Windows Task Scheduler.
Automatic Updates (Linux)
Create cron job:
crontab -e
Add:
0 4 * * * /home/user/steamcmd/steamcmd.sh +runscript /home/user/update_cs2.txt
---
Conclusion
Your CS2 server is now ready for action. Remember to:
- >Keep the server updated
- >Monitor performance
- >Regular backups of configs
- >Set up admin tools for management
Next steps:
- >Install SourceMod for admin features
- >Add custom maps via Workshop
- >Configure GOTV for spectating
- >Set up Discord integration