TS-Server

Установка TeamSpeak Server на Ubuntu 24.04

Пошаговая установка TeamSpeak Server 3 на VDS с Ubuntu 24.04 — контрольная сумма, systemd, фаервол, бэкап и привязка домена.

Проверено 13 августа 2026. Версия сервера 3.13.8 и её контрольная сумма SHA-256 сверены с официальным файлом teamspeak.com/versions/server.json 7 августа 2026 года.

Эта инструкция проведёт от пустого VDS до работающего голосового сервера, который переживает перезагрузки, закрыт фаерволом, регулярно бэкапится и доступен по доменному имени, а не по IP. Команды ниже проверены на Ubuntu 24.04; для нового VDS уже можно выбрать Ubuntu 26.04. Разбор того, нужно ли обновляться с Ubuntu 24.04 на 26.04 и как безопаснее перенести рабочий TeamSpeak, вынесен в отдельную статью. Если пока выбираете способ запуска, начните с обзора вариантов создания сервера TeamSpeak. Предпочитаете контейнеры — есть та же установка через Docker.

Что понадобится:

  • VDS с Ubuntu 24.04 и публичным IPv4-адресом. Root-доступ по SSH.
  • 15–30 минут времени.
  • Для последнего шага — домен (любой, хоть за 200 рублей в зоне .ru).

Требования к железу. Официальных цифр «столько-то слотов — столько-то ядер» TeamSpeak не публикует, поэтому ниже — ориентиры из практики, помеченные как оценка. Сервер TeamSpeak 3 — один из самых лёгких серверных процессов вообще: он не микширует звук (каждый клиент получает потоки говорящих как есть), поэтому нагрузка на CPU минимальна.

СлотовvCPURAMКаналКомментарий
до 32 (бесплатная лицензия)11 ГБ10 Мбит/сСамый дешёвый тариф любого хостера. Оценка
до 12811–2 ГБ50 Мбит/сУзкое место — канал, не CPU. Оценка
256+22 ГБ100 Мбит/сОценка

Сам процесс ts3server в простое занимает несколько десятков мегабайт памяти; 1 ГБ RAM нужен скорее операционной системе, чем TeamSpeak. Трафик считается так: поток одного говорящего — примерно 30–70 Кбит/с в зависимости от настроек кодека Opus, и сервер отправляет его каждому слушателю в канале отдельно. Даже канал на 30 человек, где говорят двое, — это порядка 4 Мбит/с исходящего. Единственный параметр VDS, который реально влияет на качество связи, — задержка до участников: выбирайте дата-центр в том регионе, где живёт большинство.

Ставить будем TeamSpeak 3 Server 3.13.8 — актуальную стабильную версию. TeamSpeak 6 Server существует, но на данный момент имеет статус beta, и для боевого сервера сообщество он пока не рекомендуется — вернётесь к нему, когда выйдет стабильный релиз.

Подключаемся к серверу и обновляем систему

Подключитесь к VDS по SSH (адрес и пароль root выдаёт хостер после создания сервера):

ssh root@203.0.113.10

Первым делом обновите систему — свежесозданный VDS почти всегда отстаёт от репозиториев:

apt update && apt upgrade -y

Если ядро обновилось, перезагрузитесь (reboot) и подключитесь заново. Больше из пакетов ничего не нужно: сервер TeamSpeak — статически собранный бинарник, он не тянет зависимостей. Единственное, что пригодится дальше, — bzip2 для распаковки архива (в Ubuntu 24.04 он обычно уже есть):

apt install -y bzip2

Создаём отдельного пользователя для TeamSpeak

Запускать голосовой сервер от root нельзя: любая уязвимость в сервисе, торчащем в интернет, при работе от root означает полный захват машины. Создаём системного пользователя без пароля и без права логина по SSH — под ним будет жить только TeamSpeak:

adduser --system --group --home /opt/teamspeak --shell /usr/sbin/nologin teamspeak

