15%

Economisește 15% la toate serviciile de găzduire

Testează-ți abilitățile și obține Reducere la orice plan de găzduire

Utilizați codul:

Skills
Începeți
09.10.2024

Cum să Instalezi un Server TeamSpeak pe un VPS (Ghid Ubuntu/CentOS)

TeamSpeak este o platformă de comunicare vocală auto-găzduită, cu latență redusă, care rulează ca un daemon de server independent pe Linux. Instalarea acestuia pe un VPS vă oferă control administrativ complet asupra canalelor, permisiunilor, codecurilor și politicilor de securitate — fără a depinde de infrastructura terților sau de limite de utilizare.

Acest ghid acoperă instalarea completă a TeamSpeak 3 Server pe Ubuntu (cu note pentru variantele CentOS/RHEL), inclusiv izolarea utilizatorilor, configurarea serviciului systemd, securizarea parolei de administrator și conectarea clientului. Fiecare comandă este gata pentru producție și testată pe un mediu curat 22.04 LTS.

De ce să auto-găzduiți TeamSpeak pe un VPS

Platformele comerciale de voce precum Discord impun politici de retenție a datelor, moderare algoritmică și limite de rată pe care organizațiile nu le pot depăși. O instanță TeamSpeak auto-găzduită elimină complet aceste constrângeri. Controlați:

  • Calitatea codecului (Opus Voice, Opus Music) și rata de biți per canal
  • Sistemul de permisiuni cu ACL-uri granulare pentru grupuri de server și grupuri de canale
  • Criptarea prin TLS pentru semnalizare și criptare vocală opțională
  • Rezidența datelor — traficul dvs. vocal nu tranzitează niciodată un releu terț
  • SLA de disponibilitate — legat direct de furnizorul dvs. de VPS, nu de un serviciu cloud partajat

Pentru clanuri de gaming, organizații de esports, echipe de dezvoltare la distanță și comunicații corporative, aceasta se traduce în avantaje măsurabile de fiabilitate și conformitate.

Cerințe minime de sistem

TeamSpeak 3 Server este extrem de ușor. Următoarele specificații suportă aproximativ 50–100 de utilizatori concurenți fără degradarea calității audio:

ResursăMinimRecomandat (100+ utilizatori)
Nuclee CPU1 vCPU2 vCPU
RAM512 MB1 GB
Spațiu pe disc1 GB5 GB (jurnale + BD)
Rețea10 Mbps100 Mbps
SOUbuntu 20.04+ / CentOS 7+Ubuntu 22.04 LTS
Arhitecturăx86_64 (amd64)x86_64 (amd64)

Un plan de VPS Hosting cu 1 vCPU și 512 MB RAM este suficient pentru o comunitate mică. Scalați vertical pe măsură ce numărul de utilizatori concurenți crește.

Porturi cheie de deschis în firewall-ul dvs.:

  • `9987/UDP` — date vocale (implicit)
  • `10011/TCP` — ServerQuery (raw sau SSH)
  • `30033/TCP` — transfer de fișiere

Pasul 1: Pregătirea serverului

Conectați-vă la VPS-ul dvs. ca root:

“`bash

ssh root@your_server_ip -p your_ssh_port

“`

Actualizați toate pachetele de sistem pentru a elimina vulnerabilitățile cunoscute înainte de a introduce software nou:

“`bash

sudo apt update && sudo apt upgrade -y

“`

Instalați `bzip2`, care este necesar pentru a extrage arhiva TeamSpeak:

“`bash

sudo apt install bzip2 -y

“`

Pe CentOS/AlmaLinux/Rocky Linux, înlocuiți cele de mai sus cu:

“`bash

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

“`

Pasul 2: Crearea unui utilizator de sistem dedicat

Rularea TeamSpeak ca root este o greșeală critică de securitate. Dacă procesul este vreodată exploatat, un atacator obține acces root imediat la întregul host. Izolați-l întotdeauna sub un utilizator fără privilegii:

“`bash

sudo adduser teamspeak

“`

Urmați instrucțiunile pentru a seta o parolă. Acest utilizator va deține toate binarele TeamSpeak, fișierele de configurare și baza de date SQLite.

> Notă de securitate: Pentru medii întărite, luați în considerare crearea utilizatorului cu `–disabled-login` și utilizarea `sudo -u teamspeak` pentru toate operațiunile, prevenind complet accesul la shell interactiv.

Pasul 3: Descărcarea și extragerea binarului TeamSpeak Server

Comutați la contextul utilizatorului `teamspeak`:

“`bash

sudo su – teamspeak

“`

Descărcați cea mai recentă versiune stabilă de TeamSpeak 3 Server pentru Linux pe 64 de biți. Verificați întotdeauna numărul versiunii curente pe pagina oficială de descărcări TeamSpeak înainte de a rula această comandă, deoarece șirul versiunii se schimbă cu fiecare lansare:

“`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

“`

Extrageți arhiva și eliminați directorul de nivel superior astfel încât toate fișierele să ajungă direct în directorul de lucru curent (`/home/teamspeak/`):

“`bash

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

“`

Acceptați acordul de licență TeamSpeak prin crearea fișierului marker necesar. Daemonul de server va refuza să pornească fără acesta:

“`bash

touch ~/.ts3server_license_accepted

“`

Reveniți la utilizatorul root:

“`bash

exit

“`

Pasul 4: Crearea unei unități de serviciu systemd

Gestionarea TeamSpeak prin systemd asigură că procesul repornește automat după o repornire sau o cădere, se integrează cu `journald` pentru jurnalizare centralizată și respectă ordinea corectă a dependențelor în timpul pornirii.

Deschideți un nou fișier de unitate de serviciu:

“`bash

nano /etc/systemd/system/teamspeak.service

“`

Lipiți următoarea configurație completă a unității:

“`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

“`

Directive cheie explicate:

  • `After=network.target` — previne pornirea înainte ca stiva de rețea să fie pregătită, evitând erorile de legare pe `9987/UDP`
  • `Type=forking` — corect pentru scriptul de pornire TeamSpeak, care bifurcă un proces în fundal
  • `Restart=on-failure` — recuperează automat din căderi neașteptate fără intervenție manuală
  • `RestartSec=10s` — adaugă o scurtă întârziere înainte de tentativele de repornire pentru a preveni buclele rapide de cădere

Salvați fișierul (`Ctrl+S`, apoi `Ctrl+X`), apoi reîncărcați daemonul systemd pentru a înregistra noua unitate:

“`bash

systemctl daemon-reload

“`

Activați serviciul pentru a porni la boot și porniți-l imediat:

“`bash

systemctl enable –now teamspeak

“`

Verificați că serviciul este activ și rulează:

“`bash

systemctl status teamspeak

“`

Rezultatul așteptat include `Active: active (running)` cu un PID valid. Dacă starea arată `failed`, inspectați imediat jurnalele:

“`bash

journalctl -u teamspeak -n 50 –no-pager

“`

Pasul 5: Recuperarea cheii de privilegii de administrator (Token)

Când TeamSpeak Server pornește pentru prima dată, generează o cheie de privilegii (token) în fișierele sale de jurnal. Acest token acordă primului client care se conectează drepturi complete de administrator de server. Trebuie să îl recuperați înainte ca oricine altcineva să se conecteze.

“`bash

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

“`

Rezultatul va conține o linie similară cu:

“`

token=q1a2b3c4d5e6f7g8h9i0jKLMNOPQRSTUVWXYZ

“`

Copiați acest token. Când vă conectați prin clientul TeamSpeak pentru prima dată, vi se va solicita să îl introduceți. Făcând acest lucru, clientul dvs. este ridicat la grupul de server `Server Admin`.

> Critic: Acest token este de unică folosință și este consumat la prima răscumpărare. Dacă îl pierdeți înainte de a-l folosi, trebuie să setați manual o nouă parolă de administrator (consultați Pasul 6). Păstrați-l în siguranță.

