Linux에서 TeamSpeak 서버를 호스팅하는 방법

리눅스 환경에서 음성 채팅을 선호하지만, Discord와 같은 클라우드 기반 솔루션은 꺼려지시나요? 만약 개인 서버를 운영하고 있다면, TeamSpeak 서버를 직접 호스팅하여 “자체 제작” 솔루션을 활용하는 것이 좋은 대안이 될 수 있습니다.

새로운 사용자 계정 생성

리눅스에서 TeamSpeak 서버를 설정하는 첫 번째 단계는 서버 소프트웨어를 안전하게 실행할 수 있는 전용 사용자를 만드는 것입니다. 터미널 창을 열고 `sudo` 명령어를 사용하여 루트 권한을 획득하세요. 루트 권한을 확보하면 서버와 상호 작용하고 다양한 관리자 명령을 더 쉽게 실행할 수 있습니다.

sudo -s

이제 루트 권한이 있으니, `adduser` 명령어를 사용하여 새 사용자를 생성합니다. 이 사용자는 시스템에 직접 로그인할 필요가 없으므로, `–disabled-login` 옵션을 사용할 것입니다.

adduser --disabled-login teamspeak

usermod -a -G teamspeak teamspeak

사용자에게 별도의 비밀번호를 지정할 필요는 없습니다. 시스템에서 필요한 처리를 자동으로 수행합니다. 이제 서버 소프트웨어를 다운로드하는 단계로 넘어가겠습니다.

TeamSpeak 서버 설치

TeamSpeak 서버 소프트웨어는 상용 소프트웨어이기 때문에, 대부분의 리눅스 배포판에서는 공식적으로 패키징되어 제공되지 않습니다. 따라서 사용자는 직접 다운로드하여 설치해야 합니다. 공식 웹사이트에 접속하여 사용 중인 CPU 아키텍처에 맞는 버전을 선택하십시오. TeamSpeak는 32비트와 64비트 버전을 모두 지원합니다. 다운로드한 파일을 FTP, Samba 등을 이용하여 서버로 전송하거나, `wget` 명령어를 사용하여 서버에서 직접 다운로드할 수 있습니다.

최신 버전의 TeamSpeak 서버를 다운로드하려면 릴리스 폴더로 이동하여 최신 버전을 마우스 오른쪽 버튼으로 클릭하고 “링크 주소 복사”를 선택한 후, 다음 명령어를 실행하십시오.

wget https://dl.4players.de/ts/releases/3.1.1/teamspeak3-server_linux_amd64-3.1.1.tar.bz2

또는

wget https://dl.4players.de/ts/releases/3.1.1/teamspeak3-server_linux_x86-3.1.1.tar.bz2

`tar` 명령어를 사용하여 다운로드한 TeamSpeak 서버 소프트웨어 압축을 해제합니다.

tar -xvf teamspeak3-server_linux_*.tar.bz2

rm *.tar.bz2

이전에 생성한 사용자에게 폴더에 대한 전체 권한을 부여하기 위해 `chown` 명령어를 사용합니다. `teamspeak` 사용자가 폴더를 문제없이 사용할 수 있도록 소유권을 변경하는 것은 매우 중요합니다.

주의: 보안상의 이유로 TeamSpeak 서버를 루트 권한으로 실행하지 마십시오.

mv teamspeak3-server_linux_* /usr/local/teamspeak

chown -R teamspeak:teamspeak /usr/local/teamspeak

cd /usr/local/teamspeak

서버 소프트웨어에 사용 약관에 동의했음을 알리는 파일을 생성합니다.

touch .ts3server_license_accepted

이제 TeamSpeak 서버를 위한 커스텀 systemd 서비스 파일을 생성합니다.

cd /etc/systemd/system

echo '' > teamspeak3.service

nano teamspeak3.service

아래 코드를 Nano 텍스트 편집기에 붙여넣고 Ctrl+O로 저장합니다.

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

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

[Install]
WantedBy=multi-user.target

systemd init 도구를 사용하여 새로운 `teamspeak3.service` 파일을 시작하고 활성화합니다.

systemctl enable teamspeak3

systemctl start teamspeak3

다음 명령어를 사용하여 언제든지 systemd에서 서버를 다시 시작할 수 있습니다.

systemctl stop teamspeak3

다음 명령어를 사용하여 서버를 완전히 비활성화할 수 있습니다.

systemctl disable teamspeak3

로그인

TeamSpeak3 서버 설정의 어려운 과정은 모두 끝났습니다. 이제 남은 것은 관리자 키(권한 토큰이라고도 함)를 확보하는 것입니다. 이 토큰은 서버 소프트웨어가 처음 시작될 때 무작위로 생성됩니다. 토큰을 얻으려면 TeamSpeak3 클라이언트를 실행하고 서버에 접속해야 합니다. 서버에 처음 접속할 때 “권한 키”를 입력하라는 메시지가 나타납니다. 만약 키를 입력하라는 메시지가 표시되지 않으면 서버 설정에서 해당 옵션을 찾아 클릭해야 합니다.

다음 명령어를 사용하여 TeamSpeak 서버 관리자 토큰을 자동으로 찾고 파일에 저장합니다.

cat /usr/local/teamspeak/logs/* | grep "token"

`token=` 바로 뒤에 있는 숫자 문자열을 복사하고, `’` 표시 안에 넣어서 `echo` 명령어를 실행합니다.

echo 'token string' > /usr/local/teamspeak/admin-token.txt

이 방법으로 문자열을 반향하면 토큰 파일이 안전한 위치에 보관됩니다.

`cat` 명령어를 사용하여 토큰 텍스트 파일을 확인할 수 있습니다.

사용자에게 관리자 권한을 부여하려면 파일 내용을 복사하여 표시되는 프롬프트에 붙여넣으십시오.

cat /usr/local/teamspeak/admin-token.txt

각 관리자에 대해 새로운 권한 토큰을 생성해야 할 수 있습니다. 이 작업을 수행하는 방법을 자세히 알아보려면 TeamSpeak 웹사이트와 관련 문서를 참조하십시오.

TeamSpeak 서버 제거

TeamSpeak는 유용한 소프트웨어이지만, 일부 사용자는 복잡한 설치 과정에 어려움을 느낄 수 있습니다. 설치 후 TeamSpeak 서버가 더 이상 필요하지 않다고 판단되면 다음 단계를 따라 소프트웨어를 완전히 제거할 수 있습니다.

먼저 systemd를 사용하여 TeamSpeak 서비스를 비활성화하고 중지합니다.

sudo systemctl disable teamspeak3 -f

sudo systemctl stop teamspeak3

다음으로 설정에서 생성한 사용자 지정 systemd 서비스를 삭제합니다.

sudo rm  /etc/systemd/system/teamspeak3.service

이제 서버에서 소프트웨어를 제거합니다.

sudo rm -rf /usr/local/teamspeak/

마지막으로 TeamSpeak 그룹과 사용자를 삭제합니다.

sudo userdel -r teamspeak

sudo groupdel teamspeak

위의 모든 명령어를 실행하면 서버에서 TeamSpeak 관련 모든 내용이 제거됩니다. `sudo` 명령어가 작동해야 하지만 작동하지 않는 경우, 위의 각 명령어에서 `sudo`를 제거하고 루트 셸(`sudo -s`)을 미리 획득하여 실행하십시오.