🐹 CentOS 7: Установка сервера коллективной связи TeamSpeak 3.

Содержание:

1. Постановка задачи.
2. Описание программного обеспечения.
3. Предварительная подготовка сервера.

3.1. Установка MariaDB.
3.2. Настройка брандмауэра.
3.3. Создание системного пользователя.
3.4. Скачивание серверной части.
3.5. Принятие лицензионного соглашения.
3.6. Создание конфигурации службы автозапуска.
3.7. Создание файлов конфигурации.
3.8. Проверка системных зависимостей.
3.9. Генерация паролей сервера.
3.10. Автоматизация запуска сервера.

4. Подключение клиентской части.
5. Если что-то пошло не так.

5.1. Сброс или замена пароля.
5.2. Где хранятся настройки сервера.

6. Оригиналы источников информации.


1. Постановка задачи.

Решили мы с друзьями поиграть в World of Tanks. Игра же командная, а тут каждый в одиночку катается…. Скукота… Играть без связи скучно!

Требования были такие: чтоб просто, без рекламы, чтобы никаких кислотных цветов и посторонних анимации в чате… В итоге выбор пал на TeamSpeak 3, сервер которой мы сейчас с вами и соберем на нашем личном сервере.

2. Описание программного обеспечения.

TeamSpeak 3 — компьютерная программа, предназначенная для голосового общения в сети Интернет посредством технологии VoIP. От классического телефона отличается практически неограниченным количеством абонентов, разговаривающих одновременно. Больше всего это похоже на многоканальную рацию, в которой можно одновременно пользоваться несколькими каналами. При этом доступны все опции, разработанные ранее для удобства использования раций в полевых условиях. Программы этого типа предназначены прежде всего для геймеров, но могут использоваться везде, где необходима голосовая связь и координация большой группы людей.

TeamSpeak 3 бесплатен для использования до 32 пользователей, а также существует некоммерческая лицензия, подходит для использования до 512 пользователей.

2.1. Работа программы.

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

Активировавший микрофон участник отмечается индикатором ярко синего цвета, в то время как молчащий пользователь имеет значок тёмно синего цвета. Участники также могут ставить себе статусы, отключающие приём или передачу звука, либо просто информирующие о том, что человек вышел.

Чтобы пользоваться TeamSpeak 3, необходимо знать адрес сервера, на котором установлена серверная часть программы, и пароль, если он требуется для соединения.

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

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

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

2.2. Какие порты использует TeamSpeak 3 Server?

Открывать по технической необходимости:

  • Голосовой порт по умолчанию (UDP): 9987.
  • Порт для передачи файлов по умолчанию (TCP): 30033.
  • Порт для передачи запросов на сервер (TCP): 10011.
  • License port (TCP): 2008.
  • Weblist port (UDP): 2010.
  • DNS port (TCP): 41144.

3. Предварительная подготовка сервера.

Обновим программное обеспечение CentOS 7 сервера:

# yum -y update

Установим некоторые полезные программы:

# yum -y install mc wget perl tar net-tools bzip2

3.1. Установка MariaDB.

Установим и настроим MariaDB по статье «MariaDB: Установка и настройка системы баз данных».

Создадим базу данных для TeamSpeak 3:

# mysql -uroot -p

# CREATE DATABASE teamspeak_db character set utf8 collate utf8_bin;

# CREATE USER teamspeak_user@localhost;

# SET PASSWORD FOR teamspeak_user@localhost=PASSWORD("paSSword");

# GRANT ALL PRIVILEGES ON teamspeak_db.* TO teamspeak_user@localhost IDENTIFIED BY 'paSSword';

# FLUSH PRIVILEGES;

# exit

3.2. Настройка брандмауэра.

Откроем порты для работы сервера TeamSpeak 3:

  • 9987 UDP: TeamSpeak 3 — голос;
  • 10011 TCP: TeamSpeak 3 — запрос сервера;
  • 30033 TCP: TeamSpeak 3 — передача файлов.

3.2.1. Если у вас firewalld.

Голос:

# firewall-cmd --zone=public --add-port=9987/udp --permanent

Запрос сервера (хорошая идея, чтобы ограничить IP):

# firewall-cmd --zone=public --add-port=10011/tcp --permanent

Передача файлов:

# firewall-cmd --zone=public --add-port=30033/tcp --permanent

Перезагрузите брандмауэр:

# firewall-cmd --reload

3.2.2. Если у вас iptables.

# iptables -A INPUT -p udp -m multiport --dports 9987 -j ACCEPT
# iptables -A INPUT -p tcp -m multiport --dports 10011,30033 -j ACCEPT

Код:

# service iptables save
# service iptables restart

Сохраняем правила, перегружаем фаервол и смотрим открытые порты.

# iptables -L -n

