15%

Ahorra 15%<\/span> en todos los servicios de hosting

Pon a prueba tus habilidades y obtén Descuento<\/span> en cualquier plan de hosting

Usa el código:

Skills
Comenzar
09.10.2024

Cómo instalar el servidor TeamSpeak en un VPS (Guía Ubuntu/CentOS)

TeamSpeak es una plataforma de comunicación de voz autoalojada y de baja latencia que se ejecuta como un demonio de servidor independiente en Linux. Instalarlo en un VPS te otorga control administrativo completo sobre canales, permisos, códecs y políticas de seguridad, sin depender de infraestructura de terceros ni límites de uso.

Esta guía cubre la instalación completa de TeamSpeak 3 Server en Ubuntu (con notas para variantes CentOS/RHEL), incluyendo aislamiento de usuarios, configuración del servicio systemd, refuerzo de la contraseña de administrador y conexión del cliente. Cada comando está listo para producción y probado en un entorno limpio de 22.04 LTS.

Por qué autoalojar TeamSpeak en un VPS

Las plataformas de voz comerciales como Discord imponen políticas de retención de datos, moderación algorítmica y límites de velocidad que las organizaciones no pueden anular. Una instancia de TeamSpeak autoalojada elimina completamente esas restricciones. Tú controlas:

  • Calidad del códec (Opus Voice, Opus Music) y tasa de bits por canal
  • Sistema de permisos con ACLs granulares de grupos de servidor y grupos de canal
  • Cifrado mediante TLS para señalización y cifrado de voz opcional
  • Residencia de datos — tu tráfico de voz nunca transita por un relay de terceros
  • SLA de tiempo de actividad — vinculado directamente a tu proveedor de VPS, no a un servicio en la nube compartido

Para clanes de juegos, organizaciones de esports, equipos de desarrollo remoto y comunicaciones corporativas, esto se traduce en ventajas medibles de fiabilidad y cumplimiento normativo.

Requisitos mínimos del sistema

TeamSpeak 3 Server es excepcionalmente ligero. Las siguientes especificaciones soportan aproximadamente 50–100 usuarios concurrentes sin degradación de la calidad de audio:

RecursoMínimoRecomendado (100+ usuarios)
Núcleos CPU1 vCPU2 vCPU
RAM512 MB1 GB
Espacio en disco1 GB5 GB (logs + DB)
Red10 Mbps100 Mbps
SOUbuntu 20.04+ / CentOS 7+Ubuntu 22.04 LTS
Arquitecturax86_64 (amd64)x86_64 (amd64)

Un plan de VPS Hosting con 1 vCPU y 512 MB RAM es suficiente para una comunidad pequeña. Escala verticalmente a medida que crece el número de usuarios concurrentes.

Puertos clave para abrir en tu firewall:

  • `9987/UDP` — datos de voz (predeterminado)
  • `10011/TCP` — ServerQuery (raw o SSH)
  • `30033/TCP` — transferencia de archivos

Paso 1: Preparar el servidor

Conéctate a tu VPS como root:

“`bash

ssh root@your_server_ip -p your_ssh_port

“`

Actualiza todos los paquetes del sistema para eliminar vulnerabilidades conocidas antes de instalar nuevo software:

“`bash

sudo apt update && sudo apt upgrade -y

“`

Instala `bzip2`, que es necesario para extraer el archivo de TeamSpeak:

“`bash

sudo apt install bzip2 -y

“`

En CentOS/AlmaLinux/Rocky Linux, reemplaza lo anterior con:

“`bash

sudo dnf update -y && sudo dnf install bzip2 wget -y

“`

Paso 2: Crear un usuario de sistema dedicado

Ejecutar TeamSpeak como root es un error de seguridad crítico. Si el proceso es explotado, un atacante obtiene acceso root inmediato a todo el host. Siempre aíslalo bajo un usuario sin privilegios:

“`bash

sudo adduser teamspeak

“`

Sigue las indicaciones para establecer una contraseña. Este usuario será propietario de todos los binarios de TeamSpeak, archivos de configuración y la base de datos SQLite.

