15%

Збережіть 15% на всі хостинг-послуги

Перевірте свої навички і отримайте Знижку на будь-який план хостингу

Використовуй код:

Skills
Почати
09.10.2024

Як встановити сервер TeamSpeak на VPS (Посібник для Ubuntu/CentOS)

TeamSpeak — це самостійно розгорнута платформа голосового зв’язку з низькою затримкою, яка працює як окремий серверний демон на Linux. Встановлення її на VPS надає вам повний адміністративний контроль над каналами, дозволами, кодеками та політиками безпеки — без залежності від сторонньої інфраструктури або обмежень використання.

Цей посібник охоплює повне встановлення TeamSpeak 3 Server на Ubuntu (з примітками для варіантів CentOS/RHEL), включаючи ізоляцію користувачів, налаштування служби systemd, захист пароля адміністратора та підключення клієнта. Кожна команда готова до використання у виробничому середовищі та протестована на чистому середовищі 22.04 LTS.

Чому варто самостійно розгортати TeamSpeak на VPS

Комерційні голосові платформи, як-от Discord, застосовують політики зберігання даних, алгоритмічну модерацію та обмеження швидкості, які організації не можуть обійти. Самостійно розгорнутий екземпляр TeamSpeak повністю усуває ці обмеження. Ви контролюєте:

  • Якість кодека (Opus Voice, Opus Music) та бітрейт для кожного каналу
  • Систему дозволів з детальними ACL груп сервера та груп каналів
  • Шифрування через TLS для сигналізації та опціональне шифрування голосу
  • Розміщення даних — ваш голосовий трафік ніколи не проходить через сторонній ретранслятор
  • SLA часу безвідмовної роботи — безпосередньо пов’язаний з вашим провайдером VPS, а не зі спільним хмарним сервісом

Для ігрових кланів, кіберспортивних організацій, команд віддаленої розробки та корпоративних комунікацій це означає вимірювані переваги у надійності та відповідності вимогам.

Мінімальні системні вимоги

TeamSpeak 3 Server надзвичайно легкий. Наступні характеристики підтримують приблизно 50–100 одночасних користувачів без погіршення якості звуку:

РесурсМінімумРекомендовано (100+ користувачів)
Ядра CPU1 vCPU2 vCPU
RAM512 MB1 GB
Дисковий простір1 GB5 GB (логи + БД)
Мережа10 Mbps100 Mbps
ОСUbuntu 20.04+ / CentOS 7+Ubuntu 22.04 LTS
Архітектураx86_64 (amd64)x86_64 (amd64)

План VPS Хостингу з 1 vCPU та 512 MB RAM достатній для невеликої спільноти. Масштабуйте вертикально в міру зростання кількості одночасних користувачів.

Ключові порти для відкриття у вашому брандмауері:

  • `9987/UDP` — голосові дані (за замовчуванням)
  • `10011/TCP` — ServerQuery (raw або SSH)
  • `30033/TCP` — передача файлів

Крок 1: Підготовка сервера

Підключіться до вашого VPS як root:

“`bash

ssh root@your_server_ip -p your_ssh_port

“`

Оновіть усі системні пакети, щоб усунути відомі вразливості перед встановленням нового програмного забезпечення:

“`bash

sudo apt update && sudo apt upgrade -y

“`

Встановіть `bzip2`, який необхідний для розпакування архіву TeamSpeak:

“`bash

sudo apt install bzip2 -y

“`

На CentOS/AlmaLinux/Rocky Linux замініть вищезазначене на:

“`bash

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

“`

Крок 2: Створення виділеного системного користувача

Запуск TeamSpeak від імені root є критичною помилкою безпеки. Якщо процес буде скомпрометовано, зловмисник отримає негайний root-доступ до всього хоста. Завжди ізолюйте його під непривілейованим користувачем:

“`bash

sudo adduser teamspeak

“`

Дотримуйтесь підказок для встановлення пароля. Цей користувач буде власником усіх бінарних файлів TeamSpeak, файлів конфігурації та бази даних SQLite.

> Примітка щодо безпеки: Для захищених середовищ розгляньте можливість створення користувача з `–disabled-login` та використання `sudo -u teamspeak` для всіх операцій, що повністю запобігає інтерактивному доступу до оболонки.

Крок 3: Завантаження та розпакування бінарного файлу TeamSpeak Server

Перейдіть до контексту користувача `teamspeak`:

“`bash

sudo su – teamspeak

“`

Завантажте останній стабільний випуск TeamSpeak 3 Server для 64-бітного Linux. Завжди перевіряйте поточний номер версії на офіційній сторінці завантажень TeamSpeak перед виконанням цієї команди, оскільки рядок версії змінюється з кожним випуском:

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

