웹사이트 검색

Debian 11에 TeamSpeak Server를 설치하는 방법


이 페이지에서

  1. 전제 조건
  2. 1단계 - 방화벽 구성\n
  3. 2단계 - TeamSpeak 다운로드
  4. 3단계 - TeamSpeak 사용자 및 디렉토리 생성
  5. 4단계 - TeamSpeak 서버 실행\n
  6. 5단계 - TeamSpeak 서비스 데몬 생성
  7. 6단계 - TeamSpeak 클라이언트를 사용하여 연결\n
  8. 7단계 - 액세스 비밀번호 변경\n
  9. 8단계 - MySQL 설치 및 구성
  10. 9단계 - TeamSpeak 업그레이드
  11. 결론

TeamSpeak는 게이머, 팀 및 학교에서 사용하는 크로스 플랫폼 음성 채팅 소프트웨어입니다. 가볍고 빠르며 서버에서 호스팅할 수 있으므로 더 많은 제어 기능을 제공합니다. 전 세계 사람들과 안전하고 쉽게 연결할 수 있는 방법을 제공합니다. 그것은 완전히 사용자 정의 가능한 사용자 인터페이스를 가지고 있으며 직접 메시징, 무제한 파일 전송을 지원하고 익명 사용을 허용합니다.

이 튜토리얼은 Debian 11 기반 서버에 TeamSpeak 서버를 설치하고 Windows 클라이언트를 사용하여 연결하는 방법을 알려줍니다.

전제 조건

  • A Debian 11 based server.

  • A non-root user with sudo privileges.

  • Sudo package is installed.

  • Everything is updated.

    $ sudo apt update && sudo apt upgrade
    
  • Few packages that your system needs.

    $ sudo apt install nano ufw software-properties-common dirmngr apt-transport-https gnupg2 ca-certificates lsb-release debian-archive-keyring wget -y
    

    Some of these packages may already be installed on your system.

1단계 - 방화벽 구성

첫 번째 단계는 방화벽을 구성하는 것입니다. 데비안은 ufw(복잡하지 않은 방화벽)와 함께 제공됩니다.

방화벽이 실행 중인지 확인하십시오.

$ sudo ufw status

다음 출력을 얻어야 합니다.

Status: inactive

방화벽이 활성화 시 현재 연결을 끊지 않도록 SSH 포트를 허용합니다.

$ sudo ufw allow OpenSSH

TeamSpeak에 필요한 다음 포트를 엽니다.

  • 음성의 경우 9987/udp.
  • 파일 전송용 30033/tcp.
  • Serverquery(Raw)의 경우 10011/tcp.
  • 서버 쿼리(SSH)의 경우 10022/tcp.
  • Webquery(HTTP)용 10080/tcp.

$ sudo ufw allow 9987/udp
$ sudo ufw allow 30033/tcp
$ sudo ufw allow 10011/tcp
$ sudo ufw allow 10022/tcp
$ sudo ufw allow 10080/tcp

방화벽 활성화

$ sudo ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup

방화벽의 상태를 다시 확인하십시오.

$ sudo ufw status

비슷한 출력이 표시되어야 합니다.

Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
9987/udp                   ALLOW       Anywhere
30033/tcp                  ALLOW       Anywhere
10011/tcp                  ALLOW       Anywhere
10080/tcp                  ALLOW       Anywhere
10022/tcp                  ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)
9987/udp (v6)              ALLOW       Anywhere (v6)
30033/tcp (v6)             ALLOW       Anywhere (v6)
10011/tcp (v6)             ALLOW       Anywhere (v6)
10080/tcp (v6)             ALLOW       Anywhere (v6)
10022/tcp (v6)             ALLOW       Anywhere (v6)

2단계 - TeamSpeak 다운로드

TeamSpeaks 다운로드 페이지를 방문하여 최신 버전 번호를 확인하십시오. 이 튜토리얼 당시 v3.13.6은 사용 가능한 TeamSpeak 서버의 최신 버전입니다.

다음 명령을 사용하여 TeamSpeak 서버를 다운로드합니다.

$ TVERSION=3.13.6
$ wget https://files.teamspeak-services.com/releases/server/${TVERSION}/teamspeak3-server_linux_amd64-${TVERSION}.tar.bz2

다운로드한 아카이브를 추출합니다.

$ tar -xf ./teamspeak3-server_linux_amd64-${TVERSION}.tar.bz2

3단계 - TeamSpeak 사용자 및 디렉토리 생성

TeamSpeak 설치의 첫 번째 단계는 서버에 대한 사용자를 생성하는 것입니다. 사용자는 /opt/teamspeak에 홈 디렉터리를 갖게 되며 암호는 가지지 않습니다.

$ sudo adduser ts3 --home /opt/teamspeak --shell /bin/bash --disabled-password