Разбор флагов: --system — служебный аккаунт с UID из системного диапазона; --group — одноимённая группа; --home /opt/teamspeak — каталог, где будет лежать сервер; --shell /usr/sbin/nologin — интерактивный вход под этим пользователем невозможен в принципе, даже если кто-то узнает пароль (которого нет).

Когда дальше понадобится выполнить команду от имени этого пользователя, используем sudo -u teamspeak.

Скачиваем сервер и проверяем контрольную сумму

Скачиваем официальный архив в домашний каталог пользователя:

cd /opt/teamspeak
wget https://files.teamspeak-services.com/releases/server/3.13.8/teamspeak3-server_linux_amd64-3.13.8.tar.bz2

Теперь — шаг, который обычно пропускают в интернете: проверка контрольной суммы. Она гарантирует, что архив скачался целиком и что это именно тот файл, который опубликовал TeamSpeak, а не подменённый по дороге или битый. Вы собираетесь запустить этот код на своём сервере с доступом в интернет — минута на проверку того стоит.

Эталонную сумму TeamSpeak публикует машиночитаемо в файле https://teamspeak.com/versions/server.json — там же видно, не вышла ли версия новее. Для 3.13.8 (сверено 07.08.2026) сумма такая:

echo "a3c4658e09892d3dbd8ea752d0de42dc7d111bf44d09721927f0f4782496eb2d  teamspeak3-server_linux_amd64-3.13.8.tar.bz2" | sha256sum -c

Ожидаемый вывод:

teamspeak3-server_linux_amd64-3.13.8.tar.bz2: OK

Если вместо OK вы видите FAILED — не распаковывайте архив. Удалите его и скачайте заново; если не помогло — сверьтесь с актуальным server.json: возможно, вышла новая версия и вы смотрите на устаревшую сумму. Проверить текущую версию и сумму прямо с сервера можно так:

curl -s https://teamspeak.com/versions/server.json | python3 -m json.tool

Если там указана версия новее 3.13.8 — просто подставьте её номер в ссылку и в команду проверки, схема ссылок у TeamSpeak стабильная.

Распаковываем и наводим порядок с правами:

tar xjf teamspeak3-server_linux_amd64-3.13.8.tar.bz2
chown -R teamspeak:teamspeak /opt/teamspeak

Сервер окажется в /opt/teamspeak/teamspeak3-server_linux_amd64/. Архив после распаковки можно удалить.

Принимаем лицензию и запускаем сервер в первый раз

Начиная с версии 3.1.0 сервер не стартует, пока вы явно не примете лицензионное соглашение. Прочитать его можно в файле LICENSE в каталоге сервера. Принять — создав файл-маркер:

sudo -u teamspeak touch /opt/teamspeak/teamspeak3-server_linux_amd64/.ts3server_license_accepted

(Альтернативы — переменная окружения TS3SERVER_LICENSE=accept или параметр запуска license_accepted=1; результат одинаковый.)

Первый запуск делаем вручную, потому что именно при нём сервер создаёт базу данных и один-единственный раз печатает учётные данные администратора:

cd /opt/teamspeak/teamspeak3-server_linux_amd64
sudo -u teamspeak ./ts3server_startscript.sh start createinifile=1

Параметр createinifile=1 заодно создаст файл конфигурации ts3server.ini — он понадобится на шаге с фаерволом.

Через пару секунд в консоли появится блок такого вида:

------------------------------------------------------------------
                      I M P O R T A N T
------------------------------------------------------------------
               Server Query Admin Account created
         loginname= "serveradmin", password= "xXxXxXxX"
         apikey= "BAA..."
------------------------------------------------------------------

------------------------------------------------------------------
                      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=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
------------------------------------------------------------------

Сохраните обе строки в надёжное место — пароль serveradmin и token (privilege key). Пароль даёт полный административный доступ к серверу через ServerQuery, ключ — права администратора первому, кто введёт его в клиенте. Повторно сервер их не покажет.

Если консоль уже закрыли — не страшно: и токен, и запись о создании аккаунта serveradmin попадают в лог первого запуска. Найти токен можно так:

grep -r "token=" /opt/teamspeak/teamspeak3-server_linux_amd64/logs/

А если и лог утерян, и ключ использован — в конце статьи есть отдельный раздел о восстановлении доступа.

Теперь остановим сервер — дальше он будет запускаться правильно, через systemd:

sudo -u teamspeak ./ts3server_startscript.sh stop

Настраиваем автозапуск через systemd

Запуск через стартовый скрипт руками — временное решение: после перезагрузки VDS сервер сам не поднимется, а после падения процесса никто его не перезапустит. Постоянное решение — юнит systemd.

Создайте файл /etc/systemd/system/ts3server.service:

[Unit]
Description=TeamSpeak 3 Server
After=network-online.target
Wants=network-online.target

[Service]
Type=forking
User=teamspeak
Group=teamspeak
WorkingDirectory=/opt/teamspeak/teamspeak3-server_linux_amd64
ExecStart=/opt/teamspeak/teamspeak3-server_linux_amd64/ts3server_startscript.sh start
ExecStop=/opt/teamspeak/teamspeak3-server_linux_amd64/ts3server_startscript.sh stop
PIDFile=/opt/teamspeak/teamspeak3-server_linux_amd64/ts3server.pid
Restart=on-failure
RestartSec=15

[Install]
WantedBy=multi-user.target

Почему юнит устроен именно так:

  • Type=forking — стартовый скрипт TeamSpeak не остаётся на переднем плане: он запускает бинарник ts3server в фоне (демоном) и завершается. Systemd должен знать, что «главный» процесс — не скрипт, а его потомок, иначе он решит, что сервис умер сразу после старта.
  • PIDFile= — при Type=forking systemd нужно знать PID настоящего серверного процесса, чтобы следить за ним и корректно останавливать. Стартовый скрипт записывает его в ts3server.pid в рабочем каталоге — указываем этот файл.
  • User= и Group= — сервер работает от бесправного пользователя teamspeak, а не от root; это весь смысл второго шага.
  • WorkingDirectory= — скрипт ищет бинарник, базу и логи относительно текущего каталога, поэтому каталог задаём явно.
  • Restart=on-failure и RestartSec=15 — если процесс упал, systemd подождёт 15 секунд и поднимет его снова. Пауза нужна, чтобы при систематической ошибке (например, битой базе) сервис не молотил рестартами по кругу без передышки.
  • After=network-online.target — при загрузке VDS сервер стартует после того, как поднялась сеть: ему нужно сразу привязаться к внешнему адресу и достучаться до сервера учёта лицензий.

Включаем и запускаем:

systemctl daemon-reload
systemctl enable --now ts3server

Проверяем:

systemctl status ts3server

В выводе должно быть Active: active (running), а в строке Main PID — процесс ts3server. Свежие сообщения сервиса смотрят так:

journalctl -u ts3server -n 50 --no-pager

Учтите, что содержательные логи TeamSpeak пишет не в journal, а в свои файлы в каталоге logs/ — туда стоит заглядывать при разборе проблем самого сервера, а journalctl покажет проблемы запуска и остановки сервиса.

Финальная проверка автозапуска — честная, перезагрузкой:

reboot

После перезагрузки подключитесь по SSH и убедитесь, что systemctl status ts3server снова показывает active (running).

Открываем нужные порты и закрываем лишние

Сервер использует три порта, и относиться к ним нужно по-разному:

ПортПротоколНазначениеНаружу
9987UDPГолос, весь клиентский трафикОткрыть
30033TCPПередача файлов, аватарки, иконкиОткрыть
10011TCPServerQuery — административный интерфейсНе открывать

Про 10011 — подробнее, потому что это самая опасная ошибка в настройке TeamSpeak. ServerQuery — это полный административный доступ: залогинившись на этот порт, можно раздавать права, банить, удалять каналы и создавать виртуальные серверы. Протокол при этом текстовый и нешифрованный — логин и пароль летят по сети открытым текстом. Открытый в интернет 10011 круглосуточно сканируют боты и подбирают к нему пароли. Наружу он не нужен никогда: администрировать сервер можно с самой машины или через SSH-туннель (покажу ниже).

