Saltar al contenido
Counter-Strike 1.6

Instalar un servidor de Counter-Strike 1.6

El servidor de Counter-Strike 1.6 es un HLDS (Half-Life Dedicated Server, app SteamCMD 90) con el mod cstrike. Es ligero: basta un VPS pequeño. Fuentes consultadas: guías de Vultr y Gentoo, de hosts y huevos de Pterodactyl; la wiki de Valve no estaba accesible, conviene contrastar.

Última actualización: 9/10/2026

El servidor de Counter-Strike 1.6 es un HLDS (Half-Life Dedicated Server, app SteamCMD 90) con el mod cstrike. Es ligero: basta un VPS pequeño. Fuentes consultadas: guías de Vultr y Gentoo, de hosts y huevos de Pterodactyl; la wiki de Valve no estaba accesible, conviene contrastar.

Instalación paso a paso

  1. Prepara una máquina Linux (Ubuntu/Debian) o Windows; el servidor es muy ligero.

  2. Crea un usuario no root (steam) e instala SteamCMD con las bibliotecas de 32 bits.

  3. Instala HLDS con app_set_config 90 mod cstrike y luego app_update 90 validate.

  4. Repite app_update 90 validate varias veces hasta que no descargue nada más (peculiaridad conocida de HLDS).

  5. Edita cstrike/server.cfg (herramienta «Generador de server.cfg para CS 1.6») y cstrike/mapcycle.txt (herramienta «Editor de mapcycle.txt»).

  6. Inicia hlds_run -game cstrike (o hlds.exe en Windows) con el mapa y los slots deseados.

  7. Abre 27015 UDP y TCP (y 27020 UDP para HLTV) en ufw, en el proveedor y en el router.

  8. Prueba en local (connect 127.0.0.1 en la consola del juego) y luego desde otra conexión.

  9. Crea un servicio systemd y programa actualizaciones y copias de seguridad.

Requisitos previos

  • Sistema: Linux (Ubuntu/Debian) o Windows. HLDS es un programa de 32 bits.
  • Recursos: no fijados oficialmente en las fuentes consultadas. Una máquina de 1 vCPU y 1 GB de RAM suele bastar para 16-32 slots sin plugins pesados (estimación, a validar).
  • Cuentas: instalación anónima. Las fuentes consultadas no mencionan ningún token GSLT para HLDS.
  • Variante de la comunidad: ReHLDS (no oficial) es una alternativa muy usada; esta guía cubre el HLDS de Valve.

Instalación local en Windows

Descomprime SteamCMD en C:\steamcmd, instala HLDS (repite la actualización hasta que no descargue nada) y ejecuta hlds.exe. Prueba con connect 127.0.0.1 en la consola de Counter-Strike 1.6.

cd C:\steamcmd
steamcmd +force_install_dir C:\hlds +login anonymous +app_set_config 90 mod cstrike +app_update 90 validate +quit
steamcmd +force_install_dir C:\hlds +login anonymous +app_update 90 validate +quit

cd C:\hlds
hlds.exe -console -game cstrike +maxplayers 32 +map de_dust2

VPS Linux: usuario y dependencias

sudo adduser steam
sudo dpkg --add-architecture i386
sudo apt update
sudo apt install -y lib32gcc-s1 lib32stdc++6 steamcmd
su - steam

VPS Linux: instalación de HLDS

Varias guías (Vultr, Gentoo, hosts) indican que HLDS debe actualizarse varias veces: el segundo y el tercer comando repiten app_update 90 validate. El mod se elige con app_set_config 90 mod cstrike.

steamcmd +force_install_dir /home/steam/hlds +login anonymous +app_set_config 90 mod cstrike +app_update 90 validate +quit
steamcmd +force_install_dir /home/steam/hlds +login anonymous +app_update 90 validate +quit
steamcmd +force_install_dir /home/steam/hlds +login anonymous +app_update 90 validate +quit

VPS Linux: primer inicio

