Языки программирования
Как создать сервер TeamSpeak
Сервер TeamSpeak нужен, когда важны голосовые каналы, права, стабильная связь и контроль над своим пространством. Его можно запустить на VPS, домашнем сервере или в Docker. Для небольшой команды чаще всего достаточно Linux VPS с открытыми портами и регулярной резервной копией
TeamSpeak состоит из серверной части и клиентского приложения. Сервер принимает подключения, хранит каналы, права и токены администратора. Клиент нужен пользователям, чтобы подключаться и общаться
Что понадобится
Минимальный набор:
- VPS или отдельная машина с Linux
- доступ по SSH
- открытые порты в firewall
- официальный сервер TeamSpeak 3 или Docker-образ
- клиент TeamSpeak на компьютере администратора
Для теста можно поднять сервер локально, но для постоянного общения удобнее VPS. Домашний компьютер может выключиться, поменять адрес или упереться в настройки роутера
Порты TeamSpeak
Для типового сервера TeamSpeak 3 чаще всего нужны:
9987/udp— голосовые подключения30033/tcp— передача файлов10011/tcp— ServerQuery для администрирования
Если используете панель хостинга или облачный firewall, откройте эти порты там тоже. Недостаточно открыть порт только внутри Linux, если внешний firewall облака его блокирует
Установка на Linux
Создайте отдельного пользователя и папку сервера
sudo adduser --disabled-login teamspeak
sudo mkdir -p /opt/teamspeak
sudo chown teamspeak:teamspeak /opt/teamspeak
Скачайте сервер с официальной страницы TeamSpeak под свою систему, распакуйте архив и запустите от пользователя teamspeak. При первом запуске сервер покажет server admin token. Сохраните его сразу: он нужен для получения прав администратора в клиенте
Общий принцип запуска такой
sudo -u teamspeak ./ts3server_startscript.sh start
sudo -u teamspeak ./ts3server_startscript.sh status
Имена файлов могут отличаться в зависимости от версии архива, поэтому проверяйте содержимое распакованной папки
По этой теме полезно отдельно посмотреть Как я создал безопасные Firebase Cloud Functions с правами администратора и ограничением частоты запросов, чтобы расширить контекст и сравнить подходы
По этой теме полезно отдельно посмотреть Go и Rust: что выбрать для проекта, чтобы расширить контекст и сравнить подходы
Запуск через Docker
Если вы привыкли к Docker, можно использовать контейнер. Для простого старта подойдет отдельная папка с данными
services:
teamspeak:
image: teamspeak:3
restart: unless-stopped
ports:
- "9987:9987/udp"
- "30033:30033/tcp"
- "10011:10011/tcp"
environment:
TS3SERVER_LICENSE: accept
volumes:
- ./data:/var/ts3server
Запуск
docker compose up -d
После первого запуска посмотрите логи и сохраните токен администратора
docker compose logs teamspeak
Первый вход и права
Откройте клиент TeamSpeak, подключитесь к адресу сервера и введите токен администратора. После этого создайте нормальную структуру каналов и проверьте права
Для маленькой команды достаточно:
- общий канал
- канал для игры или созвона
- канал ожидания
- закрытый канал администрации
Не выдавайте всем Server Admin. Создайте группы по ролям: администратор, модератор, участник, гость
Firewall и безопасность
Откройте только нужные порты. На Ubuntu с ufw это может выглядеть так
sudo ufw allow 9987/udp
sudo ufw allow 30033/tcp
sudo ufw allow 10011/tcp
sudo ufw enable
Для ServerQuery лучше ограничить доступ по IP, если вы им пользуетесь редко. Также обновляйте сервер и храните резервные копии данных
Бэкапы
В backup должны попадать файлы данных TeamSpeak: база, настройки, токены, загруженные файлы. Если сервер в Docker, копируйте папку volume. Если установлен вручную, копируйте рабочую папку сервера
Простой вариант для Docker
tar -czf teamspeak-data-2026-07-02.tar.gz ./data
Проверяйте, что архив не пустой и лежит не только на самом сервере
Проверка после запуска
- сервер виден из клиента
- голосовой канал работает
- файл можно загрузить, если эта функция нужна
- админский токен применен
- лишние права не выданы гостям
- после перезагрузки VPS сервер стартует снова
Автозапуск через systemd
Если сервер установлен без Docker, настройте автозапуск, чтобы TeamSpeak поднимался после перезагрузки VPS. Общая идея: создать systemd unit, указать рабочую папку, пользователя и команду запуска
Примерная структура unit-файла:
[Unit]
Description=TeamSpeak Server
After=network.target
[Service]
Type=forking
User=teamspeak
WorkingDirectory=/opt/teamspeak
ExecStart=/opt/teamspeak/ts3server_startscript.sh start
ExecStop=/opt/teamspeak/ts3server_startscript.sh stop
Restart=on-failure
[Install]
WantedBy=multi-user.target
После создания unit-файла выполните
sudo systemctl daemon-reload
sudo systemctl enable teamspeak
sudo systemctl start teamspeak
sudo systemctl status teamspeak
Пути могут отличаться, поэтому проверьте реальную папку установки перед копированием примера
Логи и диагностика
Если клиент не подключается, проверьте три уровня. Сначала статус процесса: работает ли сервер. Потом порт: слушает ли он нужный UDP. Потом внешний доступ: не блокирует ли облачный firewall
sudo systemctl status teamspeak
ss -lunpt | grep 9987
В Docker смотрите логи контейнера
docker compose logs --tail=100 teamspeak
Не меняйте сразу все настройки. Исправляйте одну гипотезу и снова проверяйте подключение
Когда лучше взять готовый хостинг
Если вам не хочется заниматься SSH, портами, обновлениями и backup, готовый TeamSpeak-хостинг может быть разумнее. Свой сервер выгоден, когда нужен контроль, практика администрирования или уже есть VPS для других задач
Структура каналов для первой версии
Не создавайте десятки каналов заранее. Пустая структура выглядит шумно и мешает людям ориентироваться. Для старта хватит нескольких комнат
Общий
Игровая комната 1
Игровая комната 2
AFK
Администрация
Если команда растет, добавьте каналы по проектам, играм или группам. Права лучше настраивать группами, а не вручную на каждого пользователя
Как выдать права без хаоса
Первый токен администратора нужен только для начальной настройки. После входа создайте группы и выдавайте людям роли аккуратно. Не давайте полный доступ человеку, которому нужно только модерировать канал
Минимальная модель:
- Server Admin — владелец и технический администратор
- Moderator — может перемещать пользователей и следить за порядком
- Member — обычный участник
- Guest — гость с ограниченными правами
Сразу проверьте гостевой вход: новый пользователь не должен иметь доступ к закрытым каналам и опасным настройкам
Что записать в админскую заметку
Сохраните в отдельном файле: адрес сервера, открытые порты, путь к папке данных, способ запуска, где лежит backup, кто имеет админские права. Через полгода такая заметка сэкономит больше времени, чем кажется
Минимальный регламент обслуживания
После запуска сервера заведите простой порядок обслуживания. Раз в месяц проверяйте обновления, наличие свежего backup и список пользователей с высокими правами. После каждого изменения структуры каналов попросите обычного участника подключиться и проверить, видит ли он только нужные комнаты
Для маленького сервера этого достаточно. Главное — не забывать, что голосовой сервер тоже требует ухода: права разрастаются, старые пользователи остаются в группах, backup устаревает, а открытые порты продолжают смотреть наружу