이제 추출된 디렉터리를 /opt/teamspeak 디렉터리로 이동할 수 있습니다.

$ sudo mv teamspeak3-server_linux_amd64/* /opt/teamspeak/

디렉토리에 올바른 권한을 부여하십시오.

$ sudo chown -R ts3:ts3 /opt/teamspeak

4단계 - TeamSpeak 서버 실행

다음 단계는 처음으로 권한 키를 생성하기 위해 TeamSpeak 서버를 실행하는 것입니다. 이 키는 관리자로서 서버에 액세스하는 데 도움이 됩니다.

서버를 시작하기 전에 TeamSpeak 사용자로 로그인해야 합니다. 다음 명령을 실행하여 TeamSpeak 사용자로 쉘에 로그인하십시오.

$ sudo -u -i ts3

이를 위해 TeamSpeaks 작업 디렉토리에 .ts3server_license_accepted라는 파일을 생성합니다.

$ touch .ts3server_license_accepted

다음 명령을 실행하여 서버를 시작하십시오.

$ ./ts3server_startscript.sh start
------------------------------------------------------------------
                      I M P O R T A N T
------------------------------------------------------------------
               Server Query Admin Account created
         loginname= "serveradmin", password= "BtXdJaCb"
         apikey= "BAD8rYVPM61p_-TdrsBqEL_8ZxKzEHIKOkUk6_e"
------------------------------------------------------------------


------------------------------------------------------------------
                      I M P O R T A N T
------------------------------------------------------------------
      ServerAdmin privilege key created, please use it to gain
      serveradmin rights for your virtualserver. please
      also check the doc/privilegekey_guide.txt for details.

       token=WIRagRYXkCnWqM5g7gBoSgcHHpfgLG9w17pcLORy
------------------------------------------------------------------

서버를 처음 실행하면 서버 쿼리 관리자 계정이 생성됩니다. 사용자 이름과 암호를 기록해 둡니다. 또한 API 키와 생성된 권한 토큰을 기록해 둡니다. 다음 단계에서 이 정보가 필요합니다.

서버를 중지하려면 키보드에서 Ctrl + C를 누릅니다.

TeamSpeak 사용자로 로그아웃합니다.

$ exit

5단계 - TeamSpeak 서비스 데몬 생성

/lib/systemd/system/ts3server.service 파일을 만들고 편집을 위해 엽니다.

$ sudo nano /lib/systemd/system/ts3server.service

다음 코드를 붙여넣습니다.

[Unit]
Description=TeamSpeak3 Server
Wants=network-online.target
After=syslog.target network.target local-fs.target

[Service]
WorkingDirectory=/opt/teamspeak
User=ts3
Group=ts3
Type=forking
ExecStart=/opt/teamspeak/ts3server_startscript.sh start license_accepted=1
ExecStop=/opt/teamspeak/ts3server_startscript.sh stop
ExecReload=/opt/teamspeak/ts3server_startscript.sh restart
Restart=always
RestartSec=15

[Install]
WantedBy=multi-user.target

Ctrl + X를 누르고 프롬프트가 표시되면 Y를 입력하여 파일을 닫습니다.

서비스 데몬을 다시 로드합니다.

$ sudo systemctl daemon-reload

TeamSpeak 서비스를 활성화하고 시작합니다.

$ sudo systemctl enable ts3server --now

서비스 상태를 확인합니다.

$ sudo systemctl enable ts3server
? ts3server.service - TeamSpeak3 Server
     Loaded: loaded (/lib/systemd/system/ts3server.service; enabled; vendor preset: enabled)
     Active: active (running) since Tue 2022-03-29 08:18:17 UTC; 2s ago
    Process: 23120 ExecStart=/opt/teamspeak/ts3server_startscript.sh start license_accepted=1 (code=exited, status=0/SUCCESS)
   Main PID: 23127 (ts3server)
      Tasks: 21 (limit: 2341)
     Memory: 17.3M
        CPU: 1.953s
     CGroup: /system.slice/ts3server.service
             ??23127 ./ts3server license_accepted=1  daemon=1 pid_file=ts3server.pid

Mar 29 08:18:17 teamspeak systemd[1]: Starting TeamSpeak3 Server...
Mar 29 08:18:17 teamspeak ts3server_startscript.sh[23120]: Starting the TeamSpeak 3 server
Mar 29 08:18:17 teamspeak ts3server_startscript.sh[23120]: TeamSpeak 3 server started, for details please view the log file
Mar 29 08:18:17 teamspeak systemd[1]: Started TeamSpeak3 Server.

6단계 - TeamSpeak 클라이언트를 사용하여 연결

공식 웹 사이트에서 Windows TeamSpeak 3 클라이언트를 다운로드하여 설치합니다. 클라이언트의 최신 베타 버전(v5)을 다운로드할 수도 있지만 자습서에서는 이전 버전의 안정적인 v3를 사용합니다.

데스크탑에서 클라이언트를 시작하면 라이센스 프롬프트를 통과한 후 다음 화면이 나타납니다.

연결을 클릭하고 연결 옵션을 선택하여 시작하십시오. 서버 IP 주소, 4단계에서 생성한 비밀번호, 자신의 닉네임을 입력합니다.

계속하려면 연결 버튼을 클릭하십시오. 다음 프롬프트에서 권한 키를 입력하라는 메시지가 표시됩니다. 4단계의 권한 토큰을 입력하고 확인을 클릭하여 계속 진행합니다.

이제 TeamSpeak 서버에 연결되었으며 통신을 위해 클라이언트를 사용할 수 있습니다.

7단계 - 액세스 비밀번호 변경

서버 관리자 암호를 원하는 더 강력한 암호로 변경할 수 있습니다. 그렇게 하려면 TeamSpeak 서비스를 중지하십시오.

$ sudo systemctl stop ts3server

TeamSpeak 사용자로 전환합니다.

$ sudo -i -u ts3

TeamSpeak 서버를 시작하고 명령에 serveradmin_password 매개변수를 추가합니다.

$ ./ts3server_startscript.sh start serveradmin_password=password
Starting the TeamSpeak 3 server
TeamSpeak 3 server started, for details please view the log file

password를 원하는 강력한 암호로 바꾸십시오.

서버를 다시 중지하십시오.

$ ./ts3server_startscript.sh stop
Stopping the TeamSpeak 3 server .
done

사용자 계정으로 다시 전환하십시오.

$ exit

TeamSpeak 서비스를 다시 시작하십시오.

$ sudo systemctl start ts3server

8단계 - MySQL 설치 및 구성

기본적으로 TeamSpeak는 SQLite 데이터베이스를 사용하여 모든 통신 및 사용자 데이터를 저장합니다. 소규모 커뮤니티에는 괜찮지만 TeamSpeak를 사용하여 더 많은 사용자를 호스팅하는 경우 문제가 될 수 있습니다. 다행스럽게도 TeamSpeak는 MySQL 또는 PostgreSQL 데이터베이스를 사용하도록 구성할 수 있습니다.

MySQL 서버와 함께 사용하도록 구성하겠습니다.

Debian은 기본적으로 MySQL 8과 함께 제공되지 않으므로 MySQL을 대체하는 MariaDB 서버를 설치합니다.

$ sudo apt install mariadb-server -y

설치 프로그램이 시작되고 Mariadb 서비스가 활성화됩니다. 서비스 상태를 확인할 수 있습니다.

$ sudo systemctl status mariadb

MariaDB용 보안 스크립트를 실행합니다. 아래 제공된 옵션을 사용하십시오.

$ sudo mysql_secure_installation
Enter current password for root (enter for none): (Press Enter)
Switch to unix_socket authentication [Y/n] Y
Change the root password? [Y/n] n
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 셸에 로그인합니다.

$ sudo mysql

ts3user 사용자를 생성합니다. your_password를 원하는 강력한 암호로 바꾸십시오.

mysql> CREATE USER 'ts3user'@'localhost' IDENTIFIED BY 'your_password';

teamspeak3 데이터베이스를 생성합니다.

mysql> CREATE DATABASE teamspeak3;

teamspeak3 데이터베이스에 대한 사용자 권한을 부여합니다.

mysql> GRANT ALL PRIVILEGES ON teamspeak3.* TO 'ts3user'@'localhost';

셸을 종료합니다.

mysql> exit

TeamSpeak 사용자로 전환합니다.

$ sudo -i -u ts3

TeamSpeak와 함께 작동하도록 MariaDB를 구성하는 첫 번째 단계는 MariaDB 라이브러리를 추가하는 것입니다. /opt/teamspeak/redist 폴더에서 찾을 수 있습니다.

redist 폴더에서 기본 작업 디렉터리로 라이브러리에 대한 심볼릭 링크를 만듭니다.

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

다음 명령을 실행하여 TeamSpeak에 필요한 공유 라이브러리를 인쇄하십시오.

$ ldd /opt/teamspeak3-server/libts3db_mariadb.so

데이터베이스 매개변수를 저장하기 위한 구성 파일을 생성하고 편집을 위해 엽니다.

$ nano ts3db_mariadb.ini

다음 코드를 붙여넣습니다.

[config]
host=127.0.0.1
port=3306
username=ts3user
password=your_password
database=teamspeak3
socket=

위에서 만든 데이터베이스 자격 증명을 사용합니다. Ctrl + X를 누르고 프롬프트가 표시되면 Y를 입력하여 파일을 닫습니다.

TeamSpeak용 구성 파일을 생성하고 편집을 위해 엽니다.

$ nano ts3server.ini

다음 코드를 붙여넣습니다.

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

Ctrl + X를 누르고 프롬프트가 표시되면 Y를 입력하여 파일을 닫습니다. 이러한 구성 설정에 대해 알아보려면 doc 폴더에 있는 server_quickstart.md 파일을 참조하십시오. 위 파일은 SQLite 데이터베이스 대신 MariaDB를 사용하도록 TeamSpeak를 구성합니다.

TeamSpeak 셸을 종료합니다.

$ exit

새로 생성된 구성 파일을 사용하도록 TeamSpeak 서버에 알려야 합니다. TeamSpeak 서비스를 중지하고 비활성화하십시오.

$ sudo systemctl stop ts3server && sudo systemctl disable ts3server

서비스 파일을 엽니다.

$ sudo nano /lib/systemd/system/ts3server.service

ExecStart=/opt/teamspeak/ts3server_startscript.sh start license_accepted=1 줄을 찾아 아래와 같이 구성 파일 세부 정보를 추가하여 변경합니다.

....
Type=forking
ExecStart=/opt/teamspeak/ts3server_startscript.sh start license_accepted=1 inifile=ts3server.ini
....

Ctrl + X를 누르고 프롬프트가 표시되면 Y를 입력하여 파일을 닫습니다.

변경 사항을 적용하려면 서비스 데몬을 다시 로드하십시오.

$ sudo systemctl daemon-reload

TeamSpeak 서비스를 활성화하고 시작합니다.

$ sudo systemctl enable ts3server --now

서버의 상태를 확인하십시오.

$ sudo systemctl status ts3server
? ts3server.service - TeamSpeak3 Server
     Loaded: loaded (/lib/systemd/system/ts3server.service; enabled; vendor preset: enabled)
     Active: active (running) since Tue 2022-03-29 12:21:22 UTC; 6s ago
    Process: 26511 ExecStart=/opt/teamspeak/ts3server_startscript.sh start license_accepted=1 inifile=ts3server.ini (code=exited, status=0/SUCCESS)
   Main PID: 26518 (ts3server)
      Tasks: 21 (limit: 2341)
     Memory: 16.0M
        CPU: 1.818s
     CGroup: /system.slice/ts3server.service
             ??26518 ./ts3server license_accepted=1 inifile=ts3server.ini  daemon=1 pid_file=ts3server.pid

Mar 29 12:21:23 teamspeak ts3server_startscript.sh[26518]:          apikey= "BAA_lDBRBQxy2nPJXwPQvTRk9_sX3o403Ktlbjz"
Mar 29 12:21:23 teamspeak ts3server_startscript.sh[26518]: ------------------------------------------------------------------
Mar 29 12:21:24 teamspeak ts3server_startscript.sh[26518]: ------------------------------------------------------------------
Mar 29 12:21:24 teamspeak ts3server_startscript.sh[26518]:                       I M P O R T A N T
Mar 29 12:21:24 teamspeak ts3server_startscript.sh[26518]: ------------------------------------------------------------------
Mar 29 12:21:24 teamspeak ts3server_startscript.sh[26518]:       ServerAdmin privilege key created, please use it to gain
Mar 29 12:21:24 teamspeak ts3server_startscript.sh[26518]:       serveradmin rights for your virtualserver. please
Mar 29 12:21:24 teamspeak ts3server_startscript.sh[26518]:       also check the doc/privilegekey_guide.txt for details.
Mar 29 12:21:24 teamspeak ts3server_startscript.sh[26518]:        token=kuFsCpz8G7204KiYgQJR8X8orHR+C8OrSv21MZRw
Mar 29 12:21:24 teamspeak ts3server_startscript.sh[26518]: ------------------------------------------------------------------

그렇게 하면 권한 키가 다시 생성됩니다. 다음 번에 서버에 로그인할 때 이를 묻는 메시지가 표시됩니다. 그러나 서버 관리 암호는 동일하게 유지됩니다.

9단계 - TeamSpeak 업그레이드

TeamSpeak 서버를 업그레이드하는 첫 번째 단계는 서버를 중지하는 것입니다.

$ sudo systemctl stop ts3server

공식 웹 사이트에서 최신 버전을 다운로드하고 자습서의 2단계와 3단계에 따라 원본 파일을 덮어쓰는 아카이브를 /opt/teamspeak 디렉터리에 추출합니다. 추출된 폴더의 권한을 변경했는지 확인하십시오.

완료되면 서버를 다시 시작하십시오.

$ sudo systemctl start ts3server

결론

이것으로 Debian 11 기반 서버에 TeamSpeak Server를 설치하고 사용하는 방법에 대한 자습서를 마칩니다. 질문이 있으시면 아래 의견에 게시하십시오.