RTFM.WIKI

Ordnung muß sein. Ordnung über alles (18+)

Инструменты пользователя

Инструменты сайта


linux:debian:teamspeak_debian9

Установка Teamspeak в Debian 9

Это копия статьи из моей wiki в Rootwelt. Информация могла устареть. Статья в скором времени будет удалена или перенесена в архив.

Исходные данные: Debian 9, вместо SQLite будет использоваться MySQL. FIXME Пример установки с SQLite смотрите в статье Установка Teamspeak в CentOS 7

Установка MariaDB

Если у вас уже установлена MariaDB, то эту часть можно пропустить.

Обновляем кэш пакетов и обновляем ПО

# apt-get update && apt-get upgrade

Устанавливаем MariaDB

# apt-get install mariadb-client mariadb-server

Выполняем первончальную настройку через mysql_secure_installation

# mysql_secure_installation
Enter current password for root (enter for none): <enter>
Set root password? [Y/n] y
New password: <вводим_пароль>
Remove anonymous users? [Y/n] y
Disallow root login remotely? [Y/n] y
Remove test database and access to it? [Y/n] y
Reload privilege tables now? [Y/n] y

Создаём новую базу данных и mysql-пользователя для работы с Teamspeak

# mysql -u root -p
MariaDB [(none)]> CREATE DATABASE teamspeak;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON teamspeak.* TO 'ts3'@'localhost' IDENTIFIED BY 'TeamspeakPassword';
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> quit;

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

# apt-get install libmariadb2

Добавляем пользователя

Добавляем пользователя от имени которого будет работать teamspeak

# adduser --system --group --disabled-login --shell /usr/sbin/nologin --no-create-home --gecos "" teamspeak

