SteamCMD Installation: Steam Game Server Management Tool
SteamCMD installation on Linux, game server download and update, automatic update script, anonymous login and common issues.
Table of Contents
Introduction
SteamCMD (Steam Console Client) is a command-line Steam client developed by Valve. It is used to download, update, and manage game server files. Dedicated server setup for CS2, Garry's Mod, Rust, ARK, Palworld, and many more games is done through SteamCMD. This guide covers SteamCMD installation on Linux, usage, and automatic update configuration.
System Requirements
| Resource | Minimum |
|---|---|
| OS | Ubuntu 20.04+ / Debian 11+ |
| RAM | 512 MB |
| Disk | 500 MB (SteamCMD) + game server space |
| Architecture | 64-bit (32-bit libraries required) |
Installation Methods
Method 1: APT Installation (Ubuntu/Debian)
sudo dpkg --add-architecture i386
sudo apt update
sudo apt install -y steamcmd
With APT installation, SteamCMD is installed to /usr/games/steamcmd and you need to accept the license agreement.
Method 2: Manual Installation (Recommended)
Manual installation provides more control:
sudo apt update
sudo apt install -y lib32gcc-s1 lib32stdc++6 wget tar
sudo adduser steam --disabled-login --gecos ""
sudo su - steam
mkdir -p ~/steamcmd && cd ~/steamcmd
wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz
tar -xzf steamcmd_linux.tar.gz
rm steamcmd_linux.tar.gz
Verify installation:
./steamcmd.sh +quit
Manual installation allows you to create separate users for each game server and manage permissions better.
Basic Usage
SteamCMD Command Structure
./steamcmd.sh +login <user> +force_install_dir <dir> +app_update <app_id> +quit
Anonymous Login
Most game servers can be downloaded with anonymous login:
./steamcmd.sh +login anonymous +quit
Account Login
Some game servers require a Steam account:
./steamcmd.sh +login username +quit
If Steam Guard is enabled, you'll need to enter a verification code. The token is cached after the first login.
Popular Game Servers and App IDs
| Game | App ID | Anonymous Login |
|---|---|---|
| Counter-Strike 2 | 730 | Yes |
| Garry's Mod | 4020 | Yes |
| Rust | 258550 | Yes |
| ARK: Survival Evolved | 376030 | Yes |
| Palworld | 2394010 | Yes |
| Unturned | 1110390 | Yes |
| Terraria (tShock) | 105600 | Yes |
| Team Fortress 2 | 232250 | Yes |
| Valheim | 896660 | Yes |
| Project Zomboid | 380870 | Yes |
| 7 Days to Die | 294420 | Yes |
| Satisfactory | 1690800 | Yes |
| V Rising | 1829350 | Yes |
| Enshrouded | 2278520 | Yes |
Game Server Download Examples
CS2 Server
./steamcmd.sh \
+force_install_dir ~/cs2-server \
+login anonymous \
+app_update 730 validate \
+quit
Rust Server
./steamcmd.sh \
+force_install_dir ~/rust-server \
+login anonymous \
+app_update 258550 validate \
+quit
Palworld Server
./steamcmd.sh \
+force_install_dir ~/palworld-server \
+login anonymous \
+app_update 2394010 validate \
+quit
Automatic Update Script
To automatically update multiple game servers:
nano ~/steamcmd/update_all.sh
#!/bin/bash
STEAMCMD="/home/steam/steamcmd/steamcmd.sh"
LOG_FILE="/home/steam/update.log"
echo "========================================" >> $LOG_FILE
echo "$(date): Update started" >> $LOG_FILE
$STEAMCMD +force_install_dir /home/steam/cs2-server \
+login anonymous +app_update 730 +quit >> $LOG_FILE 2>&1
$STEAMCMD +force_install_dir /home/steam/rust-server \
+login anonymous +app_update 258550 +quit >> $LOG_FILE 2>&1
echo "$(date): Update completed" >> $LOG_FILE
chmod +x ~/steamcmd/update_all.sh
crontab -e
0 4 * * * /home/steam/steamcmd/update_all.sh
SteamCMD Script Files
You can write commands to a script file:
nano ~/steamcmd/cs2_update.txt
@ShutdownOnFailedCommand 1
@NoPromptForPassword 1
login anonymous
force_install_dir /home/steam/cs2-server
app_update 730 validate
quit
Run:
./steamcmd.sh +runscript ~/steamcmd/cs2_update.txt
Beta Branch Installation
To install a beta version of a game:
./steamcmd.sh \
+force_install_dir ~/game-server \
+login anonymous \
+app_update APP_ID -beta BETA_NAME \
+quit
Workshop Content Download
To download Steam Workshop content:
./steamcmd.sh \
+login anonymous \
+workshop_download_item APP_ID WORKSHOP_ID \
+quit
Downloaded files are located at:
~/steamcmd/steamapps/workshop/content/APP_ID/WORKSHOP_ID/
Common Issues and Solutions
32-bit library error
sudo dpkg --add-architecture i386
sudo apt update
sudo apt install -y lib32gcc-s1 lib32stdc++6
Insufficient disk space
df -h
rm -rf ~/steamcmd/steamapps/downloading/*
rm -rf ~/steamcmd/steamapps/temp/*
Download errors
./steamcmd.sh +force_install_dir ~/game-server \
+login anonymous \
+app_update APP_ID validate \
+quit
Connection timeout
echo "nameserver 8.8.8.8" | sudo tee /etc/resolv.conf
./steamcmd.sh +login anonymous +quit
Security Recommendations
- Separate users: Create a separate Linux user for each game server
- Don't use root: Never run SteamCMD as root
- Firewall: Only open necessary ports
- Updates: Update regularly
- Backups: Regularly backup server files
sudo adduser cs2 --disabled-login --gecos ""
sudo adduser rust --disabled-login --gecos ""
sudo adduser ark --disabled-login --gecos ""
Conclusion
SteamCMD is the essential tool for game server management on Linux. With anonymous login, you can easily download most game servers, and with automatic update scripts, keep your servers up to date. REXE VDS powerful infrastructure lets you run SteamCMD-based game servers smoothly.
Related Articles
How to Set Up a FiveM Server: Step-by-Step Guide
Complete FiveM server setup guide on REXE VDS: installation, txAdmin configuration, port settings, and performance optimization tips for GTA V roleplay servers.
How to Set Up a Minecraft Server: Paper Installation Guide
Complete Minecraft server setup guide on REXE VDS: Paper/Spigot installation, Java configuration, plugin management, and performance optimization for stable gameplay.
How to Set Up a CS2 Dedicated Server: Complete Guide
Complete CS2 dedicated server setup guide on REXE VDS: SteamCMD installation, GSLT token, server configuration, game modes, and DDoS protection with Path Panel.