> Nota de seguridad: Para entornos reforzados, considera crear el usuario con `–disabled-login` y usar `sudo -u teamspeak` para todas las operaciones, evitando completamente el acceso a shell interactivo.

Paso 3: Descargar y extraer el binario del servidor TeamSpeak

Cambia al contexto del usuario `teamspeak`:

“`bash

sudo su – teamspeak

“`

Descarga la última versión estable de TeamSpeak 3 Server para Linux de 64 bits. Verifica siempre el número de versión actual en la página oficial de descargas de TeamSpeak antes de ejecutar este comando, ya que la cadena de versión cambia con cada lanzamiento:

“`bash

wget https://files.teamspeak-services.com/releases/server/3.13.7/teamspeak3-server_linux_amd64-3.13.7.tar.bz2 -O teamspeak-server.tar.bz2

“`

Extrae el archivo y elimina el directorio de nivel superior para que todos los archivos queden directamente en el directorio de trabajo actual (`/home/teamspeak/`):

“`bash

tar xvfj teamspeak-server.tar.bz2 –strip-components 1

“`

Acepta el acuerdo de licencia de TeamSpeak creando el archivo marcador requerido. El demonio del servidor se negará a iniciarse sin él:

“`bash

touch ~/.ts3server_license_accepted

“`

Regresa al usuario root:

“`bash

exit

“`

Paso 4: Crear una unidad de servicio systemd

Gestionar TeamSpeak mediante systemd garantiza que el proceso se reinicie automáticamente tras un reinicio o fallo, se integre con `journald` para el registro centralizado y respete el orden de dependencias adecuado durante el arranque.

Abre un nuevo archivo de unidad de servicio:

“`bash

nano /etc/systemd/system/teamspeak.service

“`

Pega la siguiente configuración completa de unidad:

“`ini

[Unit]

Description=TeamSpeak 3 Server

After=network.target

[Service]

WorkingDirectory=/home/teamspeak/

User=teamspeak

Group=teamspeak

Type=forking

ExecStart=/home/teamspeak/ts3server_startscript.sh start inifile=ts3server.ini

ExecStop=/home/teamspeak/ts3server_startscript.sh stop

PIDFile=/home/teamspeak/ts3server.pid

Restart=on-failure

RestartSec=10s

[Install]

WantedBy=multi-user.target

“`

Directivas clave explicadas:

  • `After=network.target` — evita el inicio antes de que la pila de red esté lista, previniendo fallos de enlace en `9987/UDP`
  • `Type=forking` — correcto para el script de inicio de TeamSpeak, que bifurca un proceso en segundo plano
  • `Restart=on-failure` — se recupera automáticamente de fallos inesperados sin intervención manual
  • `RestartSec=10s` — añade un breve retraso antes de los intentos de reinicio para evitar bucles de fallo rápidos

Guarda el archivo (`Ctrl+S`, luego `Ctrl+X`), luego recarga el demonio systemd para registrar la nueva unidad:

“`bash

systemctl daemon-reload

“`

Habilita el servicio para que se inicie en el arranque e inícialo inmediatamente:

“`bash

systemctl enable –now teamspeak

“`

Verifica que el servicio esté activo y en ejecución:

“`bash

systemctl status teamspeak

“`

La salida esperada incluye `Active: active (running)` con un PID válido. Si el estado muestra `failed`, inspecciona los registros inmediatamente:

“`bash

journalctl -u teamspeak -n 50 –no-pager

“`

Paso 5: Recuperar la clave de privilegio de administrador (token)

Cuando TeamSpeak Server se inicia por primera vez, genera una clave de privilegio (token) en sus archivos de registro. Este token otorga al primer cliente que se conecte derechos completos de administrador del servidor. Debes recuperarlo antes de que cualquier otra persona se conecte.

“`bash

grep -i token /home/teamspeak/logs/*

“`

La salida contendrá una línea similar a:

“`

token=q1a2b3c4d5e6f7g8h9i0jKLMNOPQRSTUVWXYZ

“`

Copia este token. Cuando te conectes mediante el cliente de TeamSpeak por primera vez, se te pedirá que lo introduzcas. Al hacerlo, tu cliente se eleva al grupo de servidor `Server Admin`.

