--- title: "Instalar un servidor de Terraria con TShock en Ubuntu 24.04" description: "Instala un servidor de Terraria con TShock en Ubuntu 24.04, gestiónalo con systemd y tmux, crea la cuenta de administrador y haz copias diarias del mundo." category: "Servidores de Juegos" language: es source: https://cubepath.com/es/docs/servidores-de-juegos/instalacion-de-servidor-terraria-en-linux updated: 2026-09-25 --- # Instalar un servidor de Terraria con TShock en Ubuntu 24.04 TShock es un servidor de Terraria mantenido por la comunidad que se basa en el servidor oficial y le añade cuentas de usuario, grupos de permisos, regiones protegidas, baneos persistentes y soporte para plugins. En este tutorial instalarás TShock en Ubuntu 24.04, generarás un mundo, lo ejecutarás como servicio systemd dentro de una sesión `tmux` para conservar el acceso a la consola, crearás tu cuenta de administrador, abrirás el cortafuegos y programarás copias de seguridad. ## Requisitos previos Para seguir esta guía necesitas: - Un servidor con Ubuntu 24.04 LTS (x86_64), por ejemplo un VPS de CubePath. Con 1 núcleo de CPU y 2 GB de RAM basta para un grupo pequeño en un mundo mediano; los mundos grandes con muchos jugadores necesitan más memoria. - Un usuario no root con privilegios `sudo`. - Terraria para PC en la misma versión para la que está compilado TShock. Cada versión de TShock indica en su nombre la versión de Terraria compatible. ## Paso 1: Instalar los paquetes necesarios TShock se distribuye como archivo ZIP y las compilaciones para Linux incluyen su propio runtime de .NET, así que no necesitas instalar .NET aparte. Solo hacen falta `unzip`, `tmux` para mantener la consola interactiva en segundo plano y la biblioteca ICU que usa .NET: ```bash sudo apt update sudo apt install unzip tmux libicu74 ``` ## Paso 2: Crear un usuario dedicado Ejecuta el servidor con su propia cuenta sin privilegios, nunca como root: ```bash sudo useradd -m -s /bin/bash terraria sudo -iu terraria ``` El resto de este paso y el siguiente se ejecutan como el usuario `terraria`. ## Paso 3: Descargar TShock Abre la página de versiones del proyecto en GitHub, [github.com/Pryaxis/TShock/releases](https://github.com/Pryaxis/TShock/releases), y copia el enlace del archivo para **Linux x64** de la última versión estable. Descárgalo con ese enlace: ```bash wget -O tshock.zip "URL_DEL_ARCHIVO_LINUX_X64" mkdir -p ~/tshock unzip tshock.zip -d ~/tshock rm tshock.zip ls ~/tshock ``` En las versiones recientes el ZIP contiene a su vez un archivo `.tar` que conserva los permisos de ejecución. Si lo ves en el listado, extráelo en el mismo directorio y bórralo: ```bash cd ~/tshock tar -xf TShock-*.tar rm TShock-*.tar ls ``` Deberías ver el ejecutable `TShock.Server` junto a sus bibliotecas y el directorio `ServerPlugins`. Crea también el directorio donde vivirán los mundos: ```bash mkdir -p ~/worlds ``` ## Paso 4: Primer arranque y creación del mundo Arranca el servidor una vez a mano para que genere el mundo y los archivos de configuración. Los argumentos son los mismos que los del servidor oficial: `-world` es la ruta del mundo, `-autocreate` su tamaño si todavía no existe (`1` pequeño, `2` mediano, `3` grande) y `-worldname` el nombre que se le da: ```bash cd ~/tshock ./TShock.Server -port 7777 -maxplayers 8 -world /home/terraria/worlds/CubePath.wld -autocreate 2 -worldname CubePath ``` Generar un mundo mediano tarda uno o dos minutos. Cuando termine, la consola muestra algo parecido a esto: ```output TShock Notice: To become SuperAdmin, join the game and type /setup 1234567 ... Listening on port 7777 Type 'help' for a list of commands. ``` Apunta el código de `/setup`: lo necesitarás en el paso 7. Escribe `off` en la consola para guardar el mundo y detener el servidor. Después de este arranque, `~/tshock/tshock/` contiene `config.json`, la base de datos `tshock.sqlite` con usuarios, grupos y baneos, y los logs. ## Paso 5: Configurar TShock Con el servidor detenido, edita la configuración principal: ```bash nano ~/tshock/tshock/config.json ``` Todas las opciones están dentro del objeto `Settings`. Cambia los valores de estas claves y deja el resto como está: ```json { "Settings": { "ServerPassword": "tu_contraseña_servidor", "ServerPort": 7777, "MaxSlots": 8, "RestApiEnabled": false } } ``` El bloque anterior solo muestra las claves que debes modificar; no sustituyas el archivo entero por él. - `ServerPassword` es la contraseña para entrar al servidor. Déjala vacía (`""`) para un servidor abierto. - `ServerPort` y `MaxSlots` son el puerto y el número máximo de jugadores. - `RestApiEnabled` activa la API REST de administración en el puerto 7878. Déjala desactivada si no la vas a usar. Comprueba que el JSON sigue siendo válido antes de continuar, ya que un error de sintaxis impide arrancar el servidor: ```bash python3 -m json.tool ~/tshock/tshock/config.json > /dev/null && echo OK ``` Sal del usuario `terraria`: ```bash exit ``` ## Paso 6: Ejecutar TShock con systemd y tmux La consola de TShock es interactiva y es donde se escriben los comandos de administración. Lo más práctico es arrancarlo dentro de una sesión `tmux` desacoplada y dejar que systemd gestione esa sesión: así arranca con el sistema, se reinicia si falla y puedes conectarte a la consola cuando quieras. Crea el archivo de la unidad: ```bash sudo nano /etc/systemd/system/terraria.service ``` ```ini [Unit] Description=Terraria TShock server Wants=network-online.target After=network-online.target [Service] Type=forking User=terraria Group=terraria WorkingDirectory=/home/terraria/tshock ExecStart=/usr/bin/tmux new-session -d -s terraria /home/terraria/tshock/TShock.Server -world /home/terraria/worlds/CubePath.wld ExecStop=/bin/sh -c '/usr/bin/tmux send-keys -t terraria off Enter; while /usr/bin/tmux has-session -t terraria 2>/dev/null; do sleep 1; done' TimeoutStopSec=90 Restart=on-failure RestartSec=10 [Install] WantedBy=multi-user.target ``` `ExecStop` escribe `off` en la consola, que guarda el mundo y apaga el servidor limpiamente, y espera a que la sesión desaparezca antes de dar el servicio por detenido. El puerto y el número de jugadores ya vienen de `config.json`. Arranca el servicio y actívalo al inicio: ```bash sudo systemctl daemon-reload sudo systemctl enable --now terraria sudo systemctl status terraria --no-pager ``` Comprueba que el servidor escucha en el puerto 7777: ```bash sudo ss -tlnp | grep 7777 ``` ```output LISTEN 0 ... 0.0.0.0:7777 0.0.0.0:* users:(("TShock.Server",pid=...,fd=...)) ``` Para abrir la consola como el usuario `terraria`: ```bash sudo -u terraria tmux attach -t terraria ``` En la consola los comandos se escriben sin barra: `help`, `who` (jugadores conectados), `save`, `kick ` o `say `. Para salir sin detener el servidor, desacopla tmux con `CTRL+B` y después `D`. No pulses `CTRL+C` ni escribas `off` salvo que quieras pararlo. ## Paso 7: Abrir el cortafuegos y crear la cuenta de administrador Terraria usa un único puerto TCP, el 7777 por defecto. Si tienes UFW activado, permítelo: ```bash sudo ufw allow 7777/tcp ``` En Terraria, elige **Multijugador**, después **Unirse por IP**, selecciona un personaje, escribe `ip_de_tu_servidor`, el puerto `7777` y la contraseña de `config.json`. Ya dentro, abre el chat y usa el código del paso 4 para activar el modo de configuración y crear tu cuenta en el grupo `owner`: ```text /setup 1234567 /user add tu_usuario tu_contraseña_admin owner /login tu_usuario tu_contraseña_admin /setup ``` El último `/setup`, ya con la sesión iniciada, desactiva el modo de configuración para que el código no se pueda volver a usar. Si has perdido el código, búscalo en el log de TShock en `/home/terraria/tshock/tshock/logs/`. Algunos comandos útiles desde el chat: | Comando | Qué hace | |---|---| | `/who` | Lista los jugadores conectados | | `/kick [motivo]` | Expulsa a un jugador | | `/ban add [motivo]` | Banea a un jugador de forma permanente | | `/region set 1`, `/region set 2`, `/region define ` | Marca dos esquinas y protege esa zona | | `/save` | Guarda el mundo | ## Paso 8: Copias de seguridad Lo que no puedes perder es el mundo (`/home/terraria/worlds`) y los datos de TShock (`/home/terraria/tshock/tshock`), que incluyen cuentas, grupos, regiones y baneos. El servidor guarda el mundo automáticamente, pero una copia en el mismo disco no te protege de un fallo de disco o de una partida corrupta. Crea un directorio de copias y programa un archivo diario a las 05:00 para el usuario `terraria`, conservando 14 días: ```bash sudo -u terraria mkdir -p /home/terraria/backups sudo -u terraria crontab -e ``` ```text 0 5 * * * tar -czf /home/terraria/backups/terraria-$(date +\%F).tar.gz -C /home/terraria worlds tshock/tshock && find /home/terraria/backups -name 'terraria-*.tar.gz' -mtime +14 -delete ``` El `%` va escapado porque cron interpreta un `%` sin escapar como salto de línea. Ejecuta el `tar` una vez a mano para comprobar que funciona y copia el directorio `backups` a otra máquina o a un almacenamiento de objetos con regularidad. ## Paso 9: Actualizar TShock Cuando sale una versión nueva de Terraria, los clientes actualizados no pueden entrar hasta que TShock publique una versión compatible. Cuando esté disponible, detén el servicio y reemplaza los binarios conservando el directorio `tshock` con tus datos: ```bash sudo systemctl stop terraria sudo -u terraria cp -a /home/terraria/tshock/tshock /home/terraria/tshock-data-antes-de-actualizar ``` Después descarga y extrae la versión nueva encima de la instalación actual, como en el paso 3, y vuelve a arrancar: ```bash sudo systemctl start terraria sudo journalctl -u terraria -n 20 ``` Los plugins de terceros en `ServerPlugins` pueden dejar de funcionar entre versiones mayores de TShock; actualízalos a la vez. ## Solución de problemas - **El servicio no arranca.** Revisa `sudo journalctl -u terraria -n 50` y el log más reciente en `/home/terraria/tshock/tshock/logs/`. Un `config.json` con errores de sintaxis o la falta del permiso de ejecución en `TShock.Server` son las causas más habituales. - **Error sobre ICU o globalización al arrancar.** Falta la biblioteca ICU. Instálala con `sudo apt install libicu74`. - **Los jugadores reciben un error de versión al entrar.** El cliente y el servidor son de versiones distintas de Terraria. Instala la versión de TShock que corresponde a la del juego. - **Nadie puede conectarse desde fuera.** Asegúrate de que TCP 7777 está abierto en UFW y en cualquier cortafuegos externo, y de que `ServerPort` coincide con el puerto al que te conectas. ## Conclusión Ya tienes un servidor de Terraria con TShock en Ubuntu 24.04 que funciona como servicio systemd, con consola accesible, una cuenta de administrador y copias diarias del mundo y de sus datos. Como siguientes pasos, puedes crear grupos propios con `/group add` y asignarles permisos con `/group addperm`, proteger zonas del mapa con regiones o instalar plugins copiando sus archivos `.dll` en `ServerPlugins`.