“`

Розпакуйте архів та видаліть верхній рівень директорії, щоб усі файли потрапили безпосередньо до поточного робочого каталогу (`/home/teamspeak/`):

“`bash

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

“`

Прийміть ліцензійну угоду TeamSpeak, створивши необхідний файл-маркер. Серверний демон відмовиться запускатися без нього:

“`bash

touch ~/.ts3server_license_accepted

“`

Поверніться до користувача root:

“`bash

exit

“`

Крок 4: Створення модуля служби systemd

Управління TeamSpeak через systemd забезпечує автоматичний перезапуск процесу після перезавантаження або збою, інтеграцію з `journald` для централізованого журналювання та дотримання правильного порядку залежностей під час завантаження.

Відкрийте новий файл модуля служби:

“`bash

nano /etc/systemd/system/teamspeak.service

“`

Вставте наступну повну конфігурацію модуля:

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

“`

Пояснення ключових директив:

  • `After=network.target` — запобігає запуску до готовності мережевого стека, уникаючи помилок прив’язки до `9987/UDP`
  • `Type=forking` — правильно для стартового скрипту TeamSpeak, який розгалужує фоновий процес
  • `Restart=on-failure` — автоматично відновлюється після несподіваних збоїв без ручного втручання
  • `RestartSec=10s` — додає невелику затримку перед спробами перезапуску для запобігання швидким циклам збоїв

Збережіть файл (`Ctrl+S`, потім `Ctrl+X`), потім перезавантажте демон systemd для реєстрації нового модуля:

“`bash

systemctl daemon-reload

“`

Увімкніть службу для запуску при завантаженні та запустіть її негайно:

“`bash

systemctl enable –now teamspeak

“`

Перевірте, що служба активна та працює:

“`bash

systemctl status teamspeak

“`

Очікуваний вивід містить `Active: active (running)` з дійсним PID. Якщо статус показує `failed`, негайно перевірте логи:

“`bash

journalctl -u teamspeak -n 50 –no-pager

“`

Крок 5: Отримання ключа привілеїв адміністратора (токена)

Коли TeamSpeak Server запускається вперше, він генерує ключ привілеїв (токен) у своїх файлах журналу. Цей токен надає першому підключеному клієнту повні права адміністратора сервера. Ви повинні отримати його до того, як хтось інший підключиться.

“`bash

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

“`

Вивід міститиме рядок, подібний до:

“`

token=q1a2b3c4d5e6f7g8h9i0jKLMNOPQRSTUVWXYZ

“`

Скопіюйте цей токен. Коли ви вперше підключитеся через клієнт TeamSpeak, вам буде запропоновано його ввести. Це підвищить ваш клієнт до групи сервера `Server Admin`.

> Важливо: Цей токен є одноразовим і використовується при першому застосуванні. Якщо ви втратите його до використання, вам доведеться вручну встановити новий пароль адміністратора (див. Крок 6). Зберігайте його в надійному місці.

Крок 6: Встановлення або скидання пароля ServerAdmin

Обліковий запис `serveradmin` використовується для доступу через ServerQuery — інтерфейс raw TCP або SSH, який дозволяє скриптове адміністрування, інтеграцію ботів та інструменти віддаленого управління, як-от YaTQA або ts3admin.

Щоб встановити або скинути цей пароль, необхідно тимчасово зупинити службу, запустити бінарний файл сервера безпосередньо з аргументом пароля, потім зупинити його знову та перезапустити через systemd:

“`bash

systemctl stop teamspeak.service

“`

Перейдіть до користувача teamspeak та встановіть пароль:

“`bash

su – teamspeak

./ts3server_startscript.sh start serveradmin_password=YourStrongPassword

“`

Зачекайте повної ініціалізації сервера (стежте за `TeamSpeak 3 Server started successfully` у виводі), потім зупиніть його:

“`bash

./ts3server_startscript.sh stop

exit

“`

Перезапустіть керовану службу:

“`bash

systemctl start teamspeak.service

“`

Вимоги до пароля: Використовуйте мінімум 16 символів зі змішаним регістром, цифрами та символами. Інтерфейс ServerQuery відкритий на TCP-порту `10011` і є поширеною ціллю для атак грубої сили, якщо залишити слабкий пароль.

Крок 7: Налаштування брандмауера

Якщо `ufw` активний на вашому сервері, відкрийте необхідні порти:

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

“`

Для `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