> Crítico: Este token es de un solo uso y se consume en el primer canje. Si lo pierdes antes de usarlo, debes establecer una nueva contraseña de administrador manualmente (consulta el Paso 6). Guárdalo de forma segura.

Paso 6: Establecer o restablecer la contraseña de ServerAdmin

La cuenta `serveradmin` se utiliza para el acceso ServerQuery — una interfaz TCP raw o SSH que permite la administración mediante scripts, integración de bots y herramientas de gestión remota como YaTQA o ts3admin.

Para establecer o restablecer esta contraseña, debes detener temporalmente el servicio, iniciar el binario del servidor directamente con el argumento de contraseña, luego detenerlo de nuevo y reiniciarlo mediante systemd:

“`bash

systemctl stop teamspeak.service

“`

Cambia al usuario teamspeak y establece la contraseña:

“`bash

su – teamspeak

./ts3server_startscript.sh start serveradmin_password=YourStrongPassword

“`

Espera a que el servidor se inicialice completamente (observa `TeamSpeak 3 Server started successfully` en la salida), luego detenlo:

“`bash

./ts3server_startscript.sh stop

exit

“`

Reinicia el servicio gestionado:

“`bash

systemctl start teamspeak.service

“`

Requisitos de contraseña: Usa un mínimo de 16 caracteres con mayúsculas y minúsculas, números y símbolos. La interfaz ServerQuery está expuesta en el puerto TCP `10011` y es un objetivo común de fuerza bruta si se deja con una contraseña débil.

Paso 7: Configurar el firewall

Si `ufw` está activo en tu servidor, abre los puertos requeridos:

“`bash

ufw allow 9987/udp comment "TeamSpeak voice"

ufw allow 10011/tcp comment "TeamSpeak ServerQuery"

ufw allow 30033/tcp comment "TeamSpeak file transfer"

ufw reload

“`

Para `firewalld` (CentOS/AlmaLinux):

“`bash

firewall-cmd –permanent –add-port=9987/udp

firewall-cmd –permanent –add-port=10011/tcp

firewall-cmd –permanent –add-port=30033/tcp

firewall-cmd –reload

“`

> Consejo de refuerzo: Si no necesitas acceso público a ServerQuery, restringe el puerto `10011` solo a IPs de gestión específicas. Exponerlo públicamente es innecesario para la operación estándar del servidor de voz.

Paso 8: Conectarse desde el cliente TeamSpeak

  1. Descarga e instala el cliente TeamSpeak 3 para tu SO de escritorio (Windows, macOS, Linux).
  2. Abre el cliente y navega a Conexiones > Conectar.
  3. Introduce la dirección IP de tu VPS como Apodo o dirección del servidor.
  4. Deja el puerto como `9987` a menos que lo hayas cambiado en `ts3server.ini`.
  5. En la primera conexión, el cliente te pedirá que introduzcas la clave de privilegio (token). Pega el token recuperado en el Paso 5.
  6. Tu cliente es ahora el administrador del servidor.

Opcional: Usar el script de instalación automatizada

Para una implementación rápida, AlexHost proporciona un script de instalación automatizada que gestiona la instalación de dependencias, creación de usuarios, descarga de binarios y configuración del servicio en una sola ejecución:

“`bash

ssh root@your_server_ip -p your_ssh_port

wget https://bill.alexhost.com/downloads/teamspeak_install.sh

chmod +x teamspeak_install.sh

./teamspeak_install.sh

“`

Revisa el contenido del script antes de ejecutarlo para entender qué cambios realiza en tu sistema. Los scripts automatizados son convenientes, pero nunca deben ejecutarse a ciegas en infraestructura de producción.

TeamSpeak vs. alternativas: plataformas de voz autoalojadas

