Instalación de TeamSpeak Server en Linux
TeamSpeak es uno de los servidores de comunicación de voz más populares para gaming y equipos profesionales, con baja latencia y alta calidad de audio. Esta guía explica cómo instalar y configurar TeamSpeak 3 en Linux, incluyendo la gestión de licencias, canales, permisos y administración mediante ServerQuery.
Requisitos Previos
- Servidor Ubuntu 20.04/22.04 o CentOS 7/8 con acceso root
- Mínimo 1 GB de RAM y 1 vCPU
- Puerto UDP 9987 disponible (voz), TCP 10011 (ServerQuery), TCP 30033 (transferencia de archivos)
- Conexión a internet para descargar el paquete
Descarga e Instalación
Crea un usuario dedicado para TeamSpeak por razones de seguridad:
# Crear usuario sin privilegios para teamspeak
useradd -m -d /opt/teamspeak -s /bin/bash teamspeak
# Cambiar al directorio de instalación
su - teamspeak
Descarga el paquete desde el sitio oficial de TeamSpeak:
# Descargar TeamSpeak 3 Server (verificar la versión más reciente en teamspeak.com)
wget https://files.teamspeak-services.com/releases/server/3.13.7/teamspeak3-server_linux_amd64-3.13.7.tar.bz2
# Extraer el archivo
tar xvfj teamspeak3-server_linux_amd64-3.13.7.tar.bz2
# Mover los archivos al directorio de trabajo
mv teamspeak3-server_linux_amd64/* /opt/teamspeak/
# Aceptar la licencia de TeamSpeak
touch /opt/teamspeak/.ts3server_license_accepted
Configuración Inicial
Inicia el servidor por primera vez para generar las credenciales de administrador:
# Iniciar el servidor como usuario teamspeak
su - teamspeak -c "/opt/teamspeak/ts3server_linux_amd64"
En la primera ejecución, TeamSpeak mostrará información crítica:
------------------------------------------------------------------
I M P O R T A N T
------------------------------------------------------------------
Server Query Admin Account created
loginname= "serveradmin", password= "XXXXXXXXXX"
ServerAdmin privilege key created, please use it to gain
serveradmin rights for your virtual server. please
also check the doc/privilegekey_guide.txt for details.
token=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
------------------------------------------------------------------
Guarda estas credenciales inmediatamente. No se mostrarán de nuevo.
# Detener el servidor después de anotar las credenciales
# Presiona Ctrl+C o usa kill
# Verificar que los archivos de configuración se crearon
ls /opt/teamspeak/
Gestión de Licencias
TeamSpeak ofrece una licencia gratuita para hasta 32 usuarios simultáneos. Para más usuarios, necesitas una licencia comercial o ATHP (Authorized TeamSpeak Host Provider):
# Verificar el estado de la licencia
cat /opt/teamspeak/licensekey.dat
# Si tienes una licencia comercial, coloca el archivo en el directorio de instalación
cp licensekey.dat /opt/teamspeak/licensekey.dat
chown teamspeak:teamspeak /opt/teamspeak/licensekey.dat
Para la licencia de No-Profit (hasta 512 usuarios gratis para organizaciones sin ánimo de lucro):
# Crear el directorio para la licencia
mkdir -p /opt/teamspeak
# Copiar la licencia descargada del sitio oficial de TeamSpeak
cp myteamspeak_license.dat /opt/teamspeak/licensekey.dat
Configuración de Canales y Permisos
Conéctate al servidor con el cliente TeamSpeak y usa el token de privilegio generado en la primera ejecución para obtener derechos de administrador. Después puedes:
Crear canales desde el cliente o usando ServerQuery:
# Conectar a ServerQuery para crear canales vía línea de comandos
telnet localhost 10011
# Seleccionar el servidor virtual (ID 1 por defecto)
use sid=1
# Crear un canal
channelcreate channel_name=General channel_flag_permanent=1
# Crear un canal con contraseña
channelcreate channel_name=Privado channel_flag_permanent=1 channel_password=miclave
Configurar permisos para grupos de usuarios:
# Listar grupos del servidor
serverGroupList
# Añadir permiso a un grupo (b_channel_create_permanent = crear canales permanentes)
serverGroupAddPerm sgid=6 permid=75 permvalue=1 permnegated=0 permskip=0
Administración con ServerQuery
ServerQuery es la interfaz de línea de comandos de TeamSpeak para administración remota:
# Conectar a ServerQuery vía Telnet
telnet tu-servidor.com 10011
# Autenticarse
login serveradmin TU_CONTRASEÑA
# Seleccionar servidor virtual
use sid=1
# Listar clientes conectados
clientlist
# Expulsar a un cliente (reemplaza clid con el ID del cliente)
clientkick clid=5 reasonid=5 reasonmsg=Comportamiento\sinadecu
# Banear una IP
banadd ip=192.168.1.100 time=3600 banreason=Spam
# Ver información del servidor virtual
serverinfo
# Cambiar el nombre del servidor virtual
serveredit virtualserver_name=Mi\sServidor\sTeamSpeak
# Salir de la sesión
quit
También puedes usar la librería Python ts3 para automatizar tareas:
# Instalar la librería ts3 para Python
pip3 install ts3
# Script de ejemplo para listar usuarios conectados
cat << 'EOF' > /opt/teamspeak/query_usuarios.py
import ts3
# Conectar al servidor TeamSpeak
with ts3.query.TS3ServerConnection("telnet://serveradmin:CONTRASEÑA@localhost:10011") as ts3conn:
ts3conn.exec_("use", sid=1)
clientes = ts3conn.exec_("clientlist")
for cliente in clientes:
print(f"Cliente: {cliente.get('client_nickname')} (ID: {cliente.get('clid')})")
EOF
python3 /opt/teamspeak/query_usuarios.py
Configuración del Firewall
# Ubuntu/Debian con UFW
ufw allow 9987/udp comment 'TeamSpeak voz'
ufw allow 10011/tcp comment 'TeamSpeak ServerQuery'
ufw allow 30033/tcp comment 'TeamSpeak transferencia de archivos'
# CentOS/Rocky con firewalld
firewall-cmd --permanent --add-port=9987/udp
firewall-cmd --permanent --add-port=10011/tcp
firewall-cmd --permanent --add-port=30033/tcp
firewall-cmd --reload
Inicio Automático con systemd
# Crear el archivo de servicio systemd
cat << 'EOF' > /etc/systemd/system/teamspeak.service
[Unit]
Description=TeamSpeak 3 Server
After=network.target
[Service]
Type=forking
User=teamspeak
Group=teamspeak
WorkingDirectory=/opt/teamspeak
ExecStart=/opt/teamspeak/ts3server_linux_amd64 inifile=/opt/teamspeak/ts3server.ini
ExecStop=/opt/teamspeak/ts3server_linux_amd64 stop
PIDFile=/opt/teamspeak/ts3server.pid
Restart=on-failure
RestartSec=10
[Install]
WantedBy=multi-user.target
EOF
# Recargar systemd y habilitar el servicio
systemctl daemon-reload
systemctl enable teamspeak
systemctl start teamspeak
# Verificar el estado del servicio
systemctl status teamspeak
Solución de Problemas
El servidor no inicia:
# Verificar los logs del servidor
cat /opt/teamspeak/logs/ts3server_*.log | tail -50
# Verificar que el puerto no está en uso
ss -tulnp | grep 9987
No se puede conectar al servidor:
# Verificar que el proceso está corriendo
ps aux | grep ts3server
# Comprobar que los puertos están escuchando
ss -tulnp | grep -E '9987|10011|30033'
# Probar la conectividad de red
nc -zv tu-servidor.com 10011
Problemas de permisos:
# Asegurarse de que el usuario teamspeak es propietario de los archivos
chown -R teamspeak:teamspeak /opt/teamspeak/
# Verificar los permisos del ejecutable
ls -la /opt/teamspeak/ts3server_linux_amd64
chmod +x /opt/teamspeak/ts3server_linux_amd64
Error de licencia:
# Verificar que el archivo de licencia existe y tiene los permisos correctos
ls -la /opt/teamspeak/licensekey.dat
cat /opt/teamspeak/licensekey.dat
Conclusión
TeamSpeak Server en Linux ofrece una plataforma de comunicación de voz robusta y de baja latencia, ideal para equipos de gaming y entornos corporativos. Con la configuración de systemd, permisos adecuados y las reglas de firewall correctas, el servidor funcionará de forma estable y segura. Recuerda revisar regularmente los logs y actualizar TeamSpeak cuando haya nuevas versiones disponibles.


