--- title: "Cómo instalar un servidor TeamSpeak 3 en Ubuntu 24.04" description: "Instala TeamSpeak 3 Server en Ubuntu 24.04 con un usuario dedicado y systemd, reclama la clave de administrador y gestiona el servidor desde ServerQuery." category: "VoIP y Comunicación" language: es source: https://cubepath.com/es/docs/voip-y-comunicación/instalacion-de-teamspeak-server-en-linux updated: 2026-09-25 --- # Cómo instalar un servidor TeamSpeak 3 en Ubuntu 24.04 TeamSpeak es un sistema de chat de voz muy extendido entre comunidades de juego y equipos de trabajo, con buena calidad de audio y un sistema de permisos muy detallado. El servidor de TeamSpeak 3 se distribuye como un binario para Linux que no está en los repositorios de Ubuntu. En este tutorial lo instalarás en Ubuntu 24.04 con un usuario sin privilegios, lo ejecutarás como servicio systemd, reclamarás los permisos de administrador y harás tareas básicas desde ServerQuery. ## Requisitos previos - Un servidor con Ubuntu 24.04 LTS de 64 bits (x86_64), por ejemplo un VPS de CubePath. Con 1 GB de RAM es suficiente. - Un usuario no root con privilegios `sudo`. - UFW activo con el acceso SSH permitido. - El cliente de TeamSpeak instalado en tu ordenador. TeamSpeak 3 Server usa estos puertos: | Puerto | Protocolo | Uso | ¿Abrir en el firewall? | |--------|-----------|-----|------------------------| | 9987 | UDP | Voz (servidor virtual por defecto) | Sí | | 30033 | TCP | Transferencia de archivos | Sí | | 10011 | TCP | ServerQuery en texto plano | No | | 10022 | TCP | ServerQuery por SSH | Solo si lo necesitas | > Nota: sin archivo de licencia, TeamSpeak 3 Server funciona con la licencia integrada gratuita, que permite un servidor virtual con hasta 32 usuarios simultáneos. ## Paso 1: Crear un usuario dedicado El servidor no necesita privilegios de root, así que lo ejecutarás con un usuario de sistema propio, sin shell de login, cuyo directorio personal será `/opt/teamspeak`: ```bash sudo adduser --system --group --home /opt/teamspeak --shell /usr/sbin/nologin teamspeak ``` Comprueba que el usuario existe: ```bash id teamspeak ``` ```output uid=112(teamspeak) gid=113(teamspeak) groups=113(teamspeak) ``` ## Paso 2: Descargar y verificar TeamSpeak 3 Server Consulta la versión más reciente en la [página de descargas de TeamSpeak](https://www.teamspeak.com/en/downloads/#server). En el momento de escribir este tutorial es la 3.13.7. Descarga el archivo en tu directorio personal: ```bash cd ~ wget https://files.teamspeak-services.com/releases/server/3.13.7/teamspeak3-server_linux_amd64-3.13.7.tar.bz2 ``` Calcula su suma SHA256 y compárala con la que aparece en la página de descargas: ```bash sha256sum teamspeak3-server_linux_amd64-3.13.7.tar.bz2 ``` ```output 775a5731a9809801e4c8f9066cd9bc562a1b368553139c1249f2a0740d50041e teamspeak3-server_linux_amd64-3.13.7.tar.bz2 ``` Extrae el contenido directamente en `/opt/teamspeak` y asigna la propiedad al usuario `teamspeak`: ```bash sudo tar -xjf teamspeak3-server_linux_amd64-3.13.7.tar.bz2 -C /opt/teamspeak --strip-components=1 sudo chown -R teamspeak:teamspeak /opt/teamspeak ``` Comprueba que el binario y los scripts de arranque están en su sitio: ```bash ls /opt/teamspeak/ts3server* ``` ```output /opt/teamspeak/ts3server /opt/teamspeak/ts3server_minimal_runscript.sh /opt/teamspeak/ts3server_startscript.sh ``` ## Paso 3: Aceptar la licencia TeamSpeak no arranca hasta que aceptas su licencia. Léela en `/opt/teamspeak/LICENSE` y, si estás de acuerdo, créala como aceptada con un archivo vacío: ```bash sudo -u teamspeak touch /opt/teamspeak/.ts3server_license_accepted ``` ## Paso 4: Crear el servicio systemd Un servicio systemd arranca TeamSpeak con el sistema, lo reinicia si falla y guarda su salida en el journal. Crea el archivo de la unidad: ```bash sudo nano /etc/systemd/system/teamspeak.service ``` ```ini [Unit] Description=TeamSpeak 3 Server After=network-online.target Wants=network-online.target [Service] Type=simple User=teamspeak Group=teamspeak WorkingDirectory=/opt/teamspeak ExecStart=/opt/teamspeak/ts3server_minimal_runscript.sh Restart=on-failure RestartSec=10 [Install] WantedBy=multi-user.target ``` `ts3server_minimal_runscript.sh` ejecuta el servidor en primer plano, que es lo que espera `Type=simple`. Recarga systemd y arranca el servicio: ```bash sudo systemctl daemon-reload sudo systemctl enable --now teamspeak sudo systemctl status teamspeak ``` ```output ● teamspeak.service - TeamSpeak 3 Server Loaded: loaded (/etc/systemd/system/teamspeak.service; enabled; preset: enabled) Active: active (running) since ... ``` ## Paso 5: Guardar las credenciales de administrador En el primer arranque, TeamSpeak crea la base de datos SQLite y muestra dos credenciales que no vuelve a enseñar: la contraseña de la cuenta de ServerQuery `serveradmin` y un token de privilegio para convertirte en administrador del servidor virtual. Como la salida va al journal, puedes recuperarlas así: ```bash sudo journalctl -u teamspeak --no-pager | grep -E 'loginname|token=' ``` ```output ... loginname= "serveradmin", password= "fR3kXz9q" ... token=AbCdEfGhIjKlMnOpQrStUvWxYz0123456789abcd ``` Copia ambos valores a tu gestor de contraseñas ahora. El token solo sirve una vez; la contraseña de `serveradmin` la usarás para ServerQuery. Comprueba también que el servidor escucha en los puertos esperados: ```bash sudo ss -tulpn | grep ts3server ``` ```output udp UNCONN 0 0 0.0.0.0:9987 0.0.0.0:* users:(("ts3server",pid=3120,fd=12)) tcp LISTEN 0 128 0.0.0.0:30033 0.0.0.0:* users:(("ts3server",pid=3120,fd=20)) tcp LISTEN 0 128 0.0.0.0:10011 0.0.0.0:* users:(("ts3server",pid=3120,fd=18)) tcp LISTEN 0 128 0.0.0.0:10022 0.0.0.0:* users:(("ts3server",pid=3120,fd=19)) ``` ## Paso 6: Abrir los puertos en el firewall Abre solo los puertos que necesitan los clientes: la voz y la transferencia de archivos. ServerQuery se queda cerrado al exterior y lo usarás desde el propio servidor: ```bash sudo ufw allow 9987/udp comment 'TeamSpeak voz' sudo ufw allow 30033/tcp comment 'TeamSpeak archivos' sudo ufw status ``` ```output To Action From -- ------ ---- OpenSSH ALLOW Anywhere 9987/udp ALLOW Anywhere # TeamSpeak voz 30033/tcp ALLOW Anywhere # TeamSpeak archivos ``` ## Paso 7: Conectarte y reclamar los permisos de administrador En el cliente de TeamSpeak, conéctate a `your_server_ip` (o a tu dominio, si tiene un registro A apuntando al servidor) con el apodo que quieras. En la primera conexión como único usuario, el cliente suele pedir directamente la clave de privilegio. Si no lo hace, ve a **Permisos > Usar clave de privilegio** y pega el token del paso 5. Tu usuario pasa a pertenecer al grupo **Server Admin**. Compruébalo en la ventana de información de tu cliente, o simplemente haz clic derecho en el servidor y verifica que puedes crear canales con **Crear canal**. Desde aquí puedes crear la estructura de canales, asignar grupos a otros usuarios (clic derecho sobre el usuario > **Establecer grupos de servidor**) y ajustar permisos en **Permisos > Grupos de servidor**. ## Paso 8: Administrar el servidor con ServerQuery ServerQuery es la interfaz de comandos de TeamSpeak. Por defecto solo acepta conexiones sin límite de velocidad desde `127.0.0.1`, así que conéctate desde el propio servidor con `nc`: ```bash nc 127.0.0.1 10011 ``` ```output TS3 Welcome to the TeamSpeak 3 ServerQuery interface, type "help" for a list of commands and "help " for information on a specific command. ``` Inicia sesión con la contraseña de `serveradmin` y selecciona el servidor virtual 1: ```text login serveradmin your_serveradmin_password use sid=1 ``` Cada comando correcto responde con `error id=0 msg=ok`. Algunos comandos útiles: ```text serverinfo clientlist channelcreate channel_name=General channel_flag_permanent=1 serveredit virtualserver_name=Mi\sservidor\sTeamSpeak ``` ServerQuery escapa los espacios como `\s`, por eso el nombre del servidor se escribe `Mi\sservidor\sTeamSpeak`. Para expulsar a un usuario, busca su `clid` en `clientlist` y ejecuta: ```text clientkick clid=5 reasonid=5 reasonmsg=Spam ``` Cierra la sesión con: ```text quit ``` > Importante: no abras el puerto 10011 a internet. Viaja en texto plano, incluida la contraseña. Si necesitas administrar en remoto, usa un túnel SSH (`ssh -L 10011:127.0.0.1:10011 your_user@your_server_ip`) o el ServerQuery por SSH del puerto 10022 limitado a tu IP con UFW. ## Paso 9: Hacer copias de seguridad Toda la configuración (canales, grupos, permisos, usuarios registrados) vive en la base de datos SQLite `ts3server.sqlitedb`, y los archivos subidos por los usuarios en el subdirectorio `files`. Para una copia consistente, detén el servicio, archiva el directorio completo de la instalación (ocupa pocos megas) y vuelve a arrancar: ```bash sudo systemctl stop teamspeak sudo tar -czf ~/teamspeak-backup-$(date +%F).tar.gz -C /opt teamspeak sudo systemctl start teamspeak ``` Comprueba que la base de datos está dentro de la copia: ```bash tar -tzf ~/teamspeak-backup-$(date +%F).tar.gz | grep sqlitedb ``` ```output teamspeak/ts3server.sqlitedb ``` Guarda la copia fuera del servidor. Para restaurar, extráela en `/opt` con el servicio parado y revisa que la propiedad sigue siendo del usuario `teamspeak`. ## Solución de problemas **El servicio se detiene nada más arrancar.** Revisa el journal con `sudo journalctl -u teamspeak -n 50`. Si menciona la licencia, falta el archivo `.ts3server_license_accepted` o no pertenece al usuario `teamspeak`. Corrige la propiedad con `sudo chown -R teamspeak:teamspeak /opt/teamspeak`. **Perdiste la contraseña de serveradmin.** Detén el servicio y arranca el servidor una vez a mano con el parámetro `serveradmin_password`: ```bash sudo systemctl stop teamspeak sudo -u teamspeak /opt/teamspeak/ts3server_minimal_runscript.sh serveradmin_password=your_new_password ``` Cuando veas que el servidor ha arrancado, deténlo con `Ctrl+C` y vuelve a iniciar el servicio con `sudo systemctl start teamspeak`. **Los clientes no conectan.** Comprueba que el puerto 9987/udp está abierto en UFW y en cualquier firewall del panel de tu proveedor, y que `ss -tulpn` muestra `ts3server` escuchando en UDP 9987. **Las subidas de archivos fallan.** Falta abrir el puerto 30033/tcp. ## Conclusión Tienes TeamSpeak 3 Server en Ubuntu 24.04 ejecutándose como servicio con un usuario sin privilegios, con permisos de administrador reclamados, ServerQuery accesible solo desde el propio servidor y un método de copia de seguridad. Como siguientes pasos puedes programar la copia con un timer de systemd, dar de alta un registro SRV `_ts3._udp` en tu DNS para conectar por nombre sin indicar el puerto, o solicitar una licencia si necesitas más de 32 usuarios.