CaracterísticaTeamSpeak 3MumbleDiscord (nube)
AutoalojadoNo
Uso de RAM (inactivo)~30 MB~15 MBN/A
LatenciaMuy bajaMuy bajaBaja–Media
CifradoTLS (señalización)DTLS + SRTPPropietario
Sistema de permisosACL avanzadoModeradoBasado en roles
Disponibilidad de clienteWin/Mac/Linux/MóvilWin/Mac/LinuxWin/Mac/Linux/Móvil
Licencia (servidor)Gratuita hasta 32 slotsCódigo abiertoN/A
CódecOpusOpus/CELTOpus
API ServerQuerySí (TCP/SSH)NoSolo REST API

La API ServerQuery de TeamSpeak es un diferenciador significativo para organizaciones que necesitan gestión programática del servidor — creación automatizada de canales, integración de bots o cambios de permisos activados por CI/CD.

Problemas comunes de instalación y soluciones

El servidor no arranca — "Could not bind to port 9987"

Otro proceso está usando UDP 9987, o el servicio se inició antes de que la red estuviera lista. Comprueba con `ss -ulnp | grep 9987` y verifica que la directiva `After=network.target` esté presente en tu unidad de servicio.

Error de archivo de licencia no encontrado

El archivo `.ts3server_license_accepted` debe existir en el directorio home del usuario que ejecuta el proceso (`/home/teamspeak/`). Confírmalo con `ls -la /home/teamspeak/.ts3server_license_accepted`.

Token no encontrado en los registros

El directorio de registros predeterminado es `/home/teamspeak/logs/`. Si extrajiste el archivo en una ruta diferente, ajusta el comando grep en consecuencia. Los tokens solo aparecen en el registro del primer inicio — si la base de datos ya existe, no se genera ningún token nuevo.

Conexión ServerQuery rechazada

Confirma que el puerto `10011/TCP` está abierto en tu firewall y que el proceso del servidor está en ejecución. Prueba localmente con `telnet 127.0.0.1 10011` — una conexión exitosa devuelve un banner `TS3`.

Alto uso de CPU con muchos usuarios

TeamSpeak es de un solo hilo para la mezcla de voz. Si superas ~200 usuarios concurrentes en una sola instancia de servidor virtual, considera implementar múltiples servidores virtuales o actualizar a un plan de Servidores Dedicados para velocidad de reloj de CPU garantizada y sin contención de vecinos ruidosos.

Asegurar tu implementación de TeamSpeak

Más allá del aislamiento de usuarios y las reglas de firewall cubiertas anteriormente, aplica estas medidas de refuerzo:

  • Cambia los puertos predeterminados en `ts3server.ini` para reducir la exposición al escaneo automatizado. Actualiza las reglas del firewall en consecuencia.
  • Restringe ServerQuery (`10011/TCP`) a IPs de gestión usando filtrado de origen en el firewall.
  • Habilita la autenticación por clave SSH en tu VPS y deshabilita el inicio de sesión root basado en contraseña. Consulta el panel de control de tu VPS para las opciones de gestión de claves SSH.
  • Monitorea los registros mediante `journalctl -u teamspeak -f` para detectar patrones de conexión inusuales o fallos repetidos de autenticación en ServerQuery.
  • Copias de seguridad regulares de `/home/teamspeak/ts3server.sqlitedb` — este archivo contiene todas las configuraciones de canales, grupos de servidor, permisos e identidades de clientes. Perderlo significa reconstruir toda la estructura del servidor desde cero.
  • Mantén el binario actualizado. TeamSpeak lanza parches de seguridad periódicamente. Suscríbete a sus anuncios de lanzamiento y repite los Pasos 3–4 con el nuevo tarball de versión cuando haya actualizaciones disponibles.

Si gestionas múltiples servicios en el mismo VPS, considera combinar tu instancia de TeamSpeak con una solución de Paneles de Control VPS para agilizar la gestión de servicios, monitoreo y tareas programadas desde una interfaz unificada.

Matriz de decisión: ¿Es esta configuración adecuada para ti?