Pasul 6: Setarea sau resetarea parolei ServerAdmin

Contul `serveradmin` este utilizat pentru accesul ServerQuery — o interfață TCP raw sau SSH care permite administrarea prin scripturi, integrarea boturilor și instrumente de management la distanță precum YaTQA sau ts3admin.

Pentru a seta sau reseta această parolă, trebuie să opriți temporar serviciul, să porniți binarul serverului direct cu argumentul parolei, apoi să îl opriți din nou și să îl reporniți prin systemd:

“`bash

systemctl stop teamspeak.service

“`

Comutați la utilizatorul teamspeak și setați parola:

“`bash

su – teamspeak

./ts3server_startscript.sh start serveradmin_password=YourStrongPassword

“`

Așteptați ca serverul să se inițializeze complet (urmăriți `TeamSpeak 3 Server started successfully` în rezultat), apoi opriți-l:

“`bash

./ts3server_startscript.sh stop

exit

“`

Reporniți serviciul gestionat:

“`bash

systemctl start teamspeak.service

“`

Cerințe pentru parolă: Utilizați minimum 16 caractere cu litere mari și mici, cifre și simboluri. Interfața ServerQuery este expusă pe portul TCP `10011` și este o țintă comună pentru atacuri de forță brută dacă este lăsată cu o parolă slabă.

Pasul 7: Configurarea firewall-ului

Dacă `ufw` este activ pe serverul dvs., deschideți porturile necesare:

“`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

“`

Pentru `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

“`

> Sfat de securizare: Dacă nu aveți nevoie de acces public ServerQuery, restricționați portul `10011` doar la IP-uri de management specifice. Expunerea sa publică este inutilă pentru operarea standard a serverului vocal.

Pasul 8: Conectarea din clientul TeamSpeak

  1. Descărcați și instalați TeamSpeak 3 Client pentru sistemul dvs. de operare desktop (Windows, macOS, Linux).
  2. Deschideți clientul și navigați la Connections > Connect.
  3. Introduceți adresa IP a VPS-ului dvs. ca Server Nickname or Address.
  4. Lăsați portul ca `9987` dacă nu l-ați schimbat în `ts3server.ini`.
  5. La prima conectare, clientul vă va solicita să introduceți cheia de privilegii (token). Lipiți token-ul recuperat în Pasul 5.
  6. Clientul dvs. este acum administratorul serverului.

Opțional: Utilizarea scriptului de instalare automatizat

Pentru implementare rapidă, AlexHost oferă un script de instalare automatizat care gestionează instalarea dependențelor, crearea utilizatorului, descărcarea binarului și configurarea serviciului într-o singură execuție:

“`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

“`

Examinați conținutul scriptului înainte de a-l executa pentru a înțelege ce modificări face sistemului dvs. Scripturile automatizate sunt convenabile, dar nu trebuie niciodată rulate orbește pe infrastructura de producție.

TeamSpeak vs. Alternative: Platforme vocale auto-găzduite

FuncționalitateTeamSpeak 3MumbleDiscord (cloud)
Auto-găzduitDaDaNu
Utilizare RAM (inactiv)~30 MB~15 MBN/A
LatențăFoarte micăFoarte micăMică–Medie
CriptareTLS (semnalizare)DTLS + SRTPProprietară
Sistem de permisiuniACL avansatModeratBazat pe roluri
Disponibilitate clientWin/Mac/Linux/MobileWin/Mac/LinuxWin/Mac/Linux/Mobile
Licență (server)Gratuit până la 32 de sloturiOpen sourceN/A
CodecOpusOpus/CELTOpus
ServerQuery APIDa (TCP/SSH)NuDoar REST API

ServerQuery API al TeamSpeak este un diferențiator semnificativ pentru organizațiile care au nevoie de management programatic al serverului — creare automată de canale, integrare de boturi sau modificări de permisiuni declanșate de CI/CD.

