기술 가이드

CentOS 7에 TeamSpeak 서버 설치 가이드

4 min read 서버 설치 업데이트됨 20 Oct 2025
CentOS 7에 TeamSpeak 서버 설치 및 운영 가이드
CentOS 7에 TeamSpeak 서버 설치 및 운영 가이드

개요

TeamSpeak는 VOIP(Voice Over Internet Protocol) 기반의 음성 통신 서버입니다. 온라인 게임, 교육, 원격 회의 등 다양한 환경에서 사용됩니다. 이 문서는 CentOS 7에 TeamSpeak 서버를 직접 설치하고 운영하는 실제 절차를 제공하며, 운영 중 발생할 수 있는 일반적 이슈와 보안·백업 권장사항도 다룹니다.

중요 용어: VOIP — 인터넷을 통해 음성 데이터를 전달하는 기술.

전제 조건

  • 최소 설치된 CentOS 7 서버
  • 루트 권한(루트 계정으로 작성됨). sudo 사용자라면 sudo -i로 루트 전환
  • 방화벽(firewalld) 사용을 권장

시스템 업데이트

패키지와 저장소 정보를 최신으로 유지하세요.

yum -y update

업데이트가 끝나면 다음 단계로 넘어가 의존성을 설치합니다.

의존성 설치

TeamSpeak 실행에 필요한 기본 도구들을 설치합니다.

yum -y install nano wget perl tar net-tools bzip2

TeamSpeak 전용 사용자 생성

서버 프로세스를 분리된 사용자로 실행하면 보안성이 향상됩니다. 홈 디렉터리를 /opt/teamspeak로 지정해 사용자 추가:

adduser teamspeak -d /opt/teamspeak

위 명령은 teamspeak 유저를 추가하고 홈 디렉터리를 /opt/teamspeak로 설정합니다.

TeamSpeak 설치

공식 바이너리 아카이브를 다운로드하고 압축을 풉니다. 예시(원본 링크 유지):

wget http://dl.4players.de/ts/releases/3.0.13.8/teamspeak3-server_linux_amd64-3.0.13.8.tar.bz2

최신 버전 링크는 TeamSpeak 공식 다운로드 페이지에서 확인하세요. 아카이브를 풀고 파일을 전용 홈 디렉터리로 이동합니다.

