--- title: "Cómo instalar SteamCMD en Ubuntu 24.04 para servidores" description: "Instala SteamCMD en Ubuntu 24.04, descarga servidores dedicados de Steam con su app ID, actualízalos con scripts y un timer de systemd y gestiona el Workshop." category: "Servidores de Juegos" language: es source: https://cubepath.com/es/docs/servidores-de-juegos/instalacion-de-steamcmd-y-gestion-de-servidor-de-juegos updated: 2026-09-25 --- # Cómo instalar SteamCMD en Ubuntu 24.04 para servidores SteamCMD es la versión de línea de comandos del cliente de Steam, pensada para instalar y actualizar servidores dedicados de juegos como Valheim, Counter-Strike 2, Rust o Project Zomboid. En este tutorial instalarás SteamCMD desde los repositorios de Ubuntu 24.04, descargarás un servidor dedicado con un usuario sin privilegios, aprenderás a actualizarlo y a elegir ramas beta, y automatizarás las actualizaciones con un script de SteamCMD y un timer de systemd. ## Requisitos previos - Un servidor con Ubuntu 24.04 LTS de 64 bits, por ejemplo un VPS de CubePath. - Un usuario no root con privilegios `sudo`. - Espacio en disco suficiente para el juego: desde 2 GB (Valheim) hasta más de 30 GB (CS2 o ARK). - Opcional: una cuenta de Steam, solo para servidores que no permiten la descarga anónima. ## Paso 1: Instalar SteamCMD SteamCMD es un binario de 32 bits y en Ubuntu se publica en el componente `multiverse`. Actívalo, añade la arquitectura `i386` e instala el paquete: ```bash sudo add-apt-repository multiverse sudo dpkg --add-architecture i386 sudo apt update sudo apt install steamcmd ``` El instalador muestra el acuerdo de licencia de Steam; selecciona **Aceptar**. El comando queda en `/usr/games/steamcmd`: ```bash command -v steamcmd ``` ```output /usr/games/steamcmd ``` > Nota: en Debian 12 el paquete está en el componente `non-free` en lugar de `multiverse`. En distribuciones sin paquete puedes descargar el archivo oficial `steamcmd_linux.tar.gz` de Valve en el directorio del usuario y ejecutar `steamcmd.sh`; los comandos del resto de la guía son los mismos. ## Paso 2: Crear un usuario para los servidores Ejecuta SteamCMD y los servidores con un usuario dedicado, nunca como root. Así un fallo en un servidor de juego no compromete el sistema: ```bash sudo useradd --create-home --shell /bin/bash steam ``` La primera ejecución descarga la última versión de SteamCMD en el directorio del usuario. Lánzalo una vez y sal: ```bash sudo -u steam /usr/games/steamcmd +quit ``` ```output [ 0%] Checking for available updates... [----] Downloading update (...) ... Loading Steam API...OK ``` ## Paso 3: Encontrar el app ID del servidor Cada servidor dedicado tiene un **app ID** propio, que a menudo no coincide con el del juego. Algunos de los más habituales, todos descargables con sesión anónima: | Servidor dedicado | App ID | | --- | --- | | Counter-Strike 2 | 730 | | Team Fortress 2 | 232250 | | Valheim | 896660 | | Rust | 258550 | | Project Zomboid | 380870 | | 7 Days to Die | 294420 | | ARK: Survival Evolved | 376030 | | Palworld | 2394010 | Para cualquier otro juego, busca " Dedicated Server" en SteamDB y usa el app ID de tipo *Tool* que aparece allí, o consulta la documentación del propio juego. ## Paso 4: Descargar un servidor dedicado La orden básica tiene tres partes: el directorio de instalación, el inicio de sesión y la descarga. `+force_install_dir` debe ir antes de `+login`, y cada juego debe tener su propio directorio. Por ejemplo, para el servidor de Valheim: ```bash sudo -u steam /usr/games/steamcmd \ +force_install_dir /home/steam/servers/valheim \ +login anonymous \ +app_update 896660 validate \ +quit ``` `validate` comprueba todos los archivos contra los de Steam y repara los que falten o estén dañados. Al terminar verás: ```output Success! App '896660' fully installed. ``` Comprueba que el servidor está en disco: ```bash sudo -u steam ls /home/steam/servers/valheim ``` ```output start_server.sh valheim_server.x86_64 valheim_server_Data steamapps ... ``` Cómo se arranca y configura cada servidor depende del juego; consulta su documentación o la guía específica de ese juego. ### Servidores que requieren una cuenta de Steam Si la descarga anónima falla con `ERROR! Failed to install app 'XXXX' (No subscription)`, el servidor exige una cuenta que tenga el juego. Crea una cuenta de Steam dedicada solo para esto e inicia sesión de forma interactiva la primera vez, para introducir la contraseña y el código de Steam Guard: ```bash sudo -u steam /usr/games/steamcmd +login your_steam_user +quit ``` SteamCMD guarda la sesión en el directorio personal del usuario `steam`, de modo que las siguientes ejecuciones con `+login your_steam_user` ya no piden contraseña. No escribas la contraseña en scripts ni en crontab. ## Paso 5: Actualizar servidores y usar ramas beta Para actualizar un servidor basta con repetir `app_update` sobre el mismo directorio: solo se descargan los archivos que han cambiado. Detén siempre el servidor antes, porque sus binarios están en uso: ```bash sudo -u steam /usr/games/steamcmd \ +force_install_dir /home/steam/servers/valheim \ +login anonymous \ +app_update 896660 \ +quit ``` Para ver la versión instalada (el *build ID*) y el estado del servidor, usa `app_status`: ```bash sudo -u steam /usr/games/steamcmd \ +force_install_dir /home/steam/servers/valheim \ +login anonymous \ +app_status 896660 \ +quit ``` ```output AppID 896660 (Valheim Dedicated Server): - release state: Fully Installed, - install dir: "/home/steam/servers/valheim" - size on disk: 1843204521 bytes, BuildID 19123456 ``` Muchos juegos publican versiones de prueba en ramas beta. Para cambiar de rama, añade `-beta` con su nombre (y `-betapassword` si la rama es privada). Para volver a la versión estable, usa `-beta public`: ```bash sudo -u steam /usr/games/steamcmd \ +force_install_dir /home/steam/servers/valheim \ +login anonymous \ +app_update 896660 -beta public_test validate \ +quit ``` El nombre de la rama (`public_test` en el ejemplo) lo publica cada juego. Los clientes deben estar en la misma rama que el servidor. ## Paso 6: Automatizar las actualizaciones Cuando mantienes varios servidores, en lugar de repetir argumentos largos conviene un script de SteamCMD que se carga con `+runscript`. Crea uno por servidor: ```bash sudo -u steam mkdir -p /home/steam/scripts sudo -u steam nano /home/steam/scripts/valheim.txt ``` ```text force_install_dir /home/steam/servers/valheim login anonymous app_update 896660 quit ``` Pruébalo: ```bash sudo -u steam /usr/games/steamcmd +runscript /home/steam/scripts/valheim.txt ``` Ahora crea un servicio systemd de tipo `oneshot` que pare el servidor, actualice y lo vuelva a arrancar. En este ejemplo el servidor se ejecuta como `valheim.service`; ajusta el nombre al tuyo: ```bash sudo nano /etc/systemd/system/valheim-update.service ``` ```ini [Unit] Description=Update Valheim dedicated server with SteamCMD After=network-online.target Wants=network-online.target [Service] Type=oneshot User=steam Group=steam ExecStartPre=+/usr/bin/systemctl stop valheim.service ExecStart=/usr/games/steamcmd +runscript /home/steam/scripts/valheim.txt ExecStopPost=+/usr/bin/systemctl start valheim.service TimeoutStartSec=1h ``` SteamCMD se ejecuta como `steam`, mientras que el prefijo `+` hace que las órdenes de parada y arranque se ejecuten como root. `ExecStopPost` vuelve a arrancar el servidor incluso si la actualización falla, para que no quede parado. Y un timer que lo lance cada día a las 05:00: ```bash sudo nano /etc/systemd/system/valheim-update.timer ``` ```ini [Unit] Description=Daily Valheim server update [Timer] OnCalendar=*-*-* 05:00:00 Persistent=true [Install] WantedBy=timers.target ``` Activa el timer y ejecuta el servicio una vez a mano para probarlo: ```bash sudo systemctl daemon-reload sudo systemctl enable --now valheim-update.timer sudo systemctl start valheim-update.service sudo journalctl -u valheim-update.service -n 20 ``` Comprueba la próxima ejecución programada: ```bash systemctl list-timers valheim-update.timer ``` ```output NEXT LEFT LAST PASSED UNIT ACTIVATES Fri 2026-09-26 05:00:00 UTC 13h left - - valheim-update.timer valheim-update.service ``` > Consejo: haz una copia de seguridad de las partidas antes de actualizar. Puedes añadir otra línea `ExecStartPre=` con tu script de copia, justo después de parar el servidor. ## Paso 7: Descargar contenido del Workshop Algunos servidores necesitan que descargues los mods del Steam Workshop con SteamCMD. El comando es `workshop_download_item`, con el app ID **del juego** (no del servidor) y el ID del ítem, que es el número de la URL de su página: ```bash sudo -u steam /usr/games/steamcmd \ +force_install_dir /home/steam/servers/juego \ +login anonymous \ +workshop_download_item 107410 123456789 \ +quit ``` ```output Success. Downloaded item 123456789 to "/home/steam/servers/juego/steamapps/workshop/content/107410/123456789" (...) ``` El ejemplo usa el app ID de Arma 3 (`107410`) y un ítem ficticio. Muchos juegos solo permiten descargar su Workshop con una cuenta que posea el juego; si la sesión anónima falla, usa `+login your_steam_user`. Después copia o enlaza el contenido donde lo espere el servidor, según la documentación del juego. Otros juegos, como Project Zomboid, descargan los mods por sí mismos al arrancar. ## Solución de problemas - **`ERROR! Failed to install app 'XXXX' (No subscription)`**: el servidor no admite descarga anónima o el app ID es el del juego y no el del servidor dedicado. Revisa el app ID o inicia sesión con una cuenta que tenga el juego. - **`ERROR! Failed to install app 'XXXX' (Disk write failure)`**: el usuario `steam` no puede escribir en el directorio o no hay espacio. Comprueba con `df -h` y `ls -ld` que el directorio pertenece a `steam`. - **`Please use force_install_dir before logon!`**: el orden de los argumentos es incorrecto. Pon `+force_install_dir` antes de `+login`. - **La descarga se interrumpe o da un error de tiempo de espera**: vuelve a lanzar el mismo comando; SteamCMD continúa donde se quedó. Si persiste, añade `validate`. - **`steamcmd: command not found`**: usa la ruta completa `/usr/games/steamcmd`; algunos entornos (cron, sudo con `secure_path`) no incluyen `/usr/games` en `PATH`. ## Conclusión Has instalado SteamCMD en Ubuntu 24.04, descargado un servidor dedicado con un usuario sin privilegios, aprendido a actualizarlo y cambiar de rama, y automatizado las actualizaciones con un script de SteamCMD y un timer de systemd. Como siguientes pasos puedes montar un servidor concreto, como Project Zomboid o Valheim, gestionar varios servidores con LinuxGSM o administrarlos desde un panel web como Pterodactyl.