Pterohost docs

Как создать сервер Тим Спик 3: установка и настройка на Linux

Пошаговая установка TeamSpeak 3 Server на Linux: скачивание, принятие лицензии, привилегированный ключ, ts3server.ini, systemd-юнит для автозапуска и обновление сервера.

TeamSpeak 3 остаётся рабочей лошадкой голосового общения для геймерских кланов, несмотря на выход TeamSpeak 6: бесплатная лицензия на 32 слота, минимальные требования к железу и десятки лет накопленных ботов и плагинов делают его выбором по умолчанию для небольшой и средней команды. Разворачивается сервер на Linux буквально за 15 минут - но есть нюансы с лицензией, привилегированным ключом и автозапуском, которые легко упустить и потом искать причину, почему сервис не поднимается после перезагрузки. В этой статье разбираем полный цикл: от скачивания архива до systemd-юнита и обновления версии без потери базы данных.

Что понадобится перед установкой

TeamSpeak 3 Server официально поддерживает Linux, Windows и FreeBSD, но для продакшена почти всегда берут Linux x86_64 - меньше накладных расходов, проще автоматизация. Минимальные требования скромные даже по меркам 2026 года:

ПараметрМинимумКомфортно
CPU1 ядро (любая частота)1-2 ядра от 2 ГГц
RAM256 МБ512 МБ - 1 ГБ
Диск100 МБ под бинарник + база1-2 ГБ с запасом под логи и бэкапы
ОСDebian/Ubuntu/CentOS x86_64Debian 12/13, Ubuntu 22.04/24.04

Сервер однопоточный по своей природе тикания голосовых пакетов, поэтому гнаться за числом ядер бессмысленно - важнее стабильный аплинк и низкий джиттер сети. Если поднимаете сервер на своей VPS или выделенном сервере, заранее проверьте, что порты 9987/UDP, 10011/TCP и 30033/TCP не заняты другими сервисами и не блокируются провайдером.

Скачивание и распаковка

Официальный дистрибутив раздаётся с домена files.teamspeak-services.com. Актуальную ссылку на последнюю стабильную версию проще всего взять со страницы загрузок teamspeak.com, но структура URL стабильна годами:

cd /opt
sudo mkdir -p teamspeak3-server
cd teamspeak3-server

# подставьте актуальную версию с files.teamspeak-services.com/releases/server/
TS3_VERSION="3.13.7"
curl -LO "https://files.teamspeak-services.com/releases/server/${TS3_VERSION}/teamspeak3-server_linux_amd64-${TS3_VERSION}.tar.bz2"

tar -xjf "teamspeak3-server_linux_amd64-${TS3_VERSION}.tar.bz2" --strip-components=1
rm "teamspeak3-server_linux_amd64-${TS3_VERSION}.tar.bz2"

Не запускайте сервер от root. Бинарник ts3server прямо отказывается стартовать под root-пользователем из соображений безопасности - создайте отдельного системного пользователя и передайте ему права на каталог:

sudo useradd --system --home /opt/teamspeak3-server --shell /usr/sbin/nologin teamspeak
sudo chown -R teamspeak:teamspeak /opt/teamspeak3-server

Принятие лицензии

Начиная с версии 3.1.0 сервер при первом запуске в интерактивном терминале просит подтвердить лицензионное соглашение вручную. В неинтерактивном окружении (скрипт, systemd, Docker) это блокирует запуск - и надо принять лицензию заранее одним из трёх способов:

  1. Файл-флаг - самый простой вариант для systemd:
    sudo -u teamspeak touch /opt/teamspeak3-server/.ts3server_license_accepted
  2. Параметр командной строки при запуске бинарника:
    ./ts3server license_accepted=1
  3. Переменная окружения (удобно для Docker-образов):
    export TS3SERVER_LICENSE=accept

Если ни один из вариантов не сработал и сервер всё равно просит принять лицензию - значит файл .ts3server_license_accepted лежит не в том рабочем каталоге, откуда реально запускается бинарник (проверьте WorkingDirectory в systemd-юните).

Первый запуск и привилегированный ключ

Первый запуск делают вручную, без systemd, чтобы увидеть весь вывод в консоли:

sudo -u teamspeak ./ts3server_startscript.sh start

При самом первом старте сервер создаёт базу данных SQLite, генерирует ключи шифрования и печатает в консоль (а также в лог) привилегированный ключ (privilege key) для получения прав ServerAdmin на первом виртуальном сервере:

[2026-08-21 12:03:41.112533] listening on 0.0.0.0:9987 as a Voice Server
[2026-08-21 12:03:41.114201] listening on 0.0.0.0:10011 as a Query Server (raw)
...
ServerAdmin privilege key created, please use it to gain serveradmin rights for your virtualserver: token=AB3fGh9KpQr2sTuVwXyZ0123456789AbCdEfGhIjKlMn

Сохраните эту строку сразу - она печатается только один раз и хранится потом только в логах. Если пропустили - ищите в файле logs/ts3server_<дата>__<время>_1.log в рабочем каталоге сервера, строку про ServerAdmin privilege key created. Ключ вводится в клиенте TeamSpeak через Инструменты -> Использовать привилегированный ключ (или автоматически при первом подключении к своему серверу), и подключившийся клиент получает права ServerAdmin.

Остановите тестовый запуск (Ctrl+C или ./ts3server_startscript.sh stop) перед переходом к настройке ts3server.ini и systemd.

Настройка ts3server.ini

Файл ts3server.ini в рабочем каталоге сервера задаёт стартовые параметры: порты, пути к базе, поведение логирования. Если файла нет - создайте вручную, сервер подхватит его при следующем запуске через параметр inifile=.

; ts3server.ini - базовая конфигурация TeamSpeak 3 Server
machine_id=
default_voice_port=9987
voice_ip=0.0.0.0

query_port=10011
query_ip=0.0.0.0
query_ip_allowlist=query_ip_allowlist.txt
query_ip_denylist=query_ip_denylist.txt

filetransfer_port=30033
filetransfer_ip=0.0.0.0

dbplugin=ts3db_sqlite3
dbpluginparameter=
dbsqlpath=sql/
dbsqlcreatepath=create_sqlite/
dbconnections=10

logpath=logs
logquerycommands=0
logappend=0
dbclientkeepdays=90

Ключевые параметры:

ПараметрНазначение
default_voice_portUDP-порт голосового трафика, по умолчанию 9987
query_portTCP-порт ServerQuery (telnet-подобный протокол управления), по умолчанию 10011
filetransfer_portTCP-порт передачи файлов (аватары, иконки, вложения), по умолчанию 30033
query_ip_allowlist / query_ip_denylistФайлы со списком IP, которым разрешён или запрещён вход в ServerQuery (в старых версиях называются query_ip_whitelist / query_ip_blacklist)
dbpluginДрайвер базы - ts3db_sqlite3 для встроенной SQLite, для MySQL используется ts3db_mariadb
logpathКаталог логов, куда пишутся стартовые сообщения и, среди прочего, привилегированный ключ

Про ServerQuery-доступ и его безопасность подробнее в статье ServerQuery: подключение и команды - там же разбор allowlist/denylist и защиты от флуда.

systemd-юнит и автозапуск

Стартовый скрипт ts3server_startscript.sh умеет демонизироваться сам и писать PID-файл, поэтому под systemd используется Type=forking:

# /etc/systemd/system/ts3server.service
[Unit]
Description=TeamSpeak 3 Server
After=network.target

[Service]
Type=forking
User=teamspeak
Group=teamspeak
WorkingDirectory=/opt/teamspeak3-server
ExecStart=/opt/teamspeak3-server/ts3server_startscript.sh start inifile=ts3server.ini
ExecStop=/opt/teamspeak3-server/ts3server_startscript.sh stop
PIDFile=/opt/teamspeak3-server/ts3server_startscript_pid
Restart=on-failure
RestartSec=10
LimitNOFILE=65536

[Install]
WantedBy=multi-user.target

Активация:

sudo systemctl daemon-reload
sudo systemctl enable --now ts3server
sudo systemctl status ts3server

Проверить, что сервис слушает нужные порты:

sudo ss -tulnp | grep ts3server

Должны появиться строки с UDP/9987, TCP/10011 и TCP/30033. Если сервис не стартует - смотрите journalctl -u ts3server -e и файл ts3server_startscript_pid в рабочем каталоге: если он остался от предыдущего аварийного завершения, удалите его вручную перед повторным стартом.

Автоматизацию рестартов по расписанию (например, ночной перезапуск для сброса памяти на нагруженном сервере) удобно вешать через cron - принцип такой же, как описано в статье автозапуск игровых серверов через cron.

Pterohost - готовый сервер TeamSpeak 3 с установкой в один клик: без ручной сборки systemd-юнита и правки ts3server.ini. Промокод 4START даёт -20% на первый заказ. Арендовать сервер TeamSpeak 3

Firewall и сеть

Откройте три порта в firewall до того, как звать клиентов подключаться. Пример для UFW:

sudo ufw allow 9987/udp comment 'TS3 voice'
sudo ufw allow 10011/tcp comment 'TS3 query'
sudo ufw allow 30033/tcp comment 'TS3 filetransfer'
sudo ufw reload

Подробный разбор правил, зон и типовых ошибок firewall для игровых серверов - в статье настройка UFW для игрового сервера. Если сервер стоит за NAT-роутером (домашний ПК, а не арендованный VDS), дополнительно пробросьте те же три порта на роутере на внутренний IP машины с TeamSpeak. Если после этого клиенты всё равно не могут зайти - весь чек-лист диагностики собран в статье не подключается к серверу TeamSpeak 3.

Обновление сервера

TeamSpeak 3 обновляется простой заменой бинарников поверх рабочего каталога - база данных и конфиги в отдельных файлах и не затрагиваются штатным процессом обновления.

sudo systemctl stop ts3server

cd /opt/teamspeak3-server
TS3_NEW_VERSION="3.13.7"
curl -LO "https://files.teamspeak-services.com/releases/server/${TS3_NEW_VERSION}/teamspeak3-server_linux_amd64-${TS3_NEW_VERSION}.tar.bz2"
tar -xjf "teamspeak3-server_linux_amd64-${TS3_NEW_VERSION}.tar.bz2" --strip-components=1
rm "teamspeak3-server_linux_amd64-${TS3_NEW_VERSION}.tar.bz2"

sudo chown -R teamspeak:teamspeak /opt/teamspeak3-server
sudo systemctl start ts3server

Перед обновлением обязательно сделайте бэкап каталога sql/ (или файла ts3server.sqlitedb, если база лежит одним файлом) и ts3server.ini - на случай, если новая версия окажется несовместимой с текущим форматом базы. Права на файлы после распаковки архива сбрасываются на root, поэтому строчка chown обязательна, иначе сервис не стартует под пользователем teamspeak.

Для переноса сервера целиком на другую машину - с сохранением базы, всех групп и каналов - пригодится связка FTP/SFTP: как копировать файлы конфигурации и базы между хостами, описано в статье подключение по FTP/SFTP.

Что дальше после установки

Сразу после первого запуска стоит:

  1. Подключиться клиентом TeamSpeak и активировать привилегированный ключ, чтобы получить права ServerAdmin.
  2. Сменить имя сервера и приветственное сообщение через virtualserver_name (или в интерфейсе клиента).
  3. Настроить группы и права - что именно можно выдавать модераторам и обычным пользователям, разобрано в статье права и группы TeamSpeak 3.
  4. Ограничить ServerQuery по IP через allowlist, если сервер смотрит в интернет напрямую.
  5. Настроить регулярные бэкапы каталога sql/.

Pterohost - серверы TeamSpeak 3 на NVMe с DDoS-защитой, без возни с Linux и systemd. Промокод 4START даёт -20% на первый заказ. Заказать хостинг TeamSpeak 3

Часто задаваемые вопросы

Где взять привилегированный ключ (privilege key) TeamSpeak 3 сервера?

Ключ выводится в консоль при самом первом запуске ts3server после принятия лицензии - строка вида token=AAAA…GGGG. Если консоль не сохранилась, ключ также лежит в файле logs/ts3server_YYYY-MM-DD__<время>_1.log в каталоге сервера, в строке про ServerAdmin privilege key.

Как принять лицензию TeamSpeak 3 без интерактивного ввода?

Три варианта: создать пустой файл .ts3server_license_accepted в рабочем каталоге сервера, запустить ts3server с параметром license_accepted=1, либо выставить переменную окружения TS3SERVER_LICENSE=accept. Любой из способов пропускает интерактивный запрос лицензии при старте.

Какой порт нужен TeamSpeak 3 серверу по умолчанию?

Голосовой трафик идёт по 9987/UDP, ServerQuery - по 10011/TCP (или 10022/TCP по SSH), передача файлов - по 30033/TCP. Все три порта нужно открыть в firewall и, если сервер за NAT, пробросить на роутере.

Как обновить TeamSpeak 3 сервер до новой версии?

Остановите сервис, скачайте новый архив с files.teamspeak-services.com, распакуйте поверх старого каталога, сохранив файлы ts3server.ini и папку sql/ts3server.sqlitedb, затем запустите сервис заново. База данных и все настройки серверов и групп сохраняются.

Почему сервер TeamSpeak 3 не запускается после перезагрузки?

Чаще всего дело в отсутствии systemd-юнита - без него процесс завершается вместе с сессией SSH или не поднимается после ребута. Настройте unit-файл с Type=forking и PIDFile, включите его через systemctl enable, и сервер будет стартовать автоматически вместе с системой.