Для работы должны быть обязательны открыты порты 9987, 10011, при чем если подключатся telnet на порт 9987 у вас не получится, а если подключатся клиентом, то все будет работать. Для обмена файлами требуется также открыть порт 30033.

Далее просто пробросите данные порты через свои каналы связи и будет вам счастье!

3.3. Создание системного пользователя.

Далее создадим пользователя для TeamSpeak:

# adduser teamspeakuser

Сделаем пароль на вход в систему для этого пользователя. Сделаем пароль сложным. Он будет вводиться автоматически, поэтому можно не жадничать с количеством символов.

# passwd teamspeakuser

Будет предложено ввести 2 раза пароль, чтобы его запомнить в системе.

Для ленивых генератор паролей онлайн: passgenerator.ru.

3.4. Скачивание серверной части. 

Далее скачиваем TeamSpeak сервер с официального сайта разработчика программного обеспечения: teamspeak.com.

# mkdir -p /home/teamspeak

Распаковываем в папку, из которой будет запускаться программа. К примеру это будет папка /home/teamspeak. Проверьте после распаковки, чтобы все содержимое находилось именно в папке teamspeak.

Выполните команду ls, и вы увидите аналогичный экран, если всё будет сделано правильно:

# ls /home/teamspeak

3.5. Принятие лицензионного соглашения.

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

Чтобы всё не уткнулось в такую вот ошибку, выполним инструкцию, указанную в комментарии ошибки.

Создадим файл с согласием принять лицензию:

# touch /home/teamspeak/.ts3server_license_accepted

Это создаст новый пустой файл с именем .ts3server_license_accepted, который будет действовать как лицензионное соглашение.

Если данный способ лицензию не подтвердит, то попробуем второй способ. 

# mcedit /home/teamspeak/.ts3server_license_accepted

В файл поместим свое согласие в виде одной строки строки:

license_accepted=1

Сохраним файл и выйдем из текстового редактора.

Кому интересно что в лицензии, то она содержится в файле LICENSE, прямо в корневом каталоге программы TeamSpeak.

# mcedit /home/teamspeak/LICENSE

3.6. Создание конфигурации службы автозапуска.

Для того, чтобы TeamSpeak исправно продолжал работу после перезагрузки сервера, нам нужно сделать чтобы TeamSpeak запускающимся автоматически. Создадим сценарий запуска. Создайте следующий файл и откройте его в текстовом редакторе.

# mcedit /usr/lib/systemd/system/teamspeak.service

Добавляем данные строки в файл:

[Unit]
Description=TeamSpeak 3 Server
After=network.target

[Service]
WorkingDirectory=/home/teamspeak/
User=teamspeakuser
Group=teamspeakuser
Type=forking
ExecStart=/home/teamspeak/ts3server_startscript.sh start inifile=ts3server.ini
ExecStop=/home/teamspeak/ts3server_startscript.sh stop
PIDFile=/home/teamspeak/ts3server.pid
RestartSec=15
Restart=always

[Install]
WantedBy=multi-user.target

Сохраните и выйдите из текстового редактора.

3.7. Создание файлов конфигурации.

Настроим работу TeamSpeak с базами данных из MariaDB. Взаимодействие программ описывается в файле конфигурации ts3server.ini.

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

# mcedit /home/teamspeak/ts3server.ini

machine_id=1
default_voice_port=9987
voice_ip=192.168.10.195
licensepath=
filetransfer_port=30033
filetransfer_ip=192.168.10.195
query_port=10011
query_ip=192.168.10.195
dbplugin=ts3db_mariadb
dbpluginparameter=ts3db_mariadb.ini
dbsqlpath=sql/
dbsqlcreatepath=create_mariadb/
logpath=logs
logquerycommands=0
dbclientkeepdays=30
logappend=0
query_skipbruteforcecheck=0

Так же создадим ts3db_mariadb.ini и настроим:

# mcedit /home/teamspeak/ts3db_mariadb.ini

[config]
host=127.0.0.1
port=3306
username=teamspeak_user
password=paSSword
database=teamspeak_db
socket=

3.8. Проверка системных зависимостей.

Символьной ссылки на libmariadb.so.2:

# ln -s /home/teamspeak/redist/libmariadb.so.2 /usr/lib64/libmariadb.so.2

Проверим недостающие зависимости:

# ldd /home/teamspeak/libts3db_mariadb.so

Все зависимости в норме!

3.9. Генерация паролей сервера.

Сделаем файл скрипты запуска TeamSpeak исполняемыми:

# chmod +x /home/teamspeak/ts3server_startscript.sh

# chmod +x /home/teamspeak/ts3server_minimal_runscript.sh

Запустим скрипт старта TeamSpeak:

# sh /home/teamspeak/ts3server_startscript.sh start inifile=ts3server.ini

