### 🧩Шаг 1: Обновляем систему ``` sudo apt update && sudo apt upgrade -y ``` - `apt update` — обновляет список доступных пакетов. - `apt upgrade -y` — устанавливает последние версии пакетов, `-y` автоматически подтверждает установку. ### 🧰 Шаг 2: Создание пользователя для сервера ``` sudo adduser --disabled-login teamspeak ``` - `--disabled-login` — запрещает вход в систему для безопасности. - `teamspeak` — имя пользователя, можно изменить по желанию. ### 📦 Шаг 3: Установка зависимостей ``` sudo apt install wget tar bzip2 libglib2.0-0 libstdc++6 -y ``` - `wget` — для загрузки файлов. - `tar`, `bzip2` — для распаковки архива с сервером. - `libglib2.0-0`, `libstdc++6` — системные библиотеки, нужные TS. ### 📥Шаг 4: Загрузка TeamSpeak 3 сервера ``` cd /tmp wget https://files.teamspeak-services.com/releases/server/3.13.7/teamspeak3-server_linux_amd64-3.13.7.tar.bz2 ``` ### 📂 Шаг 5: Распаковка и установка ``` tar -xvjf teamspeak3-server_linux_amd64-3.13.7.tar.bz2 sudo mv teamspeak3-server_linux_amd64 /opt/teamspeak ``` - `tar -xvjf` — распаковка архива: - `x` — извлечь, `v` — показать процесс, `j` — bzip2, `f` — файл. - `mv` — перемещаем сервер в `/opt/teamspeak`. ### 🔐 Шаг 6: Назначаем владельца ``` sudo chown -R teamspeak:teamspeak /opt/teamspeak ``` `chown` — смена владельца папки на пользователя `teamspeak`. ### 📜 Шаг 7: Принятие лицензии ``` sudo touch /opt/teamspeak/.ts3server_license_accepted ``` `touch` — создает пустой файл. Этот файл нужен для запуска без GUI-подтверждения лицензии. ### ⚙️ Шаг 8: Создание systemd сервиса Создаем файл юнита для запуска сервера как службы: ``` sudo nano /etc/systemd/system/teamspeak.service ``` Вставляем данные: ``` [Unit] Description=TeamSpeak 3 Server After=network.target [Service] WorkingDirectory=/opt/teamspeak User=teamspeak Group=teamspeak ExecStart=/opt/teamspeak/ts3server_minimal_runscript.sh Restart=always RestartSec=15 LimitNOFILE=10000 [Install] WantedBy=multi-user.target ``` Сохраняем `Ctrl+O`, выходим `Ctrl+X`. ### 🚀 Шаг 9: Запуск сервера ``` sudo systemctl daemon-reexec sudo systemctl daemon-reload sudo systemctl enable teamspeak --now ``` - `daemon-reexec` — перезапускает systemd (на всякий случай). - `daemon-reload` — загружает новые юниты. - `enable --now` — включает автозапуск и запускает прямо сейчас. ### 🔍 Шаг 10: Проверка работы ``` sudo journalctl -u teamspeak -f ``` Показывает логи сервиса в реальном времени. ##### *`Важно:` в первом запуске появится **admin token**, который нужно сохранить для входа с клиента.* ### 🔓 Шаг 11: Открытие портов (если используется UFW) ``` sudo ufw allow 9987/udp # Голосовой порт sudo ufw allow 10011/tcp # ServerQuery sudo ufw allow 30033/tcp # File Transfer sudo ufw reload ``` Если используется `ufw` (брандмауэр Ubuntu): ### 🔹 Шаг 11: Привязка домена к серверу Перейди в панель управления DNS у твоего регистратора домена (например, reg.ru, Cloudflare, Timeweb и т.д.) и создай: ``` |Тип| |Имя| |Значение| |A| teamspeak| `0.0.0.0` (**твой белый IP**)| ``` Это создаст поддомен `teamspeak.stitch505.su`, указывающий на твой сервер. ### 🔎 11.2 Проверка доступности поддомена ``` ping teamspeak.stitch505.su ``` ### 🔸 Шаг 12 (опционально): Настройка SRV-записи (для подключения по основному домену) #### **🔧 Что такое SRV-запись?** - **тип сервиса** (например, TeamSpeak, SIP, Minecraft и т.д.), - **протокол** (обычно UDP или TCP), - **имя хоста**, где находится сервис, - **порт**, на котором он работает. ###### **SRV-запись (Service Record)** указывает: | `Поле` | `Значение` | `Пояснение` | | ------------ | ----------------------- | -------------------------------------------------------------------- | | **Name** | ts3._udp.stitch505.su | `_ts3._udp` = сервис TeamSpeak по UDP, далее основной домен | | **Priority** | 0 | Приоритет записи, если их несколько. Меньше = важнее. | | **Weight** | 5 | Вес между SRV с одинаковым приоритетом. 5 — обычное значение. | | **Port**
| 9987 | Стандартный порт TeamSpeak 3.\| | | **Target** | teamspeak.stitch505.su. | Имя сервера, куда перенаправлять. Точка в конце — обязательна в DNS. | >[!Danger] ❗ **ВАЖНО**: >- **"Name" — это не просто `_ts3._udp`**, а полный путь вида: `_ts3._udp.stitch505.su` >- **"Target" должен оканчиваться на точку**, чтобы DNS понимал, что это **FQDN** (полное доменное имя), а не поддомен текущего имени. # Если ты просрал ключ админа для первого входа: >[!failure] ### УДАЛЯЙ ЛИНУКС ЭТО НЕ ТВОЁ >[!Success] либо Вводим команду: ``` sudo journalctl -u teamspeak -b -n 100 | grep token ``` >[!failure] Копируем данные после `token=` и вставляем в ТС