Настраиваем ufw. Внимательно с первой командой: сначала разрешаем SSH, иначе включение фаервола оборвёт вашу собственную сессию и вы потеряете доступ к серверу:

ufw allow OpenSSH
ufw allow 9987/udp comment 'TeamSpeak voice'
ufw allow 30033/tcp comment 'TeamSpeak file transfer'
ufw enable

На вопрос про disruption отвечайте y. Проверяем:

ufw status verbose

Политика по умолчанию у ufw — deny (incoming), поэтому 10011 и всё остальное, что мы явно не разрешили, снаружи уже закрыто. Для надёжности дополнительно привяжем ServerQuery к localhost на уровне самого TeamSpeak — тогда он не будет слушать внешний адрес, даже если фаервол однажды переконфигурируют. В файле /opt/teamspeak/teamspeak3-server_linux_amd64/ts3server.ini задайте:

query_ip=127.0.0.1

И перезапустите сервис: systemctl restart ts3server.

Как теперь попасть в ServerQuery со своего компьютера, если порт закрыт? Через SSH-туннель — штатный и безопасный способ:

ssh -L 10011:127.0.0.1:10011 root@203.0.113.10

Пока эта SSH-сессия открыта, порт 10011 вашего собственного компьютера проброшен на localhost сервера. Подключайтесь любым telnet-клиентом к 127.0.0.1:10011 — как будто сидите на самом сервере, но весь трафик идёт внутри шифрованного SSH-канала.

Ещё две вещи, которые стоит знать.

Первая: сервер сам устанавливает исходящее соединение к инфраструктуре TeamSpeak, чтобы проверить лицензию, и блокировать его нельзя. Здесь легко ошибиться, потому что старые инструкции называют порт 2008/TCP — он относился к ветке сервера 3.0. Начиная с 3.1 сервер ходит на accounting2.teamspeak.com по обычному 443/TCP, а мы ставим 3.13. На практике делать ничего не нужно: ufw исходящие соединения по умолчанию не трогает. Но если на сервере своя политика исходящего трафика, разрешать надо 443, а не 2008. Подробнее — в справочнике по портам.

Вторая: файл query_ip_allowlist.txt в каталоге сервера должен содержать только 127.0.0.1 и действительно доверенные адреса — попавшие в него IP не ограничиваются защитой от флуда.

Подключаемся клиентом и активируем права администратора

Сервер работает — пора зайти. В клиенте TeamSpeak: Connections → Connect, в поле адреса — IP вашего VDS (203.0.113.10), никнейм — любой, пароль сервера пустой (мы его не ставили). Нажимайте Connect — вы должны оказаться в лобби своего сервера.

Сейчас вы обычный гость. Чтобы стать администратором, введите privilege key, сохранённый при первом запуске: меню Permissions → Use Privilege Key, вставьте токен, OK. Клиент подтвердит активацию, и рядом с вашим ником появится иконка группы Server Admin. Ключ одноразовый: он выдал права вашей идентификации (криптографической паре ключей в клиенте) и больше не сработает.

Дальше всё администрирование — правым кликом по серверу/каналам или через Permissions → Server Groups: назовите сервер, задайте пароль на вход, если он не публичный, создайте каналы, раздайте группы соратникам. Новые privilege key для других админов создаются в меню Permissions → Privilege Keys — токены больше не придётся добывать из консоли.

Берегите свою идентификацию: в клиенте это Tools → Identities, оттуда её можно экспортировать в файл. Переустановите систему, не сохранив идентификацию, — и админом на сервере станет некому быть. На этот случай — следующий раздел.

Восстанавливаем доступ администратора, если ключ потерян

Privilege key использован или утерян, идентификация с правами админа пропала вместе с переустановленной системой. Сервер работает, но управлять им некому — развёрнутый разбор всех путей в отдельной статье, здесь короткий.