EscenarioAcción recomendada
Menos de 32 usuarios concurrentes, comunidad de juegosVPS de nivel básico, licencia gratuita de TeamSpeak
32–512 usuarios concurrentes, organizaciónActualización de licencia TeamSpeak + VPS de 2–4 vCPU
Necesita aislamiento completo de hardware, 500+ usuariosServidor dedicado, múltiples instancias de servidor virtual
Quiere panel gestionado + TeamSpeakVPS con cPanel o DirectAdmin
Requiere enrutamiento de baja latencia EU/USElige la ubicación del datacenter VPS más cercana a los usuarios
Necesita presencia web complementariaAñade [Hosting Web Compartido](https://alexhost.com/es/shared-hosting/) o subdominio en el mismo VPS
Requiere dominio personalizado para la dirección del servidor[Registro de Dominio](https://alexhost.com/es/domains/) + registro DNS A apuntando a la IP del VPS

Conclusiones técnicas clave

  • Ejecuta siempre TeamSpeak bajo un usuario dedicado sin privilegios de root. Esto es innegociable para cualquier servicio expuesto a internet.
  • El archivo marcador `ts3server_license_accepted` debe existir antes de que el demonio se inicie — un punto de fallo común en el primer arranque.
  • Usa `Type=forking` en la unidad systemd, no `Type=simple`. El script de inicio bifurca un proceso en segundo plano; `simple` hará que systemd rastree incorrectamente el PID.
  • Recupera el token de clave de privilegio de los registros inmediatamente después del primer inicio. Se consume en el primer uso y no puede regenerarse sin un procedimiento manual de restablecimiento de contraseña.
  • El puerto `9987/UDP` es el único puerto requerido para la operación básica de voz. `10011/TCP` y `30033/TCP` son opcionales según tu caso de uso.
  • Haz copias de seguridad de `ts3server.sqlitedb` de forma programada. Toda la configuración del servidor reside en este único archivo.
  • Para implementaciones en producción, restringe ServerQuery a localhost o una VLAN de gestión — nunca lo expongas públicamente sin lista de IPs permitidas.

Preguntas frecuentes

¿Cuál es el número máximo de usuarios en una licencia gratuita de servidor TeamSpeak?

La licencia gratuita sin fines de lucro admite hasta 32 slots simultáneos. Para implementaciones más grandes, TeamSpeak ofrece licencias anuales para 64, 128, 256 o 512 slots, así como una “Licencia de Activación” de slots ilimitados para organizaciones que cumplan los requisitos.

¿Puedo ejecutar TeamSpeak Server en un VPS con 512 MB RAM?

Sí. El demonio TeamSpeak 3 Server consume aproximadamente 25–40 MB de RAM en reposo y escala modestamente con usuarios concurrentes. Un VPS de 512 MB es suficiente para comunidades con menos de 50 usuarios simultáneos, con margen cómodo para el SO y los procesos del sistema.

¿Cómo actualizo TeamSpeak Server sin perder mi configuración?

Detén el servicio con `systemctl stop teamspeak`, descarga el nuevo tarball de versión como usuario `teamspeak`, extráelo con `–strip-components 1` en el mismo directorio (sobrescribiendo solo los binarios), luego reinicia el servicio. La base de datos `ts3server.sqlitedb` y el archivo de configuración `ts3server.ini` no se sobrescriben en este proceso.

¿Por qué mi servidor TeamSpeak no aparece en la lista pública de servidores?

Por defecto, los servidores TeamSpeak no se registran en la lista pública de servidores. Para habilitar el listado, establece `machine_id=` y configura `serverip` en `ts3server.ini`, luego habilita la opción de listado público mediante ServerQuery o el panel de administración del servidor del cliente. Asegúrate de que el puerto UDP `9987` sea accesible desde internet.

¿El tráfico de TeamSpeak está cifrado por defecto?

El tráfico de señalización (configuración de conexión, chat, permisos) está cifrado mediante TLS. Los datos de voz transmitidos por UDP no están cifrados por defecto en TeamSpeak 3. El cifrado de voz puede habilitarse por canal o en todo el servidor mediante la configuración del servidor, a costa de un pequeño aumento en el uso de CPU. TeamSpeak 5 (actualmente en desarrollo) utiliza cifrado de extremo a extremo por defecto.

15%

Ahorra 15%<\/span> en todos los servicios de hosting

Pon a prueba tus habilidades y obtén Descuento<\/span> en cualquier plan de hosting

Usa el código:

Skills
Comenzar