Если все конфигурационные файлы были созданы без ошибок, то сервер TeamSpeak запустится без ошибок!

Так же вы должны увидеть, что Teamspeak установлен, видите сообщение на экране с токеном привилегий и данными учетной записи администратора запроса сервера, важно скопировать их, поскольку они понадобятся вам для администрирования вашего сервера.

Внимание! Данная информация может появиться и спустя 1-2 минуты, после работы скрипта. Ждем!

Обязательно скопируйте свои данные которые покажет сервер вида:

loginname= "serveradmin", password= "Y5QbqQ3G"
token=EkMWxw+1UG4keQVILVl8l1s6lmI3t/zBZFcgzSRj

Бывает, что сервер TeamSpeak исправно стартует, но забывает вам показать логин и пароль. Редко, но бывает! Выудим ключ из лога TeamSpeak при помощи небольшого однострочника. Если такая табличка не вышла, по идем смотреть log-файлы:

# cat /home/teamspeak/logs/ts3server_*

или так

# cat /home/teamspeak/logs/ts3server_* | grep -o 'token.*' | cut -f2- -d=

Если они там появились, то сервер действительно у нас работал некоторое время.

Остановим пробно запущенный сервер Teamspeak:

# sh /home/teamspeak/ts3server_startscript.sh stop

Теперь вы можете запустить и включить функцию запуска TeamSpeak, как отдельной службы, в автозагрузку сервера.

3.10. Автоматизация запуска сервера.

В инструкции выше мы делали файл запуска сервера TeamSpeak в качестве отдельного сервиса. Пришло время его автоматизировать и проверить.

Добавим права на работу с файлами сервера TeamSpeak для пользователя teamspeakuser:

# chown -R teamspeakuser:teamspeakuser /home/teamspeak

# chmod -R 700 /home/teamspeak

Теперь запустим сервис TeamSpeak в фоновом режиме:

# systemctl enable teamspeak.service

# systemctl start teamspeak.service

Вы можете проверить, работает ли скрипт запуска:

# systemctl | grep teamspeak.service

Проверим стартовал ли TeamSpeak в виде сервиса.

# systemctl -l status teamspeak.service

Теперь можно подключать клиентскую часть TeamSpeak. Первому пользователю, который войдет в систему, будет предложено предоставить ключ privilege key, введите тот, который был получен во время установки, по инструкции выше.

4. Подключение клиентской части.

Дело за малым — подключится к серверу и ввести ключ привилегий.

Для использования TeamSpeak, надо установить программу клиент, её можно скачать по этой ссылке: teamspeak.com для любой вашей операционной системы, и в меню Подключения выбираем пункт Подключиться.

Вводим IP-адрес вашего сервера, пароль и логин из генерации выше:

loginname= "serveradmin", password= "Y5QbqQ3G"
token=EkMWxw+1UG4keQVILVl8l1s6lmI3t/zBZFcgzSRj

Появится окно с указанием ввести ключ, что мы и сделаем:

Жмем Ок и получаем рабочий сервер TeamSpeak 3.

5. Если что-то пошло не так.

5.1. Сброс или замена пароля.

Поздравляю! Вы забыли пароль или просто считаете его не особо надёжным, раз читаете этот раздел. Что ж будем его делать заново. 

Для этого остановите сервер и запустите со следующей командой:

# sh /home/teamspeak/ts3server_startscript.sh stop
# sh /home/teamspeak/ts3server_startscript.sh start serveradmin_password=ваш_новый_пароль

5.2. Где хранятся настройки сервера.

Где находится база данных TeamSpeak и как ее удалить с сервера или сохранить для последующего восстановления?

ts3server.sqlitedb, находится в корневой TeamSpeak сервера. Так же не забудьте удалить/скопировать папку files, licensekey.dat и query_ip_whitelist.

6. Оригиналы источников информации.

  1. ru.wikipedia.org «TeamSpeak».
  2. andreyex.ru «Как установить TeamSpeak на сервер CentOS 7».
  3. spottedhyena.co.uk «Teamspeak 3 on CentOS 7 using MariaDB Database (3.0.12.4)».
  4. web-zones.ru «Полная инструкция по установки teamspeak 3 server на CentOS 6».
  5. web-zones.ru «Установка TeamSpeak на Centos 7.x».
  6. thewolves.mostop.ru «Установка сервера Teamspeak3 на ubuntu\linuxmint».
  7. hostinger.ru «Как создать TeamSpeak 3 Сервер – полное руководство».
  8. myteamspeak.ru «Какие порты использует TeamSpeak 3 Server?».
  9. habr.com «Установка и настройка TeamSpeak 3 сервера на VDS».
  10. myteamspeak.ru «Где находится база данных TS3 и как ее сохранить (для последующего восстановления)?».

Читайте также: