DustBowl.Games

Counter-Strike 1.6 / UPDATED April 27, 2026

How to Install a Counter-Strike 1.6 Dedicated Server (reHLDS)

Get a Counter-Strike 1.6 server running with reHLDS — the hardened HLDS replacement. Covers SteamCMD, reHLDS binary swap, launch flags, and 32-bit library fixes on 64-bit Linux.

Counter-Strike 1.6CS 1.6reHLDSHLDSdedicated serverSteamCMDLinux

What You Need

Before anything else, make sure you have a Linux server (Debian/Ubuntu recommended), SteamCMD installed, and root or sudo access. CS 1.6 dedicated servers run 32-bit binaries, so on a 64-bit host you need compatibility libraries installed first.

Install 32-Bit Libraries

On 64-bit Debian/Ubuntu, the server will crash immediately without these:

sudo apt update
sudo apt install lib32gcc-s1 lib32stdc++6

Skip this step and you'll get a segfault on launch with no useful error message.

Download the Base Server with SteamCMD

CS 1.6 uses AppID 90 — that is the HLDS (Half-Life Dedicated Server) base, not the CS 1.6 client. Run SteamCMD with anonymous login:

./steamcmd.sh +login anonymous +force_install_dir /home/gameserver/hlds +app_update 90 validate +quit

This downloads vanilla HLDS into /home/gameserver/hlds. After it finishes you should see a cstrike/ subdirectory — that is where all game files live.

Swap in reHLDS

Vanilla HLDS is old and has security holes. reHLDS is a reverse-engineered, hardened replacement maintained by the community. You need to replace two files:

  1. Go to github.com/rehlds/ReHLDS/releases and grab the latest release archive.
  2. Extract it. Inside you'll find hlds_linux and engine_i486.so.
  3. Back up the originals, then copy the reHLDS versions over:
cp hlds_linux /home/gameserver/hlds/hlds_linux
cp engine_i486.so /home/gameserver/hlds/engine_i486.so
chmod +x /home/gameserver/hlds/hlds_linux

That's the full swap. reHLDS is a drop-in replacement — nothing else changes.

Directory Structure

After setup your layout looks like this:

/home/gameserver/hlds/
├── hlds_linux          # reHLDS main binary
├── hlds_run            # wrapper script (use this to start the server)
├── engine_i486.so      # reHLDS engine
└── cstrike/            # CS 1.6 game files
    ├── server.cfg      # main server config
    ├── maps/           # .bsp map files
    ├── mapcycle.txt    # map rotation
    └── addons/         # Metamod, AMX Mod X go here

Launch the Server

Always use hlds_run, not hlds_linux directly. hlds_run is a wrapper script that automatically restarts the server if it crashes:

./hlds_run -game cstrike -console -port 27015 +maxplayers 20 +map de_dust2

Key flags:

  • -game cstrike — load the Counter-Strike game
  • -console — run without a GUI (required on headless servers)
  • -port 27015 — UDP port players connect to (default, change if needed)
  • +maxplayers 20 — player slot limit (max 32 for CS 1.6)
  • +map de_dust2 — starting map

Verify It's Working

A healthy server start produces these two lines in the console output:

Connection to Steam servers successful.
VAC secure mode activated.

If you see VAC secure mode disabled instead, check that your firewall allows outbound UDP on ports 27015, 27020, and 27005.

Running in the Background

For a persistent server session, use screen or tmux:

screen -S cs16 ./hlds_run -game cstrike -console -port 27015 +maxplayers 20 +map de_dust2

Detach with Ctrl+A, D. Reattach with screen -r cs16.

Connection interrupted

We are restoring your session

Your account remains secure while we reconnect you.

Attempt in progress

A fresh reload verifies your session and pulls current content and security updates from the server.

Unsaved changes may be lost while your session is interrupted.

View system status

Need help? Home · Support · Discord

Check your connection, then try again or review our system status.

A fresh reload verifies your session and pulls current content and security updates from the server.

Unsaved changes may be lost while your session is interrupted.

View system status

Need help? Home · Support · Discord

The server rejected this session. Reload to continue securely.

A fresh reload verifies your session and pulls current content and security updates from the server.

Unsaved changes may be lost while your session is interrupted.

View system status

Need help? Home · Support · Discord

Connection status and recovery controls.