“`

> Порада щодо захисту: Якщо вам не потрібен публічний доступ до ServerQuery, обмежте порт `10011` лише певними IP-адресами управління. Відкривати його публічно не потрібно для стандартної роботи голосового сервера.

Крок 8: Підключення з клієнта TeamSpeak

  1. Завантажте та встановіть TeamSpeak 3 Client для вашої настільної ОС (Windows, macOS, Linux).
  2. Відкрийте клієнт та перейдіть до Connections > Connect.
  3. Введіть IP-адресу вашого VPS як Server Nickname or Address.
  4. Залиште порт `9987`, якщо ви не змінили його в `ts3server.ini`.
  5. При першому підключенні клієнт запропонує вам ввести ключ привілеїв (токен). Вставте токен, отриманий у Кроці 5.
  6. Тепер ваш клієнт є адміністратором сервера.

Додатково: Використання автоматизованого скрипту встановлення

Для швидкого розгортання AlexHost надає автоматизований скрипт встановлення, який виконує встановлення залежностей, створення користувача, завантаження бінарного файлу та налаштування служби за одне виконання:

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

“`

Перегляньте вміст скрипту перед його виконанням, щоб зрозуміти, які зміни він вносить у вашу систему. Автоматизовані скрипти зручні, але ніколи не слід запускати їх наосліп у виробничій інфраструктурі.

TeamSpeak проти альтернатив: самостійно розгорнуті голосові платформи

ФункціяTeamSpeak 3MumbleDiscord (хмара)
Самостійне розгортанняТакТакНі
Використання RAM (у стані спокою)~30 MB~15 MBN/A
ЗатримкаДуже низькаДуже низькаНизька–Середня
ШифруванняTLS (сигналізація)DTLS + SRTPПропрієтарне
Система дозволівРозширений ACLПомірнийНа основі ролей
Доступність клієнтаWin/Mac/Linux/MobileWin/Mac/LinuxWin/Mac/Linux/Mobile
Ліцензія (сервер)Безкоштовно до 32 слотівВідкритий кодN/A
КодекOpusOpus/CELTOpus
ServerQuery APIТак (TCP/SSH)НіЛише REST API

ServerQuery API TeamSpeak є значною перевагою для організацій, яким потрібне програмне управління сервером — автоматизоване створення каналів, інтеграція ботів або зміни дозволів, ініційовані CI/CD.

Поширені проблеми встановлення та їх вирішення

Сервер не запускається — “Could not bind to port 9987”

Інший процес використовує UDP 9987, або служба запустилася до готовності мережі. Перевірте за допомогою `ss -ulnp | grep 9987` та переконайтеся, що директива `After=network.target` присутня у вашому модулі служби.

Помилка “License file not found”

Файл `.ts3server_license_accepted` повинен існувати в домашньому каталозі користувача, що запускає процес (`/home/teamspeak/`). Перевірте за допомогою `ls -la /home/teamspeak/.ts3server_license_accepted`.

Токен не знайдено в логах

Каталог логів за замовчуванням — `/home/teamspeak/logs/`. Якщо ви розпакували архів в інший шлях, відповідно скоригуйте команду grep. Токени з’являються в логах лише при першому запуску — якщо база даних вже існує, новий токен не генерується.

Відмова у підключенні до ServerQuery

Переконайтеся, що порт `10011/TCP` відкритий у вашому брандмауері та що процес сервера запущений. Перевірте локально за допомогою `telnet 127.0.0.1 10011` — успішне підключення повертає банер `TS3`.

Високе використання CPU при великій кількості користувачів

TeamSpeak є однопотоковим для мікшування голосу. Якщо ви перевищуєте ~200 одночасних користувачів на одному екземплярі віртуального сервера, розгляньте розгортання кількох віртуальних серверів або перехід на план Виділених серверів для гарантованої тактової частоти CPU та відсутності конкуренції з сусідами.

Захист вашого розгортання TeamSpeak

Окрім ізоляції користувачів та правил брандмауера, розглянутих вище, застосуйте такі заходи захисту:

  • Змініть порти за замовчуванням у `ts3server.ini`, щоб зменшити вплив автоматизованого сканування. Відповідно оновіть правила брандмауера.
  • Обмежте ServerQuery (`10011/TCP`) до IP-адрес управління за допомогою фільтрації джерел у брандмауері.
  • Увімкніть автентифікацію за SSH-ключем на вашому VPS та вимкніть вхід root за паролем. Зверніться до панелі управління VPS для параметрів управління SSH-ключами.
  • Моніторте логи через `journalctl -u teamspeak -f` на предмет незвичних шаблонів підключень або повторних невдалих спроб автентифікації ServerQuery.
  • Регулярне резервне копіювання `/home/teamspeak/ts3server.sqlitedb` — цей файл містить усі конфігурації каналів, групи сервера, дозволи та ідентифікатори клієнтів. Його втрата означає повне відновлення структури сервера з нуля.
  • Підтримуйте бінарний файл в актуальному стані. TeamSpeak periodично випускає патчі безпеки. Підпишіться на їхні оголошення про випуски та повторіть Кроки 3–4 з новим архівом версії, коли з’являться оновлення.