Решение — сгенерировать новый privilege key через ServerQuery. Понадобится пароль serveradmin из первого запуска.

Подключаемся к серверу по SSH с туннелем (см. предыдущий шаг) и открываем сессию ServerQuery. Прямо на VDS это делается так:

telnet 127.0.0.1 10011

(Если telnet не установлен: apt install telnet. Подойдёт и nc 127.0.0.1 10011.)

Сервер поздоровается строкой TS3. Дальше — команды по одной, каждая завершается Enter; на успех сервер отвечает error id=0 msg=ok:

login serveradmin ВАШ_ПАРОЛЬ
use port=9987
servergrouplist

Команда use port=9987 выбирает виртуальный сервер, который слушает голосовой порт 9987 (у вас он один). servergrouplist выведет список групп — найдите в нём группу Server Admin и запомните её sgid (в свежей установке это обычно 6, но проверьте по факту). Теперь создаём ключ:

privilegekeyadd tokentype=0 tokenid1=6 tokenid2=0

Здесь tokentype=0 означает ключ для серверной группы, tokenid1 — номер группы Server Admin из предыдущего шага, tokenid2=0 для серверных групп обязателен. В ответ придёт строка вида:

token=AbCdEfGh1jKlMnOpQrStUvWxYz+123456789ABCDEF
error id=0 msg=ok

Это и есть новый privilege key. Завершите сессию командой quit, откройте клиент TeamSpeak и активируйте ключ через Permissions → Use Privilege Key — права администратора вернулись.

Если утерян и сам пароль serveradmin — он сбрасывается параметром запуска. Остановите сервис, запустите сервер один раз вручную с новым паролем, затем верните всё как было:

systemctl stop ts3server
cd /opt/teamspeak/teamspeak3-server_linux_amd64
sudo -u teamspeak ./ts3server_startscript.sh start serveradmin_password=НовыйНадёжныйПароль
sudo -u teamspeak ./ts3server_startscript.sh stop
systemctl start ts3server

Настраиваем регулярный бэкап

VDS — не вечное хранилище: диск может отказать, хостер — заблокировать аккаунт, а рука — дрогнуть на команде rm. Вся жизнь вашего сервера лежит в нескольких файлах, и копировать нужно именно их:

ЧтоЗачем
ts3server.sqlitedbГлавный файл: серверы, каналы, группы, права, идентификации, баны
files/ (каталог целиком)Загруженные файлы, аватарки, иконки
ts3server.iniПараметры запуска и конфигурация
query_ip_allowlist.txt, query_ip_denylist.txtСписки доступа к ServerQuery
licensekey.datТолько если у вас платная лицензия; при бесплатной этого файла нет

Важная деталь, которую пропускают: базу SQLite нельзя просто копировать на работающем сервере — в момент записи вы рискуете получить в бэкапе несогласованный файл, который потом не откроется. Правильный порядок: остановить сервис, скопировать, запустить. Простой сервера — секунды, ночью его никто не заметит.

Создайте скрипт /opt/teamspeak/backup.sh:

#!/bin/bash
set -euo pipefail

TS_DIR=/opt/teamspeak/teamspeak3-server_linux_amd64
BACKUP_DIR=/var/backups/teamspeak
KEEP_DAYS=14
STAMP=$(date +%F_%H-%M)

mkdir -p "$BACKUP_DIR"

systemctl stop ts3server

tar czf "$BACKUP_DIR/ts3-$STAMP.tar.gz" \
    -C "$TS_DIR" \
    --ignore-failed-read \
    ts3server.sqlitedb files ts3server.ini \
    query_ip_allowlist.txt query_ip_denylist.txt licensekey.dat

systemctl start ts3server

# удалить архивы старше KEEP_DAYS дней
find "$BACKUP_DIR" -name 'ts3-*.tar.gz' -mtime +"$KEEP_DAYS" -delete

echo "OK: $BACKUP_DIR/ts3-$STAMP.tar.gz"

Флаг --ignore-failed-read нужен, чтобы отсутствие необязательных файлов (например, licensekey.dat на бесплатной лицензии) не срывало бэкап. Делаем скрипт исполняемым и прогоняем вручную:

chmod +x /opt/teamspeak/backup.sh
/opt/teamspeak/backup.sh

Ставим в cron — каждую ночь в 04:30, когда на сервере пусто:

crontab -e
30 4 * * * /opt/teamspeak/backup.sh >> /var/log/ts3-backup.log 2>&1

Бэкап на том же диске, что и сервер, защищает от кривой команды, но не от смерти VDS. Раз в неделю забирайте архив на другую машину — хотя бы вручную со своего компьютера:

scp root@203.0.113.10:/var/backups/teamspeak/ts3-*.tar.gz ~/backups/

И главное правило: бэкап, который ни разу не восстанавливали, — это не бэкап, а лотерейный билет. Проверка восстановления занимает пять минут и делается прямо на этом же VDS: распакуйте свежий архив в отдельный каталог, запустите из него второй экземпляр сервера на других портах и убедитесь, что он поднимается с вашими каналами и правами:

mkdir /tmp/ts3-restore-test && cd /tmp/ts3-restore-test
cp -r /opt/teamspeak/teamspeak3-server_linux_amd64/. .
rm -f ts3server.sqlitedb && rm -rf files
tar xzf "$(ls -t /var/backups/teamspeak/ts3-*.tar.gz | head -1)"
TS3SERVER_LICENSE=accept ./ts3server_minimal_runscript.sh \
    default_voice_port=9999 filetransfer_port=30034 query_port=10012

Если в консоли пошли обычные стартовые сообщения без ошибок про базу — бэкап рабочий. Остановите тестовый экземпляр (Ctrl+C) и удалите каталог /tmp/ts3-restore-test. Реальное восстановление на новом VDS делается так же: установить сервер той же или более новой версии по этой инструкции до шага с systemd, распаковать архив бэкапа поверх, запустить. Это одновременно и процедура переезда на другой хостинг.

Привязываем домен вместо IP-адреса

«Заходите на 203.0.113.10» звучит несолидно, не запоминается и намертво привязывает вас к текущему хостеру: переедете — придётся оповещать каждого участника. Домен решает всё это раз и навсегда: адрес сервера становится ts.example.com, а куда он указывает — ваше внутреннее дело.

Понадобятся две DNS-записи в панели управления доменом.

Первая — A-запись, связывающая имя с IP сервера:

ts.example.com.    3600    IN    A    203.0.113.10

В панели хостера это обычно выглядит как: тип A, имя (или «хост») — ts, значение — 203.0.113.10. Уже этого достаточно, чтобы подключаться по ts.example.com, — пока сервер работает на стандартном порту 9987.

Вторая — SRV-запись. Она сообщает клиенту и адрес, и порт. С ней сервер может жить на любом порту, а участники по-прежнему вводят просто ts.example.com — без всяких :9988. Клиент TeamSpeak сам запрашивает SRV-запись при подключении. Официальный формат для TeamSpeak 3 — сервис _ts3, протокол _udp:

_ts3._udp.ts.example.com.    86400    IN    SRV    0    5    9987    ts.example.com.

Разбор полей: 0 — приоритет (меньше — важнее, актуально при нескольких записях), 5 — вес для балансировки между записями с равным приоритетом, 9987 — порт вашего сервера, последнее поле — имя из A-записи, на конце обязательна точка. В панели хостера поля обычно разнесены: сервис _ts3, протокол _udp, имя ts (или _ts3._udp.ts — зависит от панели), приоритет 0, вес 5, порт 9987, цель ts.example.com.

Проверяем обе записи утилитой dig (входит в пакет dnsutils; учтите, что DNS-изменения расходятся не мгновенно — от минут до нескольких часов):

dig +short A ts.example.com
dig +short SRV _ts3._udp.ts.example.com

Ожидаемый вывод — IP сервера для первой команды и строка 0 5 9987 ts.example.com. для второй. Если обе на месте — подключайтесь в клиенте по адресу ts.example.com и раздавайте участникам именно его. IP-адрес с этого момента — деталь реализации: при переезде на другой VDS вы восстановите бэкап, поменяете одну A-запись, и для участников ничего не изменится.


Дальше сервер живёт сам. Из ухода ему нужно два дела: следить за server.json и раз в квартал проверять, что бэкап действительно восстанавливается.

Частые вопросы

Ubuntu 24.04 или 26.04 для сервера TeamSpeak — что выбрать?

Для нового VDS выбирайте Ubuntu 26.04 LTS. Рабочий TeamSpeak на Ubuntu 24.04 срочно переносить не нужно: 24.04 получает обновления безопасности до мая 2029 года. Если решите переходить, безопаснее развернуть новую машину и перенести проверенный бэкап, чем обновлять единственный рабочий сервер без отката.

Как установить TeamSpeak Server на Ubuntu 24.04?

Скачайте официальный архив TeamSpeak 3 Server, проверьте его SHA-256, запустите сервер от отдельного пользователя, откройте UDP 9987 и оформите systemd-сервис для автозапуска. Ниже приведены команды для полного развёртывания на чистом Ubuntu 24.04.

Сколько стоит сервер TeamSpeak и нужна ли лицензия?

Сам серверный софт бесплатный, встроенная лицензия позволяет держать до 32 слотов — для клана или компании друзей этого хватает с запасом. Платить нужно только за VDS, на котором сервер работает. Платная лицензия понадобится, лишь если нужно больше 32 одновременных подключений.

Какой VDS нужен для сервера TeamSpeak на 32 человека?

Самый дешёвый тариф. Сервер TeamSpeak очень лёгкий — на 32 слота достаточно 1 vCPU, 1 ГБ RAM и любого современного канала. Голосовой трафик даже при полном сервере измеряется единицами мегабит в секунду. Важнее не мощность, а пинг: выбирайте дата-центр географически ближе к участникам.

Что делать, если потерял privilege key или права админа?

Подключиться к ServerQuery на localhost сервера (через SSH-туннель), залогиниться как serveradmin, выбрать виртуальный сервер командой use port=9987 и сгенерировать новый ключ командой privilegekeyadd tokentype=0 tokenid1=ID tokenid2=0, где ID — номер группы Server Admin из вывода servergrouplist. Полученный ключ вводится в клиенте через меню Permissions → Use Privilege Key.

Где взять пароль serveradmin, если он не сохранился?

Пароль показывается только один раз при первом запуске, но его можно задать заново. Остановите сервис, запустите сервер один раз вручную с параметром serveradmin_password=НовыйПароль, затем остановите его и снова запустите через systemd. Старый пароль восстановить нельзя — только заменить.

Почему ко мне на сервер никто не может подключиться?

В девяти случаях из десяти — фаервол. Голос TeamSpeak ходит по UDP-порту 9987, и открыть нужно именно UDP, а не TCP — команда sudo ufw allow 9987/udp. Проверьте также, что сервер запущен (systemctl status ts3server) и что клиенты подключаются на правильный IP или домен.

Как перенести сервер TeamSpeak на другой VDS без потери настроек?

Остановить сервер, скопировать файл базы ts3server.sqlitedb, каталог files/ целиком, ts3server.ini и файлы query_ip_*.txt (плюс licensekey.dat, если есть платная лицензия) в каталог свежеустановленного сервера той же или более новой версии на новой машине — и запустить. Все каналы, права, группы и идентификации пользователей сохранятся.

Ставить TeamSpeak 3 или уже TeamSpeak 6?

Для боевого сервера — TeamSpeak 3 (актуальная ветка 3.13). TeamSpeak 6 Server на данный момент распространяется в статусе beta — его стоит пробовать в тестовых целях, но держать на нём сообщество пока рано. Клиенты TeamSpeak 3 и новые клиенты подключаются к серверу 3.13 без проблем.

Что почитать дальше