Probleme comune de instalare și soluții

Serverul nu pornește — „Could not bind to port 9987″

Un alt proces utilizează UDP 9987, sau serviciul a pornit înainte ca rețeaua să fie pregătită. Verificați cu `ss -ulnp | grep 9987` și asigurați-vă că directiva `After=network.target` este prezentă în unitatea dvs. de serviciu.

Eroare de fișier de licență negăsit

Fișierul `.ts3server_license_accepted` trebuie să existe în directorul home al utilizatorului care rulează procesul (`/home/teamspeak/`). Confirmați cu `ls -la /home/teamspeak/.ts3server_license_accepted`.

Token-ul nu a fost găsit în jurnale

Directorul de jurnale implicit este `/home/teamspeak/logs/`. Dacă ați extras arhiva într-o altă cale, ajustați comanda grep în consecință. Token-urile apar în jurnal doar la prima pornire — dacă baza de date există deja, nu se generează niciun token nou.

Conexiunea ServerQuery refuzată

Confirmați că portul `10011/TCP` este deschis în firewall-ul dvs. și că procesul serverului rulează. Testați local cu `telnet 127.0.0.1 10011` — o conexiune reușită returnează un banner `TS3`.

Utilizare ridicată a CPU cu mulți utilizatori

TeamSpeak este single-threaded pentru mixarea vocii. Dacă depășiți ~200 de utilizatori concurenți pe o singură instanță de server virtual, luați în considerare implementarea mai multor servere virtuale sau actualizarea la un plan de Servere Dedicate pentru viteză garantată a ceasului CPU și fără contaminare de la vecini zgomotoși.

Securizarea implementării TeamSpeak

Pe lângă izolarea utilizatorilor și regulile de firewall acoperite mai sus, aplicați aceste măsuri de întărire:

  • Schimbați porturile implicite în `ts3server.ini` pentru a reduce expunerea la scanarea automată. Actualizați regulile de firewall în consecință.
  • Restricționați ServerQuery (`10011/TCP`) la IP-uri de management folosind filtrarea surselor din firewall.
  • Activați autentificarea prin cheie SSH pe VPS-ul dvs. și dezactivați autentificarea root bazată pe parolă. Consultați panoul de control al VPS-ului dvs. pentru opțiunile de gestionare a cheilor SSH.
  • Monitorizați jurnalele prin `journalctl -u teamspeak -f` pentru tipare neobișnuite de conexiune sau eșecuri repetate de autentificare ServerQuery.
  • Copii de rezervă regulate ale `/home/teamspeak/ts3server.sqlitedb` — acest fișier conține toate configurațiile de canale, grupurile de server, permisiunile și identitățile clienților. Pierderea sa înseamnă reconstruirea întregii structuri a serverului de la zero.
  • Mențineți binarul actualizat. TeamSpeak lansează periodic patch-uri de securitate. Abonați-vă la anunțurile lor de lansare și repetați Pașii 3–4 cu noul tarball de versiune când sunt disponibile actualizări.

Dacă gestionați mai multe servicii pe același VPS, luați în considerare asocierea instanței dvs. TeamSpeak cu o soluție de Panouri de Control VPS pentru a simplifica gestionarea serviciilor, monitorizarea și sarcinile programate dintr-o interfață unificată.

Matrice de decizie: Este această configurare potrivită pentru dvs.?