Якщо ви керуєте кількома службами на одному VPS, розгляньте можливість поєднання вашого екземпляра TeamSpeak з рішенням Панелей управління VPS для спрощення управління службами, моніторингу та запланованих завдань з єдиного інтерфейсу.

Матриця рішень: чи підходить вам це налаштування?

СценарійРекомендована дія
До 32 одночасних користувачів, ігрова спільнотаVPS початкового рівня, безкоштовна ліцензія TeamSpeak
32–512 одночасних користувачів, організаціяОновлення ліцензії TeamSpeak + VPS з 2–4 vCPU
Потрібна повна апаратна ізоляція, 500+ користувачівВиділений сервер, кілька екземплярів віртуальних серверів
Потрібна керована панель + TeamSpeakVPS з cPanel або DirectAdmin
Потрібна маршрутизація з низькою затримкою ЄС/СШАВиберіть розташування дата-центру VPS, найближче до користувачів
Потрібна супутня веб-присутністьДодайте [Shared Web Hosting](https://alexhost.com/uk/shared-hosting/) або субдомен на тому ж VPS
Потрібен власний домен для адреси сервера[Реєстрація домену](https://alexhost.com/uk/domains/) + DNS A-запис, що вказує на IP VPS

Технічні ключові висновки

  • Завжди запускайте TeamSpeak під виділеним користувачем без прав root. Це є обов’язковим для будь-якої служби, доступної з інтернету.
  • Файл-маркер `ts3server_license_accepted` повинен існувати до запуску демона — це поширена точка відмови при першому завантаженні.
  • Використовуйте `Type=forking` у модулі systemd, а не `Type=simple`. Стартовий скрипт розгалужує фоновий процес; `simple` призведе до неправильного відстеження PID системою systemd.
  • Отримайте токен ключа привілеїв з логів одразу після першого запуску. Він використовується при першому застосуванні та не може бути перегенерований без ручної процедури скидання пароля.
  • Порт `9987/UDP` є єдиним портом, необхідним для базової голосової роботи. `10011/TCP` та `30033/TCP` є опціональними залежно від вашого випадку використання.
  • Регулярно створюйте резервні копії `ts3server.sqlitedb`. Уся конфігурація сервера зберігається в цьому єдиному файлі.
  • Для виробничих розгортань обмежте ServerQuery до localhost або VLAN управління — ніколи не відкривайте його публічно без дозволеного списку IP.

Часті запитання

Яка максимальна кількість користувачів на безкоштовній ліцензії TeamSpeak?

Безкоштовна некомерційна ліцензія підтримує до 32 одночасних слотів. Для більших розгортань TeamSpeak пропонує річні ліцензії на 64, 128, 256 або 512 слотів, а також “Ліцензію активації” з необмеженою кількістю слотів для організацій, що відповідають вимогам.

Чи можу я запустити TeamSpeak Server на VPS з 512 MB RAM?

Так. Демон TeamSpeak 3 Server споживає приблизно 25–40 MB RAM у стані спокою та помірно масштабується з кількістю одночасних користувачів. VPS з 512 MB RAM достатній для спільнот до 50 одночасних користувачів, з комфортним запасом для ОС та системних процесів.

Як оновити TeamSpeak Server без втрати конфігурації?

Зупиніть службу за допомогою `systemctl stop teamspeak`, завантажте новий архів версії як користувач `teamspeak`, розпакуйте його за допомогою `–strip-components 1` в той самий каталог (перезаписуючи лише бінарні файли), потім перезапустіть службу. База даних `ts3server.sqlitedb` та файл конфігурації `ts3server.ini` не перезаписуються в цьому процесі.

Чому мій сервер TeamSpeak не відображається у публічному списку серверів?

За замовчуванням сервери TeamSpeak не реєструються у публічному списку серверів. Щоб увімкнути відображення, встановіть `machine_id=` та налаштуйте `serverip` у `ts3server.ini`, потім увімкніть опцію публічного відображення через ServerQuery або панель адміністрування сервера в клієнті. Переконайтеся, що UDP-порт `9987` доступний з інтернету.

Чи шифрується трафік TeamSpeak за замовчуванням?

Сигнальний трафік (встановлення з’єднання, чат, дозволи) шифрується через TLS. Голосові дані, що передаються через UDP, за замовчуванням не шифруються в TeamSpeak 3. Шифрування голосу можна увімкнути для кожного каналу або для всього сервера через налаштування сервера, ціною невеликого збільшення використання CPU. TeamSpeak 5 (наразі в розробці) використовує наскрізне шифрування за замовчуванням.

15%

Збережіть 15% на всі хостинг-послуги

Перевірте свої навички і отримайте Знижку на будь-який план хостингу

Використовуй код:

Skills
Почати