Ставим TeamSpeak на домашний сервер Linux

в 15:20, , рубрики: linux-сервер, Teamspeak, аналог дискорда, сервер

Вступление

Если вам надоело обходить блокировку Discord и вас не устраивает связь в tg или Steam, то предлагаю поднять свой TeamSpeak(TS) сервер. У меня, например, вылезла проблема, что CoD отказывается запускаться при включенной службе обхода дискорда. Тем более, что последнее обновление сделало TS неплохим его аналогом.

И так, нам понадобится домашний сервер (например, старый комп) с установленной ОС или же арендованный VPS. Ваш IP должен быть статическим, иначе придётся в конфигурации роутера каждый раз менять внешний IP.

Проще, если у вас стоит полноценная ОС с UI. Качаете c оф. сайта файл и следуете инструкциям установки.

Я расскажу как поставить TS, которым смогут пользоваться и ваши друзья на Ubuntu-server через терминал.

Установка

При установке помог этот гайд.

Заходим в терминале сервера по SSH или любым другим способом и создаём нового пользователя для TS-сервера:

sudo useradd -mrd /opt/teamspeak teamspeak -s "$(which bash)"

Файлы teamspeak будут лежать в директории /opt/teamspeak.

Установим библиотеку:

sudo apt install bzip2

Сменим пользователя на teamspeak:

su - teamspeak

и скачаем архив

wget https://files.teamspeak-services.com/releases/server/3.13.7/teamspeak3-server_linux_amd64-3.13.7.tar.bz2 -O teamspeak-server.tar.bz2

Теперь нужно его распаковать

tar xvfj teamspeak-server.tar.bz2 --strip-components 1

а затем принять лицензионное соглашение:

touch ~/.ts3server_license_accepted

После этого перейдём из пользователя teamspeak обратно в свой

su - username

Создание системного сервиса

Чтобы наш сервер постоянно крутился, а также удобно было следить за его работой, создадим системный сервис. Все сервисы лежат в директории /etc/systemd/system.

sudo nano /etc/systemd/system/teamspeak.service

и добавим следующий код:

teamspeak.service

[Unit]
Description=Teamspeak Service
Wants=network.target

[Service]
WorkingDirectory=/opt/teamspeak
User=teamspeak
ExecStart=/opt/teamspeak/ts3server_minimal_runscript.sh
ExecStop=/opt/teamspeak/ts3server_startscript.sh stop
ExecReload=/opt/teamspeak/ts3server_startscript.sh restart
Restart=always
RestartSec=15

[Install]
WantedBy=multi-user.target

В Descriptionможно указать любое название сервиса. Также, здесь указываются рабочие директории и исполняемые файлы. Сервис будет работать под пользователем teamspeak. И наш сервис будет постоянно перезагружаться в случае падения (Restart=always).

Чтобы сохранить файл, нажимаем Ctrl+C. Вводим y и жмём Enter.

Далее нужно применить изменения командой

sudo systemctl daemon-reload

Запустим наш сервис

sudo systemctl start teamspeak

и выведем его текущий статус

sudo systemctl status teamspeak

Должно выглядеть примерно так

Teamspeak-сервис запущен и работает

Teamspeak-сервис запущен и работает

Ну и, дабы сервис сам запускался при перезапуске системы, введём

sudo systemctl enable teamspeak

Пароль администратора для TeamSpeak

Чтобы установить пароль администратора, сначала остановим сервер

sudo systemctl stop teamspeak

Перейдём в пользователя teamspeak

su - teamspeak

и запустим сервер TS с указанием пароля (конечно же, из директории /opt/teamspeak/)

./ts3server_startscript.sh start serveradmin_password=MyPassword123

Остановим

./ts3server_startscript.sh stop

Перейдём обратно в своего пользователя

su - username

Вновь запускаем сервис

sudo systemctl start teamspeak

Настройка роутера

Данные настройки только для домашнего сервера, который находится в вашей локальной сети.

Нам нужно пробросить порты в настройках роутера на наш домашний сервер. Для этого переходим в настройки роутера: обычно 192.168.0.1 или 192.168.1.1. Адрес можно посмотреть на наклейке снизу роутера, и там же найдёте логин/пароль.

Далее, ищем вкладку Переадресация портов. Обычно находится в Расширенных настройках WAN.

Порты, которые использует TeamSpeak:

  • 9987 - UDP

  • 10011 - TCP

  • 30033 - TCP

Проброс портов на роутере

Проброс портов на роутере
  1. Вводим любое имя службы.

  2. Свой внешний IP (можно узнать, введя IP в поисковике).

  3. Внешний порт

  4. Локальный IP сервера (ищем в панели роутера).

  5. Локальный порт.

То есть, внешний адрес 92.3X.XX.XXX:9987 будет переадресован на адрес локального сервера 192.168.0.50:9987.

Также, нужно найти настройку DMZ в панели роутера. Выглядит примерно так:

DMZ в панели роутера

DMZ в панели роутера

Вводим локальный IP нашего сервера в домашней сети. Наконец, перезагружаем роутер, чтобы изменения применились.

И ещё, если у вас на сервере активен брэндмауэр, нужно открыть эти порты:

sudo ufw allow 9987/udp
sudo ufw allow 10011, 30033/tcp

Подключение к серверу

Для первичного подключения нам понадобиться узнать токен. Для этого в терминале сервера вводим

grep -i token /opt/teamspeak/logs/*
Ставим TeamSpeak на домашний сервер Linux - 4

Копируем токен к себе. Он понадобится для получения прав администратора.

Устанавливаем клиент.

Ставим TeamSpeak на домашний сервер Linux - 5

В поиск вбиваем наш внешний IP. Когда всплывёт окно ввода токена, вставим туда сохранённый ранее токен. Теперь вы администратор сервера.

Чтобы пригласить друга, нажимаем "Создать приглашение" и кидаем ссылку друзьям.

Ссылка приглашения

Ссылка приглашения

Либо же даём другу свой внешний IP. TeamSpeak автоматически переадресует на сервис TS вашего сервера.

В принципе, всё.

Автор: panda_bambyk

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js