--- title: "Cómo crear un servidor dedicado de CS2 en Ubuntu 24.04" description: "Instala un servidor dedicado de Counter-Strike 2 en Ubuntu 24.04 con SteamCMD, configura el token GSLT, el modo de juego y server.cfg, y ejecútalo con systemd." category: "Servidores de Juegos" language: es source: https://cubepath.com/es/docs/servidores-de-juegos/configuracion-del-servidor-dedicado-counter-strike-2 updated: 2026-09-25 --- # Cómo crear un servidor dedicado de CS2 en Ubuntu 24.04 Counter-Strike 2 (CS2) incluye un servidor dedicado para Linux que se descarga de forma anónima con SteamCMD, el cliente de Steam para línea de comandos. Con tu propio servidor controlas el mapa, el modo de juego, la contraseña y la configuración de las partidas, algo útil para entrenar con tu equipo o montar partidas privadas. En este tutorial instalarás el servidor de CS2 en Ubuntu 24.04, lo registrarás con un token de Steam (GSLT), configurarás el modo competitivo y lo ejecutarás como servicio systemd. ## Requisitos previos Para seguir esta guía necesitas: - Un servidor con Ubuntu 24.04 LTS (x86_64), por ejemplo un VPS de CubePath, con al menos 2 núcleos de CPU y 4 GB de RAM para una partida de 10 jugadores. La frecuencia de la CPU importa más que el número de núcleos. - Unos 60 GB libres en disco: los archivos del servidor ocupan casi lo mismo que el juego completo. - Un usuario no root con privilegios `sudo`. - Una cuenta de Steam con CS2 para generar el token GSLT. La cuenta no puede estar limitada (debe haber gastado al menos 5 USD en Steam) y necesita un número de teléfono asociado. ## Paso 1: Instalar SteamCMD SteamCMD está en el repositorio `multiverse` de Ubuntu y necesita bibliotecas de 32 bits, así que activa ambos primero: ```bash sudo add-apt-repository multiverse sudo dpkg --add-architecture i386 sudo apt update ``` Instala el paquete. Durante la instalación se te pedirá aceptar la licencia de Steam; selecciona **I AGREE** para continuar: ```bash sudo apt install steamcmd ``` El binario queda en `/usr/games/steamcmd`. Compruébalo: ```bash ls -l /usr/games/steamcmd ``` ## Paso 2: Crear un usuario dedicado Un servidor de juegos nunca debe ejecutarse como root. Crea un usuario normal llamado `steam` que será el propietario de los archivos del servidor: ```bash sudo useradd -m -s /bin/bash steam ``` Cambia a ese usuario para los siguientes pasos: ```bash sudo -iu steam ``` ## Paso 3: Descargar el servidor de CS2 El servidor dedicado de CS2 se descarga con el mismo ID de aplicación que el juego, `730`, y no requiere iniciar sesión con una cuenta de Steam. Ten en cuenta que `+force_install_dir` debe ir antes de `+login`: ```bash /usr/games/steamcmd +force_install_dir /home/steam/cs2 +login anonymous +app_update 730 validate +quit ``` La descarga es de varias decenas de GB, así que tardará un rato según la conexión. Termina con: ```output Success! App '730' fully installed. ``` El servidor necesita la biblioteca `steamclient.so` en `~/.steam/sdk64/`, y si no la encuentra se detiene con el error `failed to load steamclient.so`. La forma más fiable de tenerla es instalar el paquete Steamworks SDK Redist (aplicación `1007`) y enlazar su biblioteca: ```bash /usr/games/steamcmd +force_install_dir /home/steam/steamworks-sdk +login anonymous +app_update 1007 +quit mkdir -p ~/.steam/sdk64 ln -sf /home/steam/steamworks-sdk/linux64/steamclient.so ~/.steam/sdk64/steamclient.so ``` Comprueba que el binario del servidor y el enlace existen: ```bash ls -l /home/steam/cs2/game/bin/linuxsteamrt64/cs2 ~/.steam/sdk64/steamclient.so ``` ## Paso 4: Obtener un token GSLT Un Game Server Login Token (GSLT) asocia el servidor a tu cuenta de Steam. Valve lo exige para que un servidor de CS2 sea accesible desde Internet y aparezca en el navegador de servidores; sin él, el servidor solo funciona en modo LAN. 1. Abre [https://steamcommunity.com/dev/managegameservers](https://steamcommunity.com/dev/managegameservers) e inicia sesión. 2. En **App ID** escribe `730`, que es el ID de CS2. 3. En **Memo** pon un nombre que identifique el servidor, por ejemplo `cs2-cubepath`. 4. Pulsa **Create** y copia el valor de la columna **Login Token**. Cada token solo puede usarlo un servidor a la vez. Trátalo como una contraseña: si se filtra, puedes regenerarlo desde la misma página. ## Paso 5: Configurar server.cfg Los ajustes del servidor van en `server.cfg`, dentro del directorio `game/csgo/cfg`. Créalo como usuario `steam`: ```bash nano /home/steam/cs2/game/csgo/cfg/server.cfg ``` ```text hostname "CubePath CS2" sv_password "tu_contraseña_servidor" rcon_password "tu_contraseña_rcon" sv_lan 0 sv_cheats 0 ``` Sustituye `tu_contraseña_servidor` y `tu_contraseña_rcon` por contraseñas propias y distintas. Qué hace cada línea: - `hostname`: el nombre que verán los jugadores en el navegador de servidores. - `sv_password`: la contraseña para entrar. Déjala vacía (`""`) para un servidor abierto. - `rcon_password`: la contraseña de la consola remota, que permite administrar el servidor desde el juego. - `sv_lan 0`: permite conexiones desde Internet. Los ajustes propios de cada modo (duración de las rondas, dinero inicial, número de rondas) se definen en los archivos `gamemode_*.cfg` del mismo directorio. Para cambiar alguno sin tocar los archivos del juego, crea el archivo `_server.cfg` correspondiente, por ejemplo `gamemode_competitive_server.cfg` para el modo competitivo, y pon ahí solo las variables que quieras cambiar: ```bash nano /home/steam/cs2/game/csgo/cfg/gamemode_competitive_server.cfg ``` ```text mp_maxrounds 24 mp_overtime_enable 1 ``` Vuelve a tu usuario con sudo: ```bash exit ``` ## Paso 6: Crear el servicio systemd El modo de juego se elige al arrancar con las variables `game_type` y `game_mode`: | Modo | `game_type` | `game_mode` | |------|-------------|-------------| | Casual | 0 | 0 | | Competitivo | 0 | 1 | | Wingman | 0 | 2 | | Carrera armamentística | 1 | 0 | | Deathmatch | 1 | 2 | Guarda el token GSLT en un archivo de entorno que solo pueda leer root, para no dejarlo en la unidad: ```bash sudo install -m 600 /dev/null /etc/cs2-server.env sudo nano /etc/cs2-server.env ``` ```ini CS2_GSLT=tu_token_gslt ``` Crea la unidad de systemd: ```bash sudo nano /etc/systemd/system/cs2.service ``` ```ini [Unit] Description=Counter-Strike 2 dedicated server Wants=network-online.target After=network-online.target [Service] Type=simple User=steam Group=steam WorkingDirectory=/home/steam/cs2 EnvironmentFile=/etc/cs2-server.env ExecStartPre=-/usr/games/steamcmd +force_install_dir /home/steam/cs2 +login anonymous +app_update 730 +quit ExecStart=/home/steam/cs2/game/bin/linuxsteamrt64/cs2 -dedicated -port 27015 -maxplayers 10 +game_type 0 +game_mode 1 +map de_dust2 +sv_setsteamaccount ${CS2_GSLT} +exec server.cfg TimeoutStartSec=1800 Restart=on-failure RestartSec=10 [Install] WantedBy=multi-user.target ``` Algunos detalles de la unidad: - `ExecStartPre` busca actualizaciones del juego antes de cada arranque. Cuando Valve publica un parche, los clientes actualizados no pueden entrar en un servidor antiguo, así que basta con reiniciar el servicio. El `-` inicial permite arrancar aunque Steam no responda, y `TimeoutStartSec` deja margen para descargas grandes. - `-maxplayers 10` es adecuado para partidas competitivas 5 contra 5. Súbelo para casual o deathmatch. - `+map de_dust2` es el mapa inicial. Puedes usar cualquier mapa oficial, como `de_mirage`, `de_inferno` o `de_nuke`. Recarga systemd y arranca el servidor: ```bash sudo systemctl daemon-reload sudo systemctl enable --now cs2 ``` ## Paso 7: Comprobar que el servidor funciona Sigue el log mientras arranca. Cuando se conecta a Steam con el token, verás una línea similar a esta: ```bash sudo journalctl -u cs2 -f ``` ```output ... Connection to Steam servers successful. ``` Pulsa `CTRL+C` para salir del log. El servicio debe estar `active (running)` y escuchando en el puerto 27015: ```bash sudo systemctl status cs2 --no-pager sudo ss -ulpn | grep 27015 ``` ```output UNCONN 0 0 0.0.0.0:27015 0.0.0.0:* users:(("cs2",pid=5123,fd=...)) ``` ## Paso 8: Abrir el cortafuegos CS2 usa el puerto 27015 en UDP para el juego y en TCP para la consola remota (RCON). Si tienes UFW activado, permite ambos: ```bash sudo ufw allow 27015/udp sudo ufw allow 27015/tcp sudo ufw status ``` Conéctate desde el juego: activa la consola de desarrollador en **Ajustes > Juego > Activar consola de desarrollador**, ábrela con la tecla `º` (o `~`) y escribe: ```text connect ip_de_tu_servidor:27015; password tu_contraseña_servidor ``` ## Paso 9: Administrar el servidor con RCON Con RCON puedes cambiar de mapa o expulsar jugadores desde la consola del juego, sin acceder al servidor. Una vez dentro de la partida, autentícate y lanza comandos con el prefijo `rcon`: ```text rcon_password tu_contraseña_rcon rcon changelevel de_mirage rcon status rcon mp_restartgame 1 ``` - `changelevel` cambia el mapa sin desconectar a los jugadores. - `status` muestra los jugadores conectados y su ID de usuario. - `mp_restartgame 1` reinicia la partida al cabo de un segundo. - `kickid ` expulsa a un jugador usando el ID que muestra `status`. Para aplicar cambios de `server.cfg` o del modo de juego definido en la unidad, reinicia el servicio: ```bash sudo systemctl restart cs2 ``` ## Solución de problemas - **`failed to load steamclient.so` en el log.** Falta el enlace del paso 3 o apunta a una ruta que no existe. Revisa `ls -l /home/steam/.steam/sdk64/steamclient.so` como usuario `steam`. - **El servidor arranca pero solo en modo LAN.** El token GSLT falta, es incorrecto o está en uso por otro servidor. Revisa `/etc/cs2-server.env` y genera un token nuevo si hace falta. - **Los jugadores ven un error de versión al conectar.** El servidor no está actualizado. Ejecuta `sudo systemctl restart cs2` para que `ExecStartPre` descargue el parche. - **Nadie puede conectarse.** Comprueba que el puerto 27015/udp está abierto en UFW y en cualquier cortafuegos externo, y que te conectas a la IP pública del servidor. ## Conclusión Ya tienes un servidor dedicado de Counter-Strike 2 en Ubuntu 24.04, registrado con tu token GSLT, en modo competitivo y gestionado por systemd, que se actualiza en cada reinicio. Como siguientes pasos puedes crear archivos `_server.cfg` para otros modos, programar un reinicio diario con un temporizador de systemd para aplicar parches automáticamente o añadir un segundo servidor con otro puerto y otro token.