Cómo instalar el servidor de TeamSpeak en Debian 11
TeamSpeak es un software de chat de voz multiplataforma utilizado por jugadores, equipos y escuelas. Es ligero y rápido y te ofrece más control, ya que puedes alojarlo en tu servidor. Ofrece una forma segura y fácil de conectar con personas de todo el mundo. Tiene una interfaz de usuario totalmente personalizable, admite mensajería directa, transferencia ilimitada de archivos y permite el uso anónimo.
Este tutorial te enseñará a instalar el servidor TeamSpeak en un servidor basado en Debian 11 y a conectarte a él utilizando un cliente Windows.
Requisitos previos
- Un servidor basado en Debian 11.
- Un usuario no root con privilegios sudo.
- El paqueteSudo está instalado.
- Todo está actualizado.
$ sudo apt update && sudo apt upgrade
- Pocos paquetes que necesite tu sistema.
$ sudo apt install nano ufw software-properties-common dirmngr apt-transport-https gnupg2 ca-certificates lsb-release debian-archive-keyring wget -y
Puede que algunos de estos paquetes ya estén instalados en tu sistema.
Paso 1 – Configurar el Cortafuegos
El primer paso es configurar el cortafuegos. Debian viene con ufw (Cortafuegos sin complicaciones).
Comprueba si el cortafuegos está funcionando.
$ sudo ufw status
Deberías obtener la siguiente salida.
Status: inactive
Permite el puerto SSH para que el cortafuegos no rompa la conexión actual al activarlo.
$ sudo ufw allow OpenSSH
Abre los siguientes puertos requeridos por TeamSpeak.
- 9987/udp para Voz.
- 30033/tcp para Transferencia de archivos.
- 10011/tcp para Consulta del servidor (sin procesar).
- 10022/tcp para Serverquery (SSH).
- 10080/tcp para Consulta Web (HTTP).
$ sudo ufw allow 9987/udp $ sudo ufw allow 30033/tcp $ sudo ufw allow 10011/tcp $ sudo ufw allow 10022/tcp $ sudo ufw allow 10080/tcp
Habilitar el cortafuegos
$ sudo ufw enable Command may disrupt existing ssh connections. Proceed with operation (y|n)? y Firewall is active and enabled on system startup
Comprueba de nuevo el estado del cortafuegos.
$ sudo ufw status
Deberías ver un resultado similar.
Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere 9987/udp ALLOW Anywhere 30033/tcp ALLOW Anywhere 10011/tcp ALLOW Anywhere 10080/tcp ALLOW Anywhere 10022/tcp ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) 9987/udp (v6) ALLOW Anywhere (v6) 30033/tcp (v6) ALLOW Anywhere (v6) 10011/tcp (v6) ALLOW Anywhere (v6) 10080/tcp (v6) ALLOW Anywhere (v6) 10022/tcp (v6) ALLOW Anywhere (v6)
Paso 2 – Descarga TeamSpeak
Visita la página de descargas de TeamSpeak y fíjate en el número de la última versión. En el momento de realizar este tutorial, v3.13.6 es la última versión disponible del servidor TeamSpeak.
Utiliza el siguiente comando para descargar el servidor TeamSpeak.
$ TVERSION=3.13.6 $ wget https://files.teamspeak-services.com/releases/server/${TVERSION}/teamspeak3-server_linux_amd64-${TVERSION}.tar.bz2
Extrae el archivo descargado.
$ tar -xf ./teamspeak3-server_linux_amd64-${TVERSION}.tar.bz2
Paso 3 – Crear usuario y directorio de TeamSpeak
El primer paso para instalar TeamSpeak es crear un usuario para el servidor. El usuario tendrá su directorio de inicio en /opt/teamspeak
y no tendrá contraseña.
$ sudo adduser ts3 --home /opt/teamspeak --shell /bin/bash --disabled-password
Ahora podemos mover el directorio extraído al directorio /opt/teamspeak
.
$ sudo mv teamspeak3-server_linux_amd64/* /opt/teamspeak/
Concede los permisos correctos al directorio.
$ sudo chown -R ts3:ts3 /opt/teamspeak
Paso 4 – Ejecutar el servidor TeamSpeak
El siguiente paso es ejecutar el servidor de TeamSpeak para crear una clave de privilegios por primera vez. Esta clave te ayudará a acceder al servidor como administrador.
Antes de iniciar el servidor, debes iniciar sesión como usuario de TeamSpeak. Ejecuta el siguiente comando para acceder a tu shell como usuario de TeamSpeak.
$ sudo -u -i ts3
Para ello, crearemos un archivo llamado .ts3server_license_accepted
en el directorio de trabajo de TeamSpeak.
$ touch .ts3server_license_accepted
Ejecuta el siguiente comando para iniciar el servidor.
$ ./ts3server_startscript.sh start ------------------------------------------------------------------ I M P O R T A N T ------------------------------------------------------------------ Server Query Admin Account created loginname= "serveradmin", password= "BtXdJaCb" apikey= "BAD8rYVPM61p_-TdrsBqEL_8ZxKzEHIKOkUk6_e" ------------------------------------------------------------------ ------------------------------------------------------------------ I M P O R T A N T ------------------------------------------------------------------ ServerAdmin privilege key created, please use it to gain serveradmin rights for your virtualserver. please also check the doc/privilegekey_guide.txt for details. token=WIRagRYXkCnWqM5g7gBoSgcHHpfgLG9w17pcLORy ------------------------------------------------------------------
Al ejecutar el servidor por primera vez, se creará una cuenta de administrador de consultas del servidor. Anota su nombre de usuario y la contraseña. Anota también la clave API y el token de privilegio generado. Los necesitarás en los próximos pasos.
Para detener el servidor, pulsa Ctrl + C en tu teclado.
Cierra la sesión como usuario de TeamSpeak.
$ exit
Paso 5 – Crear el demonio del Servicio TeamSpeak
Crea el archivo /lib/systemd/system/ts3server.service
y ábrelo para editarlo.
$ sudo nano /lib/systemd/system/ts3server.service
Pega en él el siguiente código.
[Unit] Description=TeamSpeak3 Server Wants=network-online.target After=syslog.target network.target local-fs.target [Service] WorkingDirectory=/opt/teamspeak User=ts3 Group=ts3 Type=forking ExecStart=/opt/teamspeak/ts3server_startscript.sh start license_accepted=1 ExecStop=/opt/teamspeak/ts3server_startscript.sh stop ExecReload=/opt/teamspeak/ts3server_startscript.sh restart Restart=always RestartSec=15 [Install] WantedBy=multi-user.target
Cierra el archivo pulsando Ctrl + X e introduciendo Y cuando se te pida.
Vuelve a cargar el demonio de servicio.
$ sudo systemctl daemon-reload
Activa e inicia el servicio TeamSpeak.
$ sudo systemctl enable ts3server --now
Comprueba el estado del servicio.
$ sudo systemctl enable ts3server ? ts3server.service - TeamSpeak3 Server Loaded: loaded (/lib/systemd/system/ts3server.service; enabled; vendor preset: enabled) Active: active (running) since Tue 2022-03-29 08:18:17 UTC; 2s ago Process: 23120 ExecStart=/opt/teamspeak/ts3server_startscript.sh start license_accepted=1 (code=exited, status=0/SUCCESS) Main PID: 23127 (ts3server) Tasks: 21 (limit: 2341) Memory: 17.3M CPU: 1.953s CGroup: /system.slice/ts3server.service ??23127 ./ts3server license_accepted=1 daemon=1 pid_file=ts3server.pid Mar 29 08:18:17 teamspeak systemd[1]: Starting TeamSpeak3 Server... Mar 29 08:18:17 teamspeak ts3server_startscript.sh[23120]: Starting the TeamSpeak 3 server Mar 29 08:18:17 teamspeak ts3server_startscript.sh[23120]: TeamSpeak 3 server started, for details please view the log file Mar 29 08:18:17 teamspeak systemd[1]: Started TeamSpeak3 Server.
Paso 6 – Conéctate utilizando el Cliente TeamSpeak
Descarga e instala el Cliente de TeamSpeak 3 para Windows desde el sitio web oficial. También puedes descargar la última versión beta (v5) del cliente, pero para nuestro tutorial, utilizaremos la v3, más antigua y estable.
Ejecuta el cliente en tu escritorio, y obtendrás la siguiente pantalla después de pasar por el indicador de licencia.
Haz clic en Conexiones y selecciona la opción Conectar para empezar. Introduce la dirección IP de tu servidor, la contraseña generada en el paso 4 y un apodo para ti.
Pulsa el botón Conectar para continuar. Se te pedirá que introduzcas la clave de Privilegio en el siguiente aviso. Introduce la clave de Privilegio del paso 4 y haz clic en Ok para continuar.
Ya estás conectado a tu servidor de TeamSpeak y puedes empezar a utilizar el cliente para comunicarte.
Paso 7 – Cambiar la Contraseña de Acceso
Puedes cambiar la contraseña de Administrador del Servidor por otra más segura de tu elección. Para ello, detén el servicio TeamSpeak.
$ sudo systemctl stop ts3server
Cambia al usuario TeamSpeak.
$ sudo -i -u ts3
Inicia el servidor TeamSpeak y añade el parámetro serveradmin_password
en tu comando.
$ ./ts3server_startscript.sh start serveradmin_password=password Starting the TeamSpeak 3 server TeamSpeak 3 server started, for details please view the log file
Sustituye password
por una contraseña fuerte de tu elección.
Vuelve a parar el servidor.
$ ./ts3server_startscript.sh stop Stopping the TeamSpeak 3 server . done
Vuelve a cambiar a tu cuenta de usuario.
$ exit
Inicia de nuevo el servicio TeamSpeak.
$ sudo systemctl start ts3server
Paso 8 – Instalar y configurar MySQL
TeamSpeak, por defecto, utiliza la base de datos SQLite para almacenar todos los datos de comunicación y de usuario. Aunque esto está bien para una comunidad pequeña, puede convertirse en un problema si utilizas TeamSpeak para alojar a más usuarios. Afortunadamente, TeamSpeak puede configurarse para utilizar una base de datos MySQL o PostgreSQL.
Nosotros lo configuraremos para utilizarlo con el servidor MySQL.
Instala el servidor MariaDB, que es un sustituto directo de MySQL, ya que Debian no incluye MySQL 8 por defecto.
$ sudo apt install mariadb-server -y
El instalador iniciará y activará el servicio Mariadb por ti. Puedes comprobar el estado del servicio.
$ sudo systemctl status mariadb
Ejecuta el script de seguridad para MariaDB. Utiliza las opciones que se indican a continuación.
$ sudo mysql_secure_installation Enter current password for root (enter for none): (Press Enter) Switch to unix_socket authentication [Y/n] Y Change the root password? [Y/n] n Remove anonymous users? [Y/n] Y Disallow root login remotely? [Y/n] Y Remove test database and access to it? [Y/n] Y Reload privilege tables now? [Y/n] Y
Accede al shell de MySQL.
$ sudo mysql
Crea el usuario ts3user
. Sustituye your_password
por una contraseña segura de tu elección.
mysql> CREATE USER 'ts3user'@'localhost' IDENTIFIED BY 'your_password';
Crea la base de datos teamspeak3
.
mysql> CREATE DATABASE teamspeak3;
Concede privilegios al usuario en la base de datos teamspeak3
.
mysql> GRANT ALL PRIVILEGES ON teamspeak3.* TO 'ts3user'@'localhost';
Sal del intérprete de comandos.
mysql> exit
Cambia al usuario TeamSpeak.
$ sudo -i -u ts3
El primer paso para configurar MariaDB para que funcione con TeamSpeak es añadir la biblioteca MariaDB. La encontrarás en la carpeta /opt/teamspeak/redist
.
Crea un enlace simbólico para la biblioteca desde la carpeta redist
al directorio de trabajo principal.
$ ln -s /opt/teamspeak-server/redist/libmariadb.so.2 /opt/teamspeak-server/libmariadb.so.2
Ejecuta el siguiente comando para imprimir las bibliotecas compartidas que necesita TeamSpeak.
$ ldd /opt/teamspeak3-server/libts3db_mariadb.so
Crea el archivo de configuración para almacenar los parámetros de la base de datos y ábrelo para editarlo.
$ nano ts3db_mariadb.ini
Pega en él el siguiente código.
[config] host=127.0.0.1 port=3306 username=ts3user password=your_password database=teamspeak3 socket=
Utiliza las credenciales de la base de datos creadas anteriormente. Cierra el archivo pulsando Ctrl + X e introduciendo Y cuando se te pida.
Crea un archivo de configuración para TeamSpeak y ábrelo para editarlo.
$ nano ts3server.ini
Pega en él el siguiente código.
machine_id= default_voice_port=9987 voice_ip=0.0.0.0 licensepath= filetransfer_port=30033 filetransfer_ip=0.0.0.0 query_port=10011 query_ip=0.0.0.0 query_ip_whitelist=query_ip_whitelist.txt query_ip_blacklist=query_ip_blacklist.txt dbsqlpath=sql/ dbplugin=ts3db_mariadb dbsqlcreatepath=create_mariadb/ dbpluginparameter=ts3db_mariadb.ini dbconnections=10 logpath=logs logquerycommands=0 dbclientkeepdays=30 logappend=0 query_skipbruteforcecheck=0
Cierra el archivo pulsando Ctrl + X e introduciendo Y cuando se te solicite. Para conocer estos ajustes de configuración, puedes consultar el archivo server_quickstart.md
disponible en la carpeta doc
. El archivo anterior configura TeamSpeak para que utilice MariaDB en lugar de la base de datos SQLite.
Sal del intérprete de comandos de TeamSpeak.
$ exit
Tenemos que decirle al servidor de TeamSpeak que utilice el archivo de configuración recién creado. Detén y desactiva el servicio TeamSpeak.
$ sudo systemctl stop ts3server && sudo systemctl disable ts3server
Abre el archivo de servicio.
$ sudo nano /lib/systemd/system/ts3server.service
Busca la línea ExecStart=/opt/teamspeak/ts3server_startscript.sh start license_accepted=1
y cámbiala añadiendo los detalles del archivo de configuración como se muestra a continuación.
.... Type=forking ExecStart=/opt/teamspeak/ts3server_startscript.sh start license_accepted=1 inifile=ts3server.ini ....
Cierra el archivo pulsando Ctrl + X e introduciendo Y cuando se te pida.
Recarga el demonio de servicio para aplicar los cambios.
$ sudo systemctl daemon-reload
Activa e inicia el servicio TeamSpeak.
$ sudo systemctl enable ts3server --now
Comprueba el estado del servidor.
$ sudo systemctl status ts3server ? ts3server.service - TeamSpeak3 Server Loaded: loaded (/lib/systemd/system/ts3server.service; enabled; vendor preset: enabled) Active: active (running) since Tue 2022-03-29 12:21:22 UTC; 6s ago Process: 26511 ExecStart=/opt/teamspeak/ts3server_startscript.sh start license_accepted=1 inifile=ts3server.ini (code=exited, status=0/SUCCESS) Main PID: 26518 (ts3server) Tasks: 21 (limit: 2341) Memory: 16.0M CPU: 1.818s CGroup: /system.slice/ts3server.service ??26518 ./ts3server license_accepted=1 inifile=ts3server.ini daemon=1 pid_file=ts3server.pid Mar 29 12:21:23 teamspeak ts3server_startscript.sh[26518]: apikey= "BAA_lDBRBQxy2nPJXwPQvTRk9_sX3o403Ktlbjz" Mar 29 12:21:23 teamspeak ts3server_startscript.sh[26518]: ------------------------------------------------------------------ Mar 29 12:21:24 teamspeak ts3server_startscript.sh[26518]: ------------------------------------------------------------------ Mar 29 12:21:24 teamspeak ts3server_startscript.sh[26518]: I M P O R T A N T Mar 29 12:21:24 teamspeak ts3server_startscript.sh[26518]: ------------------------------------------------------------------ Mar 29 12:21:24 teamspeak ts3server_startscript.sh[26518]: ServerAdmin privilege key created, please use it to gain Mar 29 12:21:24 teamspeak ts3server_startscript.sh[26518]: serveradmin rights for your virtualserver. please Mar 29 12:21:24 teamspeak ts3server_startscript.sh[26518]: also check the doc/privilegekey_guide.txt for details. Mar 29 12:21:24 teamspeak ts3server_startscript.sh[26518]: token=kuFsCpz8G7204KiYgQJR8X8orHR+C8OrSv21MZRw Mar 29 12:21:24 teamspeak ts3server_startscript.sh[26518]: ------------------------------------------------------------------
Al hacerlo, se volverá a crear la clave de privilegios. La próxima vez que te conectes a tu servidor, se te pedirá. Sin embargo, tu contraseña de administración del servidor seguirá siendo la misma.
Paso 9 – Actualizar TeamSpeak
El primer paso para actualizar el servidor de TeamSpeak es detener el servidor.
$ sudo systemctl stop ts3server
Descarga la última versión de la web oficial y extrae el archivo al directorio /opt/teamspeak
sobrescribiendo los archivos originales siguiendo los pasos 2 y 3 del tutorial. Asegúrate de cambiar el permiso de la carpeta extraída.
Cuando hayas terminado, inicia de nuevo el servidor.
$ sudo systemctl start ts3server
Conclusión
Con esto concluye nuestro tutorial sobre la instalación y uso del Servidor de TeamSpeak en un servidor basado en Debian 11. Si tienes alguna pregunta, publícala en los comentarios a continuación.