Inicia hlds_run desde la carpeta de instalación. El servidor lee cstrike/server.cfg en cada cambio de mapa y cstrike/mapcycle.txt para la rotación; cstrike/liblist.gam describe el mod (mira la herramienta «Editor de liblist.gam» para cargar Metamod).

cd /home/steam/hlds
./hlds_run -console -game cstrike +ip 0.0.0.0 +port 27015 +maxplayers 32 +map de_dust2

Puertos a abrir y cortafuegos Linux (ufw)

Estos puertos son los valores habituales de HLDS (no confirmados por una página oficial consultada). Para cambiar el puerto, usa +port N en la línea de lanzamiento y ábrelo en lugar de 27015.

Abre solo lo necesario y prueba desde otra conexión (no desde el propio servidor).

  • 27015/udp: juego (puerto HLDS por defecto)
  • 27015/tcp: RCON
  • 27020/udp: HLTV (opcional)
sudo ufw allow OpenSSH
sudo ufw allow 27015/udp
sudo ufw allow 27015/tcp
sudo ufw allow 27020/udp
sudo ufw enable
sudo ufw status

Cortafuegos de Windows (netsh)

En un símbolo del sistema de administrador, crea una regla de entrada por puerto (o abre «Firewall de Windows Defender con seguridad avanzada»).

netsh advfirewall firewall add rule name="Counter-Strike 1.6 27015 UDP" dir=in action=allow protocol=UDP localport=27015
netsh advfirewall firewall add rule name="Counter-Strike 1.6 27015 TCP" dir=in action=allow protocol=TCP localport=27015
netsh advfirewall firewall add rule name="Counter-Strike 1.6 27020 UDP" dir=in action=allow protocol=UDP localport=27020

Cortafuegos del proveedor y redirección de puertos (router)

En un proveedor (OVH, Hetzner, Scaleway…), abre también los mismos puertos en el cortafuegos o «security group» del proveedor: ufw no basta si hay un cortafuegos previo. En casa, crea en el router una redirección (NAT) de cada puerto a la IP local de la máquina (fíjala o resérvala por DHCP).

Prueba: desde otra conexión, añade el servidor como «IP:puerto» en el navegador de servidores de Counter-Strike 1.6 o en la consola. Si falla, revisa en orden: servicio iniciado, cortafuegos local, cortafuegos del proveedor, redirección NAT.

Inicio automático: servicio systemd

Crea /etc/systemd/system/cs16.service (como root) y actívalo. Adapta el usuario y las rutas; consulta los registros con journalctl -u cs16 -f.

[Unit]
Description=Counter-Strike 1.6 dedicated server
After=network-online.target
Wants=network-online.target

[Service]
User=steam
WorkingDirectory=/home/steam/hlds
ExecStart=/home/steam/hlds/hlds_run -console -game cstrike +ip 0.0.0.0 +port 27015 +maxplayers 32 +map de_dust2
Restart=on-failure
RestartSec=10

[Install]
WantedBy=multi-user.target

# then:
# sudo systemctl daemon-reload
# sudo systemctl enable --now cs16

Windows: tarea programada al inicio

En Windows, una tarea programada ejecuta tu script .bat al iniciar el sistema (ejecuta el comando en un símbolo de administrador).

schtasks /Create /TN "Counter-Strike 1.6 server" /TR "C:\hlds\start-cs16.bat" /SC ONSTART /RU SYSTEM /RL HIGHEST

Actualizaciones, copias de seguridad y reinicios programados

Detén el servicio antes de actualizar (mismo comando SteamCMD que en la instalación), copia con regularidad los archivos de configuración y datos, y programa un reinicio diario si el servidor se degrada con el tiempo.

sudo systemctl stop cs16
steamcmd +force_install_dir /home/steam/hlds +login anonymous +app_update 90 validate +quit
sudo systemctl start cs16

# backup
tar czf ~/cs16-$(date +%F).tar.gz -C /home/steam/hlds cstrike/server.cfg cstrike/mapcycle.txt cstrike/liblist.gam cstrike/addons cstrike/banned.cfg cstrike/listip.cfg

