Как создать сервер Тим Спик 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 года:
| Параметр | Минимум | Комфортно |
|---|---|---|
| CPU | 1 ядро (любая частота) | 1-2 ядра от 2 ГГц |
| RAM | 256 МБ | 512 МБ - 1 ГБ |
| Диск | 100 МБ под бинарник + база | 1-2 ГБ с запасом под логи и бэкапы |
| ОС | Debian/Ubuntu/CentOS x86_64 | Debian 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) это блокирует запуск - и надо принять лицензию заранее одним из трёх способов:
- Файл-флаг - самый простой вариант для systemd:
sudo -u teamspeak touch /opt/teamspeak3-server/.ts3server_license_accepted - Параметр командной строки при запуске бинарника:
./ts3server license_accepted=1 - Переменная окружения (удобно для 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_port | UDP-порт голосового трафика, по умолчанию 9987 |
query_port | TCP-порт ServerQuery (telnet-подобный протокол управления), по умолчанию 10011 |
filetransfer_port | TCP-порт передачи файлов (аватары, иконки, вложения), по умолчанию 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.
Что дальше после установки
Сразу после первого запуска стоит:
- Подключиться клиентом TeamSpeak и активировать привилегированный ключ, чтобы получить права ServerAdmin.
- Сменить имя сервера и приветственное сообщение через
virtualserver_name(или в интерфейсе клиента). - Настроить группы и права - что именно можно выдавать модераторам и обычным пользователям, разобрано в статье права и группы TeamSpeak 3.
- Ограничить ServerQuery по IP через allowlist, если сервер смотрит в интернет напрямую.
- Настроить регулярные бэкапы каталога
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, и сервер будет стартовать автоматически вместе с системой.