Use case · Game server

CS2 dedicated server on Linux bare metal

A CS2 dedicated server is the Counter-Strike 2 install itself, Steam app 730, started with -dedicated: Valve's requirements list 2 GB of RAM (labelled a minimum), 65 GB of storage and an x86-64-v2 processor, and players reach it on port 27015. Anonymous SteamCMD login downloads it; a Game Server Login Token from your Steam account lets other players join.

See the machines

Valve's hardware and OS floor

Valve's dedicated server page lists its requirements under a heading it calls recommended system requirements, while labelling the memory figure a minimum. The dedicated server and the game client are now one app, 730, and Valve puts the download at about 60 GB.

ResourceValve's figureNote
Memory2 GB minimumValve's only memory figure
Storage65 GBThe download alone is about 60 GB
CPUx86-64-v2 (POPCNT, SSE4.2)Valve lists x86-64 only
Linuxglibc 2.31Ubuntu 20.04, Debian 11 or Enterprise Linux 9 and later
WindowsWindows 10 or 11Valve names no Windows Server release

Valve publishes no per-player CPU or memory figure, so this page does not invent one. Size for the number of server processes you intend to run, and leave disk headroom for updates: each one rewrites part of a 60 GB install. Check an x86 machine with grep -o -w -E 'popcnt|sse4_2' /proc/cpuinfo | sort -u; both flags must print.

Installing app 730 with SteamCMD

SteamCMD is Valve's command-line Steam client. Its documentation installs it by hand on Ubuntu and Debian after one 32-bit library, run as an unprivileged steam user, and logs in anonymously for CS2. Valve notes that on some Linux distributions the install path must not contain capital letters.

sudo apt-get install lib32gcc-s1
sudo useradd -m -s /bin/bash steam
sudo -iu steam
# now as the steam user
mkdir ~/Steam && cd ~/Steam
curl -sqL "https://client-update.steamstatic.com/installer/steamcmd_linux.tar.gz" | tar zxvf -
./steamcmd.sh +force_install_dir /home/steam/cs2-ds +login anonymous +app_update 730 validate +quit
# Valve's fix for the steamclient.so load error
mkdir -p ~/.steam/sdk64
ln -s ~/Steam/linux64/steamclient.so ~/.steam/sdk64/

Drop validate on later runs: it re-checks every file, which matters after a failed download and wastes time otherwise. The symlink is the cure Valve's troubleshooting section gives for a server that cannot load ~/.steam/sdk64/steamclient.so; making it before the first start saves the round trip.

The Game Server Login Token

Without a GSLT, other players cannot join. Generate one at Steam's game server account management page with 730 as the app ID and pass it as +sv_setsteamaccount. Steam's conditions for the account that creates it: not community banned, locked or limited, a qualifying registered phone, and ownership of the game.

  • One Steam account may create up to 1,000 game server accounts.
  • A token whose server never logs in for a long period expires and can be regenerated.
  • Resetting the Steam account password regenerates every token the account holds.
  • The account owner is solely responsible for its tokens: if a server account is banned, the owner may be restricted from playing the game. Never hand a token to a third party.

Launch line and game modes

On Linux start the server through cs2.sh in the install's game directory, not the binary in game/bin/linuxsteamrt64: Valve says the script may need to do important setup first. Without -dedicated the same files start the game client.

cd /home/steam/cs2-ds/game
./cs2.sh -dedicated -port 27015 -maxplayers 10 \
  +game_alias competitive +map de_dust2 \
  +sv_setsteamaccount YOUR_GSLT

The token on that line shows up in ps output for every local user and in shell history. Keep it in a launch script readable only by the steam user (chmod 700) on a machine nobody else logs into.

game_aliasgame_typegame_mode
casual00
competitive (the default)01
wingman02
deathmatch12
custom30

game_alias sets type and mode together; Valve suggests changing map after setting them. Other switches on Valve's list: -ip binds one address on a multi-IP host, -insecure turns VAC off, +hostname names the server, +sv_lan 1 makes it LAN-only with no authentication, and +sv_logfile 1 writes a log.

Ports and firewall

Steam's port list for dedicated servers gives UDP 27015 for gameplay and TCP 27015 for RCON, both defaults; -port sets the game/query port. Each extra server on the same address needs its own port. RCON is administration, so open the TCP side only to your own address.

sudo ufw allow OpenSSH
sudo ufw allow 27015/udp
# RCON only from your own address
sudo ufw allow from YOUR_ADMIN_IP to any port 27015 proto tcp
sudo ufw enable

Sub-tick: what tick rate still decides

Valve's CS2 site puts it plainly: "Tick rate no longer matters for moving, shooting, or throwing." Its explanation is that earlier versions evaluated the world only at discrete intervals, while CS2's sub-tick architecture records the exact instant a movement starts, a shot fires or a grenade leaves the hand.

Our reading, not Valve's: the setting that mattered most on older Counter-Strike servers is no longer the one to tune. What the hardware still owes the server is steady frame time, which argues for a machine nothing else shares rather than for more cores.

Which of our machines fit

The bare metal game server range rents whole machines: root, every core and all the memory, with no neighbour on the hypervisor because there is none. A racked machine is live about 30 minutes after the order is approved; a build to your own specification takes 4-24 hours. Ubuntu releases up to 26.04 install in one click on the widest lines; pick 20.04 or later to clear the glibc 2.31 floor. See the Linux server lines.

  • Every server has an unmetered port: 1 Gbps on 10 of the 18 configurable lines, 500 Mbps on the other 8. Nothing counts the traffic.
  • Rack servers and blades carry an out-of-band controller (iLO, iDRAC or a Supermicro BMC) with a browser console once you add a console login; Moonshot cartridges other than the m510 and m710x have power control only.
  • Five cities on our own network, AS19624: New York, Miami, San Francisco, Amsterdam, Bucharest. Measure the route from your players with the looking glass and the location test IPs.
  • The ARM lines (X-Gene cartridge, Ampere Altra) are out: Valve's CPU requirement is x86-64-v2.

Updates and limits

Valve says the install steps are required again every time the game is updated. Stop the server, rerun the app_update 730 line as the steam user without validate, and start it again.

Valve's own page is marked as a stub that needs updating, and it lists third-party panels and Docker images it does not maintain. If you want a web panel over several game servers, our Pterodactyl walkthrough covers one. If the server is for a single evening among friends, a whole machine billed by the month is more than the job needs.

Questions

Is the CS2 server download separate from the game?

No. Valve merged the dedicated server into the game's own app, 730; the old CS:GO server was app 740. SteamCMD installs app 730 anonymously and the whole download is about 60 GB.

Can a CS2 server run without a GSLT?

It starts, but Valve's page says other players cannot join without one. For a LAN-only match, sv_lan 1 turns off heartbeat and authentication. Anything on the internet needs a token generated against app 730.

Which ports does a CS2 server use?

UDP 27015 for game traffic and TCP 27015 for RCON, per Steam's port list. -port changes the number, and each additional server on the same IP takes its own port.

Does CS2 run on Windows Server?

Valve's requirements list Windows 10 and 11 and Linux with glibc 2.31; Windows Server is not named. On our machines Windows is a paid licence on top of the server; Linux, which Valve documents alongside Windows 10 and 11, needs no licence.

Does a 128-tick server help in CS2?

Valve says tick rate no longer governs moving, shooting or throwing because sub-tick timestamps each action. Valve's dedicated server page documents no tick-rate setting, so this page does not give one.

Put CS2 on its own machine

A whole x86 server with root, an unmetered port and five cities on AS19624 to choose from.

See the machines

Related on Server Room

Other use cases