ScenariuAcțiune recomandată
Sub 32 de utilizatori concurenți, comunitate de gamingVPS de nivel de intrare, licență gratuită TeamSpeak
32–512 utilizatori concurenți, organizațieActualizare licență TeamSpeak + VPS cu 2–4 vCPU
Necesită izolare completă a hardware-ului, 500+ utilizatoriServer dedicat, mai multe instanțe de server virtual
Dorește panou gestionat + TeamSpeakVPS cu cPanel sau DirectAdmin
Necesită rutare EU/US cu latență redusăAlegeți locația centrului de date VPS cel mai aproape de utilizatori
Necesită prezență web complementarăAdăugați [Găzduire Web Partajată](https://alexhost.com/ro/shared-hosting/) sau subdomeniu pe același VPS
Necesită domeniu personalizat pentru adresa serverului[Înregistrare Domeniu](https://alexhost.com/ro/domains/) + înregistrare DNS A care indică spre IP-ul VPS

Concluzii tehnice cheie

  • Rulați întotdeauna TeamSpeak sub un utilizator dedicat non-root. Aceasta este non-negociabilă pentru orice serviciu expus pe internet.
  • Fișierul marker `ts3server_license_accepted` trebuie să existe înainte ca daemonul să pornească — un punct comun de eșec la prima pornire.
  • Utilizați `Type=forking` în unitatea systemd, nu `Type=simple`. Scriptul de pornire bifurcă un proces în fundal; `simple` va face ca systemd să urmărească greșit PID-ul.
  • Recuperați token-ul cheii de privilegii din jurnale imediat după prima pornire. Este consumat la prima utilizare și nu poate fi regenerat fără o procedură manuală de resetare a parolei.
  • Portul `9987/UDP` este singurul port necesar pentru operarea vocală de bază. `10011/TCP` și `30033/TCP` sunt opționale în funcție de cazul dvs. de utilizare.
  • Faceți copii de rezervă ale `ts3server.sqlitedb` conform unui program. Toată configurația serverului se află în acest singur fișier.
  • Pentru implementările de producție, restricționați ServerQuery la localhost sau un VLAN de management — nu îl expuneți niciodată public fără liste de IP-uri permise.

Întrebări frecvente

Care este numărul maxim de utilizatori pe o licență gratuită de server TeamSpeak?

Licența gratuită non-profit suportă până la 32 de sloturi simultane. Pentru implementări mai mari, TeamSpeak oferă licențe anuale pentru 64, 128, 256 sau 512 sloturi, precum și o „Licență de Activare” cu sloturi nelimitate pentru organizațiile eligibile.

Pot rula TeamSpeak Server pe un VPS cu 512 MB RAM?

Da. Daemonul TeamSpeak 3 Server consumă aproximativ 25–40 MB de RAM în stare inactivă și scalează modest cu utilizatorii concurenți. Un VPS cu 512 MB este suficient pentru comunități cu sub 50 de utilizatori simultani, cu spațiu confortabil pentru SO și procesele de sistem.

Cum actualizez TeamSpeak Server fără a pierde configurația?

Opriți serviciul cu `systemctl stop teamspeak`, descărcați noul tarball de versiune ca utilizator `teamspeak`, extrageți-l cu `–strip-components 1` în același director (suprascriind doar binarele), apoi reporniți serviciul. Baza de date `ts3server.sqlitedb` și fișierul de configurare `ts3server.ini` nu sunt suprascrise prin acest proces.

De ce serverul meu TeamSpeak nu este vizibil în lista publică de servere?

În mod implicit, serverele TeamSpeak nu se înregistrează în lista publică de servere. Pentru a activa listarea, setați `machine_id=` și configurați `serverip` în `ts3server.ini`, apoi activați opțiunea de listare publică prin ServerQuery sau panoul de administrare a serverului din client. Asigurați-vă că portul UDP `9987` este accesibil de pe internet.

Este traficul TeamSpeak criptat în mod implicit?

Traficul de semnalizare (configurarea conexiunii, chat, permisiuni) este criptat prin TLS. Datele vocale transmise prin UDP nu sunt criptate în mod implicit în TeamSpeak 3. Criptarea vocii poate fi activată per canal sau la nivel de server prin setările serverului, cu costul unei mici creșteri a utilizării CPU. TeamSpeak 5 (în prezent în dezvoltare) utilizează criptare end-to-end în mod implicit.

15%

Economisește 15% la toate serviciile de găzduire

Testează-ți abilitățile și obține Reducere la orice plan de găzduire

Utilizați codul:

Skills
Începeți