tar xvf teamspeak3-server_linux_amd64*.tar.bz2
mv teamspeak3-server_linux_amd64/* /opt/teamspeak
rm -rf teamspeak3-server_linux_amd64*
chown -R teamspeak: /opt/teamspeak

이제 TeamSpeak가 /opt/teamspeak에 설치되었습니다.

서버 시작

TeamSpeak는 제공된 스크립트로 시작/중지를 관리합니다. teamspeak 사용자로 전환하여 서버를 시작하세요.

su - teamspeak  
 ./ts3server_startscript.sh start inifile=ts3server.ini

서버가 정상 시작되면 예시와 유사한 출력이 나타납니다.

[teamspeak@centos ~]$ ./ts3server_startscript.sh start inifile=ts3server.ini
Starting the TeamSpeak 3 server
TeamSpeak 3 server started, for details please view the log file
[teamspeak@centos ~]$
------------------------------------------------------------------
                      I M P O R T A N T
------------------------------------------------------------------
               Server Query Admin Account created
         loginname= "serveradmin", password= "4CQJv1kq"
------------------------------------------------------------------

서버 중지 명령:

./ts3server_startscript.sh stop

예시 출력:

[teamspeak@centos ~]$ ./ts3server_startscript.sh stop
Stopping the TeamSpeak 3 server done

참고: 위 예시는 설치 시 생성된 서버쿼리 계정 정보 예시입니다. 실제 설치에서는 각자 출력되는 초기 비밀번호를 안전한 곳에 보관하세요.

systemd 서비스 구성

서버를 systemctl로 관리하려면 systemd 유닛을 생성합니다. 다음 명령으로 새 파일을 엽니다.

nano /lib/systemd/system/teamspeak.service

아래 내용을 파일에 붙여넣으세요.

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

[Service]
Type=forking
WorkingDirectory=/opt/teamspeak/
ExecStart=/opt/teamspeak/ts3server_startscript.sh start inifile=ts3server.ini
ExecStop=/opt/teamspeak/ts3server_startscript.sh stop
User=teamspeak
Group=teamspeak
PIDFile=/opt/teamspeak/ts3server.pid
Restart=always
RestartSec=9
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=teamspeak

[Install]
WantedBy=multi-user.target

파일을 저장한 뒤 아래 명령으로 서비스를 활성화하고 시작합니다.

systemctl daemon-reload
systemctl start teamspeak
systemctl enable teamspeak
systemctl status teamspeak

방화벽 및 네트워크 포트

기본적으로 TeamSpeak는 아래 포트를 사용합니다. 방화벽에서 허용하세요.

  • 음성: UDP 9987
  • 파일 전송: TCP 30033
  • ServerQuery: TCP 10011

firewalld를 사용하는 경우 예시:

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

퍼블릭 네트워크에 노출하는 경우 포트와 접근 제어를 최소화하고 VPN 또는 접속 인증을 고려하세요.

SELinux와 권한 문제

CentOS 7에서 SELinux가 활성화된 경우 권한·접근 문제로 서비스가 차단될 수 있습니다. 간단한 검사 방법:

getenforce

문제가 의심되면 일시적으로 Permissive로 변경해 원인을 확인합니다(운영 환경에서는 권장하지 않음):

setenforce 0

영구적으로 비활성화하려면 /etc/selinux/config를 편집해야 합니다. 더 안전한 방법은 필요한 정책을 생성하거나 파일 컨텍스트를 적절히 조정하는 것입니다.

백업과 복구

운영 중인 서버는 정기적으로 다음 항목을 백업하세요.

  • /opt/teamspeak/ 디렉터리 전체(설정, 로그, 파일전송 데이터)
  • 데이터베이스 파일(예: ts3server.sqlitedb)

간단한 백업 예시:

tar czf teamspeak-backup-$(date +%F).tar.gz /opt/teamspeak

업그레이드 전에는 항상 전체 백업을 수행하고 서비스 중단 후 파일 소유권(chown)을 확인하세요.

업그레이드 SOP(간단한 플레이북)

  1. 서비스 중지: systemctl stop teamspeak
  2. 전체 백업: tar로 /opt/teamspeak 백업
  3. 새 아카이브 업로드 및 압축 해제
  4. 파일을 /opt/teamspeak로 이동, 소유권 설정: chown -R teamspeak: /opt/teamspeak
  5. 서비스 시작: systemctl start teamspeak
  6. 로그 확인 및 연결 테스트

문제해결(정형화된 체크리스트)

  • 서버가 시작되지 않을 때

    • 로그 확인: /opt/teamspeak/logs/ 또는 journalctl -u teamspeak
    • 권한 확인: chown -R teamspeak: /opt/teamspeak
    • 포트 충돌: ss -tulpn | grep 9987
    • SELinux 차단 여부 확인
  • 클라이언트가 연결되지 않을 때

    • 방화벽 포트 개방 여부 확인
    • NAT 환경이면 포트 포워딩 설정 확인
    • 외부에서 접속 시 퍼블릭 IP가 올바른지 확인

운영·보안 권장사항

  • 서버쿼리 계정 초기 비밀번호는 즉시 변경
  • 운영 서버는 방화벽 뒤에 두고 필요 포트만 허용
  • 정기적인 백업과 로그 모니터링
  • 루트가 아닌 전용 사용자로 프로세스 실행
  • 패치 및 보안 업데이트 정기 적용

수용 기준(테스트 케이스)

  • systemctl status teamspeak 결과가 active (running) 이어야 함
  • 로컬 네트워크에서 TeamSpeak 클라이언트로 접속 및 음성 통화 가능
  • 파일 전송(30033) 기능 확인
  • ServerQuery에 로그인 가능

운영자별 체크리스트

  • 시스템 관리자
    • systemctl 관리, 백업 계획, 보안 패치
  • 서버 관리자
    • 설정(ini), 로그 확인, 장애 복구
  • 게임·커뮤니티 관리자
    • 권한(서버admin) 관리, 채널·권한 설정, 사용자 지원

간단한 의사결정 도표

flowchart TD
  A[설치 필요성 판단] --> B{이미 서비스 있음?}
  B -- 예 --> C[기존 서비스 점검 및 업그레이드]
  B -- 아니오 --> D[새 서버 설치]
  D --> E[의존성 설치]
  E --> F[바이너리 설치 및 권한 설정]
  F --> G[systemd로 등록 및 시작]
  G --> H[테스트 및 운영]

자주 묻는 질문

TeamSpeak는 어떤 포트들을 사용하나요?

음성: UDP 9987, 파일 전송: TCP 30033, ServerQuery: TCP 10011입니다.

백업은 어떻게 하나요?

/opt/teamspeak 전체와 데이터베이스 파일(ts3server.sqlitedb 등)을 정기적으로 tar.gz로 압축해 보관하세요.

systemd로 시작되지 않으면 어디를 확인하나요?

journalctl -u teamspeak 및 /opt/teamspeak/logs/ 하위 로그 파일을 확인하세요. 권한, SELinux, 포트 충돌을 점검합니다.

요약

  • CentOS 7에서 TeamSpeak를 설치하려면 의존성 설치, 전용 사용자 생성, 바이너리 압축 해제, 소유권 설정을 수행합니다.
  • systemd 서비스 유닛을 만들어 서비스로 관리하면 편리합니다.
  • 방화벽·SELinux 설정, 정기 백업과 보안 패치를 통해 안정적으로 운영하세요.

중요: 운영 환경에서는 초기 비밀번호와 백업을 안전하게 관리하고, 공개 서비스일 경우 접근 제어와 모니터링을 강화하세요.

공유하기: X/Twitter Facebook LinkedIn Telegram
저자
편집

유사한 자료

Windows Terminal 설정 백업 및 복원
튜토리얼

Windows Terminal 설정 백업 및 복원

아마존 OTP 작동 안함 — 해결 방법과 체크리스트
문제해결

아마존 OTP 작동 안함 — 해결 방법과 체크리스트

SessionBox로 한 창에서 여러 계정 관리하기
브라우저 확장

SessionBox로 한 창에서 여러 계정 관리하기

Steam에서 프로필 이름 변경하는 방법
게임 가이드

Steam에서 프로필 이름 변경하는 방법

포맷된 하드 드라이브 복구 가이드 — 안전한 절차
데이터 복구

포맷된 하드 드라이브 복구 가이드 — 안전한 절차

디지털 오디오 모듈레이션 가이드
오디오 프로세싱

디지털 오디오 모듈레이션 가이드