Adding system user `teamspeak' (UID 114) ...
Adding new group `teamspeak' (GID 118) ...
Adding new user `teamspeak' (UID 114) with group `teamspeak' ...
Not creating home directory `/home/teamspeak'.

Описание всех опций к команде adduser можно посмотреть на странице manpages

Создаем каталоги и копируем файлы

В качестве рабочего каталога будем использовать /opt.

Копируем ссылку на Teamspeak 3 Server со страницы https://www.teamspeak.com/en/downloads#server

На момент написания статьи последняя версия 3.2.0
Debian 9 доступен только в 64-битной редакции, поэтому скачиваем 64-битную версию Teamspeak 3 Server.

Скачиваем в каталог /tmp, распаковываем и переносим файлы в каталог /opt/teamspeak

# cd /tmp
# wget http://dl.4players.de/ts/releases/3.2.0/teamspeak3-server_linux_amd64-3.2.0.tar.bz2
# tar xfvj teamspeak3-server_linux_amd64-3.2.0.tar.bz2
# mkdir /opt/teamspeak
# mv teamspeak3-server_linux_amd64/* /opt/teamspeak/

Заранее принимаем лицензионное соглашение. В противном случае при запуске Teamspeak будет выведено следующее сообщение

Please set the environment variable TS3SERVER_LICENSE to "accept" in order to accept the license agreement.
Alternatively, create a file named ".ts3server_license_accepted" in the working directory or start the server with the command line parameter "license_accepted=1".
To view the license agreement set TS3SERVER_LICENSE to "view" in order to print the license to the console.
Alternatively view the file "LICENSE" in your favorite text viewer yourself.

Создадим файл .ts3server_license_accepted

# touch /opt/teamspeak/.ts3server_license_accepted

Конфигурационный файл Teamspeak

Пример конфигурационного файла /opt/teamspeak/ts3server.ini.

Явно указываем использовать MariaDB вместо SQLite (опции dbsqlpath, dbplugin, dbsqlcreatepath и dbpluginparameter).

machine_id=
default_voice_port=9987
voice_ip=0.0.0.0
licensepath=
filetransfer_port=30033
filetransfer_ip=0.0.0.0
query_port=10011
query_ip=0.0.0.0
query_ip_whitelist=query_ip_whitelist.txt
query_ip_blacklist=query_ip_blacklist.txt
dbsqlpath=sql/
dbplugin=ts3db_mariadb
dbsqlcreatepath=create_mariadb/
dbpluginparameter=ts3db_mariadb.ini
dbconnections=10
logpath=logs
logquerycommands=0
dbclientkeepdays=30
logappend=0
query_skipbruteforcecheck=0

Дополнительно создаём конфигурационный файл для связи с базой данных /opt/teamspeak/ts3db_mariadb.ini

[config]
host=127.0.0.1
port=3306
username=ts3
password=TeamspeakPassword
database=teamspeak
socket=

Права доступа, chown

Теперь, когда созданы все необходимые файлы нужно рекурсивно изменить права для /opt/teamspeak с помощью команды chown

# chown -R teamspeak:teamspeak /opt/teamspeak

unit-файл

Создаём файл /etc/systemd/system/teamspeak.service

[Unit]
Description=Teamspeak 3 Server
After=network.target mariadb.service mysql.service

[Service]
WorkingDirectory=/opt/teamspeak/
User=teamspeak
Group=teamspeak
Type=forking

ExecStart=/opt/teamspeak/ts3server_startscript.sh start inifile=ts3server.ini
ExecStop=/opt/teamspeak/ts3server_startscript.sh stop

PIDFile=/opt/teamspeak/ts3server.pid
#RestartSec=15
#Restart=always
[Install]
WantedBy=multi-user.target

Добавляем Teamspeak в автозагрузку

# systemctl --system daemon-reload
# systemctl enable teamspeak.service

Настройка firewall

Список портов необходимых для работы Teamspeak

Правила для iptables

iptables -A INPUT -p udp --dport 9987 -j ACCEPT
iptables -A INPUT -p udp --sport 9987 -j ACCEPT
iptables -A INPUT -p tcp --dport 30033 -j ACCEPT
iptables -A INPUT -p tcp --sport 30033 -j ACCEPT
iptables -A INPUT -p tcp --dport 10011 -j ACCEPT
iptables -A INPUT -p tcp --sport 10011 -j ACCEPT

Правила для firewalld

firewall-cmd --zone=public --permanent --add-port=9987/udp
firewall-cmd --zone=public --permanent --add-port=10011/tcp
firewall-cmd --zone=public --permanent --add-port=30033/tcp
firewall-cmd --reload

Первый запуск

Перед запуском сервера через systemctl запустим Teamspeak используя .sh скрипт, чтобы получить privilege key необходимый для администрирования вашего сервера

# cd /opt/teamspeak
# ./ts3server_startscript.sh inifile=ts3server.ini

Вводим ключ привилегий

Подключение успешно выполнено

Также можно сразу запустить сервер через systemd командой

# systemctl start teamspeak.service

Privelege key не будет выведен на экран терминала, но его можно найти в лог файле

# cat /opt/teamspeak/logs/* | grep token

Проверяем запуск через systemctl

Старт/Стоп

# systemctl start teamspeak.service
# systemctl stop teamspeak.service

Статус

# systemctl status teamspeak.service
● teamspeak.service - Teamspeak 3 Server
   Loaded: loaded (/etc/systemd/system/teamspeak.service; enabled; vendor preset: enabled)
   Active: active (running) since Wed 2018-06-06 12:37:21 +03; 1s ago
  Process: 13242 ExecStart=/opt/teamspeak/ts3server_startscript.sh start inifile=ts3server.ini (code=e
 Main PID: 13246 (ts3server)
    Tasks: 4 (limit: 4915)
   CGroup: /system.slice/teamspeak.service
           └─13246 ./ts3server inifile=ts3server.ini

Возможные ошибки

unable to load database plugin library "libts3db_mariadb.so", halting!

2018-06-05 12:51:53.929972|CRITICAL|DatabaseQuery |   |unable to load database plugin library "libts3db_mariadb.so", halting!
TeamSpeak 3 server could not start

Не хватает библиотеки

# ldd /opt/teamspeak/libts3db_mariadb.so        
        linux-vdso.so.1 (0x00007ffd88792000)
        libmariadb.so.2 => not found
        libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f7992143000)
        libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f7991f26000)
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f7991b87000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f799273e000)

Как исправить

# apt-get install libmariadb2

Есть другие мнения (в Debian 9 не работает, рабочий вариант именно с установкой пакета через apt)

1. Создать символическую ссылку

# ln -s /opt/teamspeak/redist/libmariadb.so.2 /opt/teamspeak3-server/libmariadb.so.2

2. Либо просто скопировать файл libmariadb.so.2 из /redist в каталог c Teamspeak (из /opt/teamspeak/redist в /opt/teamspeak).

failed to register local accounting service

Ошибка Server() error while starting servermanager, error: instance check error

Выполнить команду

# mount -t tmpfs tmpfs /dev/shm

Добавить в /etc/fstab

tmpfs /dev/shm tmpfs defaults 0 0

Источник

Минута славы

Наши VPS в Rootwelt (справка для истории, сейчас уже все не так) работают без выключений месяцами

и спокойно выдерживают онлайн 32 пользователей доступных в бесплатной лицензии Teamspeak.

Ссылки

Сайт rtfm.wiki использует cookies и трекинг посещений. Продолжая использовать этот сайт, вы соглашаетесь с сохранением файлов cookie на вашем компьютере. Если вы не согласны покиньте сайт или включите Adblock 😎 Что такое cookies? 🍪

Обсуждение

Ваш комментарий. Вики-синтаксис разрешён:
 
linux/debian/teamspeak_debian9.txt · Последнее изменение: 2022/08/03 20:32 — dx