The reliable way to host Counter-Strike 1.6 in 2026 is to run Valve’s Half-Life Dedicated Server (HLDS) with the cstrike game files, install them through SteamCMD, and expose UDP port 27015 only after a local test succeeds. Use a dedicated non-root account, keep RCON credentials private, and add Metamod or AMX Mod X only after the unmodified server is working.
Prefer not to run the server on your own PC? Godlike.Host offers hosted CS 1.6 servers with free DDoS protection and up to three free backups a day.
This guide covers a Linux installation, router forwarding for internet play, LAN-only hosting, configuration, plugin installation, security, maintenance, hosting choices, and the failure modes that stop players connecting.
As an Amazon Associate I earn from qualifying purchases.
What you are building
CS 1.6 does not need a modern game-server stack. Its dedicated server is HLDS, Valve’s GoldSource server engine, running the Counter-Strike modification named cstrike. Steam identifies the Half-Life Dedicated Server as the GoldSource server used for Counter-Strike. The SteamCMD application ID for this installation is 90.
| Component | Purpose |
|---|---|
| HLDS | Runs the dedicated GoldSource game server. |
cstrike |
Provides Counter-Strike 1.6 maps, rules and game files. |
| SteamCMD | Downloads and updates the server files. Valve’s Steam Support says, “All Steam game servers now use SteamCMD to download and update game server files.” |
cstrike/server.cfg |
Sets the server name, passwords, map rotation and gameplay rules. |
| Metamod and AMX Mod X | Optional plugin and administration layers, installed after vanilla HLDS. |
HLDSUpdateTool is retired and no longer functions. Do not build a new 2026 installation around it.
#1 Best Overall
- Read Before You Buy — No Video Output: These adapters support charging and USB 2.0 data transfer, but cannot transmit video signals. Except for standard USB webcams (which use USB data only), they are not compatible with HDMI/DisplayPort cables, video-capable USB-C hubs, or docking stations with video output.
- Convert USB-A Ports to USB-C: Designed to connect USB-C earphones, cables, flash drives, card readers, and other USB-C accessories to standard USB-A ports. Plug-and-play with no drivers or software required.
- Aluminum Alloy Housing: Built with a sturdy aluminum alloy shell that aids in heat dissipation and protects against daily wear and scratches. Designed to maintain a stable and secure connection.
- Compact & Travel-Friendly: The ultra-compact design allows the adapter to stay plugged into your device without blocking adjacent ports or adding bulk, reducing wear and tear on your original USB ports.
- 12-Month Warranty: Backed by a 12-month manufacturer warranty for peace of mind. Designed to meet strict quality control standards for reliable everyday performance.
Decide whether the server is LAN or public
LAN-only server
A LAN server is reachable only by devices on the same private network. It needs no public port forward. Keep the machine on the private network, use a LAN setting, and give players the host’s private address, such as 192.168.1.50:27015. This is suitable for a small local event or testing.
Internet server
An internet server needs a reachable public address, a stable private address on the host’s LAN, a UDP port-forward rule, and a host firewall rule. A standalone dedicated server is preferable to a listen server when the machine should remain available independently of a player’s game client.
Free tools Windows power users keep installed
One-click scans. No signup required.
Requirements and preparation
- A Linux machine or virtual server: use a current distribution that can run the 32-bit libraries required by HLDS and SteamCMD. Package names vary by distribution.
- A dedicated account: create a locked-down user such as
hlds; do not run the game server as root. - Storage and memory: no authoritative universal RAM, bandwidth or player-count benchmark is established for every map and plugin combination. Start with a modest player limit, observe CPU, memory and network use, then adjust.
- Network access: for public play, you need control of UDP 27015 and an ISP connection that is not blocking inbound traffic behind carrier-grade NAT.
- Administrative access: keep shell access, RCON credentials and plugin files private. Decide where backups of
server.cfg, map lists and addons will live.
Reserve the host’s private LAN address before configuring forwarding. If the address changes later, the router can forward UDP 27015 to the wrong machine.
Install HLDS with SteamCMD on Linux
1. Create a non-root service account
On a Debian- or Ubuntu-style system, create the account and its installation directory. The exact commands differ on other distributions.
sudo useradd --create-home --shell /bin/bash hlds
sudo mkdir -p /home/hlds/server
sudo chown -R hlds:hlds /home/hlds
Switch to that account for the download and normal server operation:
sudo -iu hlds
2. Install 32-bit compatibility libraries
HLDS is an older 32-bit GoldSource application. On a 64-bit Debian or Ubuntu host, enable the 32-bit architecture and install the compatibility libraries before launching SteamCMD. Package names can change with the distribution release, so use the equivalent 32-bit runtime packages supplied by your operating system.
The Tool Desk
Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →Rank #2
- 5-in-1 USB-C Hub: Experience comprehensive connectivity featuring a Power Delivery input, two USB-A 2.0 ports, a USB-A 3.0 port, and an HDMI port. (Note: The USB-C power delivery input port is only for connecting an external wall charger to power your laptop and cannot power peripheral devices.)
- 90W Pass-Through Charging: Achieve optimal charging with 90W pass-through power to your laptop, supported by a total input of 100W, with the hub reserving 10W for operational efficiency. (Note: Wall charger not included.)
- Quick Data Transfers: Accelerate your productivity with rapid data transfers using a high-speed 5Gbps USB 3.0 port and two 480Mbps USB 2.0 ports.
- 4K HDMI Display: Enhance your visual experience with a hub capable of delivering 4K resolution at 30Hz in both mirror and extend modes. Please note that this hub is compatible with MacBook (macOS 12 and newer), Windows 10 and 11, ChromeOS, and laptops equipped with DP Alt Mode and Power Delivery. Note: This device is not compatible with Linux.
- What You Get: Anker USB-C Hub (5-in-1, 4K HDMI), welcome guide, 18-month warranty, and our friendly customer service.
sudo dpkg --add-architecture i386
sudo apt update
sudo apt install libc6:i386 libstdc++6:i386 ca-certificates wget tar
If your distribution uses a different package manager, install its 32-bit C runtime and C++ runtime instead. A missing 32-bit library commonly appears as a loader error when SteamCMD or hlds_run starts.
3. Download SteamCMD from Valve
Download the Linux SteamCMD archive from Valve’s official SteamCMD distribution, extract it in a directory owned by hlds, and run steamcmd.sh. Do not use the retired HLDSUpdateTool.
mkdir -p /home/hlds/steamcmd
cd /home/hlds/steamcmd
# Extract Valve's SteamCMD Linux archive here, then:
./steamcmd.sh
At the SteamCMD prompt, install the Counter-Strike server files into /home/hlds/server:
force_install_dir /home/hlds/server
login anonymous
app_set_config 90 mod cstrike
app_update 90 validate
quit
You can also run the same sequence non-interactively:
Recommended Free Tools
./steamcmd.sh +force_install_dir /home/hlds/server +login anonymous +app_set_config 90 mod cstrike +app_update 90 validate +quit
The validate option checks the downloaded files. Repeat the app_update 90 step when you intentionally update the server, and back up configuration and addons first.
4. Check the installation tree
The server directory should contain the HLDS launcher and a cstrike directory. The configuration file you will edit is:
Rank #3
- Sleek 7-in-1 USB-C Hub: Features an HDMI port, two USB-A 3.0 ports, and a USB-C data port, each providing 5Gbps transfer speeds. It also includes a USB-C PD input port for charging up to 100W and dual SD and TF card slots, all in a compact design.
- Flawless 4K@60Hz Video with HDMI: Delivers exceptional clarity and smoothness with its 4K@60Hz HDMI port, making it ideal for high-definition presentations and entertainment. (Note: Only the HDMI port supports video projection; the USB-C port is for data transfer only.)
- Double Up on Efficiency: The two USB-A 3.0 ports and a USB-C port support a fast 5Gbps data rate, significantly boosting your transfer speeds and improving productivity.
- Fast and Reliable 85W Charging: Offers high-capacity, speedy charging for laptops up to 85W, so you spend less time tethered to an outlet and more time being productive.
- What You Get: Anker USB-C Hub (7-in-1), welcome guide, 18-month warranty, and our friendly customer service.
/home/hlds/server/cstrike/server.cfg
If a distribution reports a missing steam_appid.txt, a missing shared library or an executable-permission error, resolve that error before adding any plugin. Those failures are installation problems, not AMX Mod X problems.
5. Start a vanilla server
Launch without addons first. The following is a practical starting command; change the map and player limit to match your audience and machine.
cd /home/hlds/server
./hlds_run -game cstrike -console +ip 0.0.0.0 +port 27015 +maxplayers 24 +map de_dust2
+ip 0.0.0.0 tells HLDS to listen on the host’s interfaces. +port 27015 selects the conventional UDP port. +maxplayers 24 is an example, not a performance guarantee. Watch the console for a successful map load and a listening message.
Configure cstrike/server.cfg
Edit the file with the hlds account. Start with a small, explicit configuration and add rules only when you understand their effect.
hostname "Your CS 1.6 Server"
rcon_password "replace-with-a-long-unique-secret"
sv_password ""
sv_lan 0
mp_timelimit 25
mp_friendlyfire 0
mapcyclefile "mapcycle.txt"
hostname: the name shown to players. Make it distinctive so friends can identify the correct server.rcon_password: the remote-console secret. Never post it in a forum, screenshot, stream description or public configuration repository.sv_password: leave it empty for an open public server, or set a separate join password for a private session. Do not reuse the RCON password.sv_lan: use0for internet play. For a LAN-only session, use the LAN setting and do not create a public forward.mapcyclefile: points to a text file containing one map name per line. Keep the map names exactly as they appear incstrike/maps.- Gameplay variables: set time limits, friendly fire and other rules deliberately; plugins may override them.
Create or edit cstrike/mapcycle.txt with one map per line, for example:
de_dust2
de_nuke
de_inferno
Remove accidental leading spaces from map names. Test every map in the rotation before advertising the server.
Rank #4
- Dual Converters, Infinite Potential:Includes 2× USB C male to USB A female adapters and 2× USB A male to USB C female adapters. Perfect for a wide range of uses—tablets with Bluetooth keyboards, expand USB ports on macbook, and more. Two different converters for all your daily needs
- Next-Level 10Gbps & 3A Charging: No more slow 480Mbps, this usb to usb c adapter has a transfer speed of up to 10Gbps, allowing you to do more transferring in less time. This usb adapter fits both USB A and USB C charger, supporting up to 3A fast charging
- Upgraded Exquisite Craftsmanship: With an aluminum alloy housing and metal connector, the usbc to usb adapter is extremely durable and sturdy. Rigorously tested to withstand more than 10,000 times of plugging and unplugging, ensuring long-lasting performance
- Broad Compatible: The usb c to usb adapter widely supports all USB C/ USB A devices like laptops, tablets, cellphones, car chargers, and phone chargers. Such as compatible with MacBook Pro/Air 2023/2022, Thunderbolt 4/3 Devices,Apple MagSafe Watch 9/8/7/SE/Ultra, iPad Pro 2022/2021, Samsung Galaxy S23/S20/S10, and iPhone 17/16/15 Pro. Plug and play
- Please Note: To reach 10Gbps speed, keep the cable under 3.3 ft. For USB A Male to USB C adapters, try flipping the USB C connector. USB C Male to USB A adapters support bidirectional 10Gbps transfer within 3.3 ft
Verify locally before opening the internet
- Start HLDS with no Metamod, AMX Mod X or bot files enabled.
- Confirm the console loads the selected map without repeated errors.
- From a Counter-Strike 1.6 client on the same network, open the console and run
connect PRIVATE_IP:27015. - Join, change maps, test the password behavior and confirm the server returns to the expected map.
- Stop the server cleanly and make a backup of the working
cstrikeconfiguration.
Do not troubleshoot router forwarding and plugins at the same time. A local vanilla connection gives you a known-good baseline.
Make the server public
1. Reserve the private address
Use your router’s DHCP-reservation feature to bind the server’s network adapter to a fixed private address. The exact menu label differs by router and ISP equipment.
2. Forward UDP 27015
Create a port-forward rule that maps public UDP port 27015 to the reserved private address and UDP port 27015 on the HLDS machine. Steam’s router guidance uses this public-port-to-internal-address format and warns that dynamic internal addressing can break the rule.
Do these 3 things before closing this tab:
1Clear out junk files and repair common Windows errors2Fix the driver behind crashes, sound loss and screen glitches3Repair Windows errors before they cause bigger problemsIf you are choosing hardware, the useful search phrase is home router with port forwarding; the right model depends on your ISP, topology and whether you need IPv6.
3. Allow the host firewall
For a host using UFW, the basic rule is:
sudo ufw allow 27015/udp
sudo ufw status
Use the equivalent inbound UDP rule in firewalld, nftables or your cloud provider’s security group. Do not open unrelated ports just to make the game visible.
4. Test from a different network
Have a friend connect over mobile data or another internet connection using connect PUBLIC_IP:27015. A test from the same LAN can succeed even when the router’s public forwarding is wrong because of local NAT loopback behavior.
Best Value
- 5-in-1 Connectivity: Equipped with a 4K HDMI port, a 5 Gbps USB-C data port, two 5 Gbps USB-A ports, and a USB C 100W PD-IN port. Note: The USB C 100W PD-IN port supports only charging and does not support data transfer devices such as headphones or speakers.
- Powerful Pass-Through Charging: Supports up to 85W pass-through charging so you can power up your laptop while you use the hub. Note: Pass-through charging requires a charger (not included). Note: To achieve full power for iPad, we recommend using a 45W wall charger.
- Transfer Files in Seconds: Move files to and from your laptop at speeds of up to 5 Gbps via the USB-C and USB-A data ports. Note: The USB C 5Gbps Data port does not support video output.
- HD Display: Connect to the HDMI port to stream or mirror content to an external monitor in resolutions of up to 4K@30Hz. Note: The USB-C ports do not support video output.
- What You Get: Anker 332 USB-C Hub (5-in-1), welcome guide, our worry-free 18-month warranty, and friendly customer service.
If outside players cannot connect, check, in order:
- HLDS is listening on UDP 27015 and has not been started on another port.
- The host firewall allows UDP 27015.
- The router forwards to the current reserved private address.
- The ISP is not placing the connection behind carrier-grade NAT or blocking inbound traffic.
- The server is using
sv_lan 0for internet play.
When carrier-grade NAT prevents inbound connections, a conventional home port forward cannot solve it. Use an internet connection with a reachable public address or move the server to a host that provides one.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Add Metamod, AMX Mod X and bots
Install one layer at a time
Metamod is the plugin layer that lets GoldSource load extensions. AMX Mod X sits above it and provides administration and gameplay plugins. YaPB is an optional bot framework used by some current CS 1.6 server projects. These components have independent releases and binary-compatibility requirements.
- Stop HLDS and copy the working vanilla server directory or at least
cstrike/server.cfgandcstrike/mapcycle.txt. - Install Metamod into the
cstrike/addonstree and register it through the GoldSource game configuration as required by the package. - Start the server and verify that Metamod loads before installing any AMX Mod X module.
- Install AMX Mod X, then enable one plugin at a time. Check the console after each change.
- Add YaPB or another bot framework only after the plugin stack is stable, and verify that its binaries match the HLDS architecture.
Current community examples commonly pair Metamod-P with AMX Mod X and optionally YaPB, but you must check the version and binary requirements of the exact files you install. A plugin can alter gameplay, consume resources or expose administrative commands.
Configure administrators carefully
Only create an admin entry after the vanilla server and Metamod/AMX Mod X load correctly. Keep users.ini, RCON credentials and plugin configuration outside public repositories and shared screenshots. Grant the smallest set of commands each administrator needs. Remove old entries when staff access changes.
Windows Errors? Fix Them Before They Spread
Repair common Windows errors and clear accumulated junk for a smoother, more stable PC - no reinstall needed.Free scan · no reinstallOutdated Drivers Are Slowing You Down
One free scan finds every outdated or missing driver and matches the right update for your exact hardware.Free scan · exact hardware matchRun the server as a service
A process manager prevents a dropped SSH session from stopping the server and can restart it after a failure. A minimal systemd unit illustrates the principle; adjust paths and the executable name to your installation.
[Unit]
Description=CS 1.6 HLDS
After=network-online.target
Wants=network-online.target
[Service]
User=hlds
WorkingDirectory=/home/hlds/server
ExecStart=/home/hlds/server/hlds_run -game cstrike -console +ip 0.0.0.0 +port 27015 +maxplayers 24 +map de_dust2
Restart=on-failure
[Install]
WantedBy=multi-user.target
Save it as a root-owned unit, reload systemd, enable it at boot and inspect logs with your distribution’s service commands. Test a manual stop and restart before relying on automatic recovery. Keep updates a controlled operation: stop the service, back up server.cfg and cstrike/addons, run SteamCMD’s app_update 90 validate, then start and test again.
Home hosting, a VPS or managed hosting?
The right location depends more on network control and reliability than on a brand name. Compare these properties before committing:
| Factor | Home machine | Linux VPS | Managed game host |
|---|---|---|---|
| Public reachability | Depends on ISP, public address and NAT. | Usually includes a reachable address; verify IPv4 and IPv6 details. | Usually provided, but confirm the exact address and port policy. |
| UDP port control | Router and firewall are yours to configure. | Controlled through the host firewall and provider security rules. | Provider may restrict ports or require a support request. |
| Uptime | Depends on power, broadband and your maintenance. | Data-center power and networking are generally more consistent. | Depends on the provider’s platform and support process. |
| Latency | Can be excellent for nearby players. | Choose a location close to the player group. | Ask where the server is physically located. |
| CPU behavior | Uses your existing hardware; observe single-thread load. | Shared virtual CPU performance varies by plan and host. | Confirm the plan permits GoldSource and your player limit. |
| Backups and console | You control files and backups. | Usually offers snapshots and console access; verify retention. | May provide web console and backups under separate limits. |
| DDoS protection | Usually limited to your router or ISP. | Depends on the data center and selected network protection. | Ask what protection is included and what traffic is covered. |
| Mods | Full filesystem control. | Full filesystem control if the plan permits custom binaries. | Confirm Metamod, AMX Mod X and bot-policy support. |
| Cost | Incremental electricity and broadband cost. | Recurring charge based on resources and location. | Recurring charge based on slots, resources and support. |
A home server is practical when you can forward UDP 27015 and keep the machine online. A VPS or managed host is more suitable when your ISP uses carrier-grade NAT, you need predictable uptime, or you do not want to maintain hardware. Read provider terms for GoldSrc servers, custom addons, outbound traffic, backups and abuse handling before paying.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
Quick Recap
Security and maintenance checklist
- Run HLDS under
hldsor another non-root account. - Use a long, unique RCON password and never publish it.
- Use a different join password for private sessions.
- Allow only the required UDP port through the host and provider firewalls.
- Back up
server.cfg,mapcycle.txt,users.iniand the complete addons directory before updates. - Review every third-party plugin; remove files you cannot identify or maintain.
- Update HLDS through SteamCMD in a maintenance window and test the vanilla launch afterward.
- Keep a rollback copy of the last known-good server directory.
- Watch console logs for repeated crashes, failed plugin loads or unexpected administrative commands.
- Re-test from an external network after router, ISP or firewall changes.
Troubleshooting by symptom
| Symptom | Likely causes | Action |
|---|---|---|
| SteamCMD or HLDS will not start | Missing 32-bit libraries, incorrect permissions, incomplete download, wrong executable path or missing steam_appid.txt reported by the chosen distribution. |
Run the binary as the hlds user, install the distribution’s 32-bit runtimes, verify ownership and rerun app_update 90 validate. |
| Local client cannot connect | Wrong private address or port, server still loading, map failure or a local firewall rule. | Read the console, confirm the exact connect PRIVATE_IP:27015 command and test with addons disabled. |
| Friends cannot join from outside | UDP 27015 not listening, host firewall blocked, forwarding points to the wrong private address, sv_lan is enabled or the ISP uses carrier-grade NAT. |
Check each layer from HLDS to firewall to router to ISP, then retest from a second network. |
| Server appears but joining fails | Wrong public address, join password, map mismatch or stale router/NAT state. | Try a direct connect PUBLIC_IP:27015, confirm sv_password, and restart the server after configuration changes. |
| Plugins fail to load | Metamod not registered, AMX Mod X installed in the wrong tree, incompatible binary architecture or mismatched plugin versions. | Remove addons, prove vanilla HLDS works, enable Metamod, then AMX Mod X and individual plugins one at a time. |
| Server crashes after an addon change | Plugin conflict, invalid configuration, unsupported binary or a map-specific issue. | Restore the last backup, disable the newest addon, inspect console output and reintroduce changes separately. |
| Server stops when the terminal closes | HLDS was launched in an interactive shell without a service or session manager. | Run it under systemd or another process manager and verify restart behavior deliberately. |
Final launch sequence
- Confirm the
hldsaccount owns the server files and that 32-bit compatibility libraries are installed. - Use SteamCMD app
90with thecstrikemod and validate the files. - Launch vanilla HLDS on UDP 27015 with a known map.
- Connect locally and test the map cycle and passwords.
- Edit
cstrike/server.cfg, keeping RCON private and settingsv_lan 0only for internet play. - Reserve the LAN address, forward UDP 27015 and allow it through the host firewall.
- Verify an external connection.
- Install Metamod, AMX Mod X and optional bots one layer at a time, backing up after each known-good change.
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