# daily restart at 05:00 (root crontab: sudo crontab -e)
0 5 * * * systemctl restart cs16

Registrar y encontrar tu servidor

Añade tu servidor en https://game-rank.com/jeux/counter-strike-1-6 para que la comunidad lo vea. Para encontrarlo en el juego, usa el navegador de servidores o conéctate directamente con su IP:puerto.

Solución de problemas: errores frecuentes

  • Archivos ausentes o el servidor no arranca tras la instalación: HLDS es conocido por una primera instalación incompleta. Solución: repite app_update 90 validate (con app_set_config 90 mod cstrike) dos o tres veces.
  • El servidor se queda atascado al cambiar de mapa: un mapa listado en mapcycle.txt no está en cstrike/maps/. Solución: comprueba que cada .bsp exista o quita la línea.
  • Servidor invisible desde fuera: el servicio funciona pero nadie puede conectarse. Causa: puerto cerrado (ufw, cortafuegos del proveedor o falta la redirección NAT). Solución: abre los puertos indicados en los tres niveles y prueba desde otra conexión.
  • Puerto ya en uso al iniciar: otra instancia ocupa el puerto. Solución: lista los procesos con ss -lunp | grep 27015, detén la instancia anterior o asigna un puerto distinto con -port a cada servidor.
  • SteamCMD «Failed to install app» o descarga detenida: causa frecuente, disco lleno o permisos insuficientes en la carpeta. Solución: revisa df -h y el propietario de la carpeta y repite el comando con validate (varias veces si hace falta).
  • srcds_run: «No such file or directory» o falta una biblioteca de 32 bits: el servidor Source es de 32 bits. Solución: activa la arquitectura i386 (dpkg --add-architecture i386) e instala lib32gcc-s1 y lib32stdc++6.

Preguntas frecuentes

¿Cuál es el ID de SteamCMD del servidor de CS 1.6?
HLDS es la app 90; el mod se elige con +app_set_config 90 mod cstrike antes de +app_update 90 validate.
¿Dónde pongo Metamod o AMX Mod X?
Estos módulos de la comunidad van en cstrike/addons/ y Metamod se carga mediante la línea gamedll_linux (o gamedll) de cstrike/liblist.gam. Sigue la documentación de la distribución elegida; la herramienta «Editor de liblist.gam» modifica esa línea.
¿Puedo ejecutar el servidor como root?
No se recomienda: crea un usuario dedicado (por ejemplo steam) sin derechos de administrador e instala y ejecuta el servidor con él. Así un fallo del servidor o de un plugin no compromete toda la máquina.
Mi servidor de Counter-Strike 1.6 no aparece en la lista: ¿qué reviso?
Comprueba primero que los puertos estén abiertos en todos los niveles, que el servidor no esté en modo LAN (sv_lan 0) y, si el juego lo exige, que se aporte un token de servidor (GSLT) válido. La lista de Steam puede tardar unos minutos en actualizarse; mientras, conéctate por IP:puerto.

Herramientas para tu servidor de Counter-Strike 1.6

Counter-Strike 1.6
Counter-Strike 1.6Acceso libre
Crea el server.cfg de tu servidor Counter-Strike 1.6 (HLDS): rondas, dinero, C4, fuego amigo, física y tasas de red.
ConfiguraciónHLDSAbrir
Documentación
Counter-Strike 1.6
Counter-Strike 1.6Acceso libre
Compón la rotación de mapas de tu servidor Counter-Strike 1.6: limpieza, duplicados eliminados, primer mapa a elegir.
MapasConfiguraciónAbrir
Documentación
Counter-Strike 1.6
Counter-Strike 1.6Acceso libre
Genera el liblist.gam de Counter-Strike 1.6: importa tu archivo, cambia la DLL del juego (p. ej. Metamod) y las URL.
MetamodConfiguraciónAbrir
Documentación