15%

Hemat 15% di Semua Layanan Hosting

Uji kemampuanmu dan dapatkan Diskon pada paket hosting apa saja

Gunakan kode:

Skills
Memulai
09.10.2024

Cara Menginstal Server TeamSpeak di VPS (Panduan Ubuntu/CentOS)

TeamSpeak adalah platform komunikasi suara yang di-host sendiri dengan latensi rendah yang berjalan sebagai daemon server mandiri di Linux. Menginstalnya di VPS memberi Anda kontrol administratif penuh atas saluran, izin, codec, dan kebijakan keamanan — tanpa bergantung pada infrastruktur pihak ketiga atau batasan penggunaan.

Panduan ini mencakup instalasi lengkap TeamSpeak 3 Server di Ubuntu (dengan catatan untuk varian CentOS/RHEL), termasuk isolasi pengguna, konfigurasi layanan systemd, penguatan kata sandi admin, dan koneksi klien. Setiap perintah siap produksi dan telah diuji pada lingkungan 22.04 LTS yang bersih.

Mengapa Meng-host Sendiri TeamSpeak di VPS

Platform suara komersial seperti Discord memberlakukan kebijakan penyimpanan data, moderasi algoritmik, dan batas kecepatan yang tidak dapat ditimpa oleh organisasi. Instans TeamSpeak yang di-host sendiri menghilangkan batasan tersebut sepenuhnya. Anda mengontrol:

  • Kualitas codec (Opus Voice, Opus Music) dan bitrate per saluran
  • Sistem izin dengan ACL grup server dan grup saluran yang terperinci
  • Enkripsi melalui TLS untuk pensinyalan dan enkripsi suara opsional
  • Residensi data — lalu lintas suara Anda tidak pernah melewati relay pihak ketiga
  • SLA uptime — terikat langsung ke penyedia VPS Anda, bukan layanan cloud bersama

Untuk klan gaming, organisasi esports, tim pengembangan jarak jauh, dan komunikasi perusahaan, ini menghasilkan keandalan yang terukur dan keunggulan kepatuhan.

Persyaratan Sistem Minimum

TeamSpeak 3 Server sangat ringan. Spesifikasi berikut mendukung sekitar 50–100 pengguna bersamaan tanpa degradasi kualitas audio:

Sumber DayaMinimumDirekomendasikan (100+ pengguna)
Core CPU1 vCPU2 vCPU
RAM512 MB1 GB
Ruang Disk1 GB5 GB (log + DB)
Jaringan10 Mbps100 Mbps
OSUbuntu 20.04+ / CentOS 7+Ubuntu 22.04 LTS
Arsitekturx86_64 (amd64)x86_64 (amd64)

Paket VPS Hosting dengan 1 vCPU dan 512 MB RAM sudah cukup untuk komunitas kecil. Skalakan secara vertikal seiring bertambahnya jumlah pengguna bersamaan Anda.

Port utama yang perlu dibuka di firewall Anda:

  • `9987/UDP` — data suara (default)
  • `10011/TCP` — ServerQuery (raw atau SSH)
  • `30033/TCP` — transfer file

Langkah 1: Persiapkan Server

Hubungkan ke VPS Anda sebagai root:

“`bash

ssh root@your_server_ip -p your_ssh_port

“`

Perbarui semua paket sistem untuk menghilangkan kerentanan yang diketahui sebelum memperkenalkan perangkat lunak baru:

“`bash

sudo apt update && sudo apt upgrade -y

“`

Instal `bzip2`, yang diperlukan untuk mengekstrak arsip TeamSpeak:

“`bash

sudo apt install bzip2 -y

“`

Di CentOS/AlmaLinux/Rocky Linux, ganti perintah di atas dengan:

“`bash

sudo dnf update -y && sudo dnf install bzip2 wget -y

“`

Langkah 2: Buat Pengguna Sistem Khusus

Menjalankan TeamSpeak sebagai root adalah kesalahan keamanan yang kritis. Jika proses tersebut pernah dieksploitasi, penyerang mendapatkan akses root langsung ke seluruh host. Selalu isolasikan di bawah pengguna yang tidak memiliki hak istimewa:

“`bash

sudo adduser teamspeak

“`

Ikuti petunjuk untuk menetapkan kata sandi. Pengguna ini akan memiliki semua biner TeamSpeak, file konfigurasi, dan database SQLite.

> Catatan keamanan: Untuk lingkungan yang diperkuat, pertimbangkan untuk membuat pengguna dengan `–disabled-login` dan menggunakan `sudo -u teamspeak` untuk semua operasi, mencegah akses shell interaktif sepenuhnya.

Langkah 3: Unduh dan Ekstrak Biner Server TeamSpeak

Beralih ke konteks pengguna `teamspeak`:

“`bash

sudo su – teamspeak

“`

Unduh rilis TeamSpeak 3 Server stabil terbaru untuk Linux 64-bit. Selalu verifikasi nomor versi saat ini di halaman unduhan resmi TeamSpeak sebelum menjalankan perintah ini, karena string versi berubah dengan setiap rilis:

“`bash

wget https://files.teamspeak-services.com/releases/server/3.13.7/teamspeak3-server_linux_amd64-3.13.7.tar.bz2 -O teamspeak-server.tar.bz2

“`

Ekstrak arsip dan hapus direktori tingkat atas sehingga semua file langsung berada di direktori kerja saat ini (`/home/teamspeak/`):

“`bash

tar xvfj teamspeak-server.tar.bz2 –strip-components 1

“`

Terima perjanjian lisensi TeamSpeak dengan membuat file penanda yang diperlukan. Daemon server akan menolak untuk memulai tanpanya:

“`bash

touch ~/.ts3server_license_accepted

“`

Kembali ke pengguna root:

“`bash

exit

“`

Langkah 4: Buat Unit Layanan systemd

Mengelola TeamSpeak melalui systemd memastikan proses dimulai ulang secara otomatis setelah reboot atau crash, terintegrasi dengan `journald` untuk pencatatan terpusat, dan menghormati urutan ketergantungan yang tepat selama boot.

Buka file unit layanan baru:

“`bash

nano /etc/systemd/system/teamspeak.service

“`

Tempelkan konfigurasi unit lengkap berikut:

“`ini

[Unit]

Description=TeamSpeak 3 Server

After=network.target

[Service]

WorkingDirectory=/home/teamspeak/

User=teamspeak

Group=teamspeak

Type=forking

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

ExecStop=/home/teamspeak/ts3server_startscript.sh stop

PIDFile=/home/teamspeak/ts3server.pid

Restart=on-failure

RestartSec=10s

[Install]

WantedBy=multi-user.target

“`

Penjelasan direktif utama:

  • `After=network.target` — mencegah startup sebelum stack jaringan siap, menghindari kegagalan bind pada `9987/UDP`
  • `Type=forking` — benar untuk skrip start TeamSpeak, yang mem-fork proses latar belakang
  • `Restart=on-failure` — secara otomatis memulihkan dari crash yang tidak terduga tanpa intervensi manual
  • `RestartSec=10s` — menambahkan penundaan singkat sebelum percobaan restart untuk mencegah loop crash yang cepat

Simpan file (`Ctrl+S`, lalu `Ctrl+X`), kemudian muat ulang daemon systemd untuk mendaftarkan unit baru:

“`bash

systemctl daemon-reload

“`

Aktifkan layanan untuk memulai saat boot dan segera mulai:

“`bash

systemctl enable –now teamspeak

“`

Verifikasi layanan aktif dan berjalan:

“`bash

systemctl status teamspeak

“`

Output yang diharapkan mencakup `Active: active (running)` dengan PID yang valid. Jika status menunjukkan `failed`, periksa log segera:

“`bash

journalctl -u teamspeak -n 50 –no-pager

“`

Langkah 5: Ambil Kunci Hak Istimewa Admin (Token)

Ketika TeamSpeak Server pertama kali dimulai, ia menghasilkan kunci hak istimewa (token) di file lognya. Token ini memberikan hak administrator server penuh kepada klien yang pertama kali terhubung. Anda harus mengambilnya sebelum orang lain terhubung.

“`bash

grep -i token /home/teamspeak/logs/*

“`

Output akan berisi baris yang mirip dengan:

“`

token=q1a2b3c4d5e6f7g8h9i0jKLMNOPQRSTUVWXYZ

“`

Salin token ini. Saat Anda terhubung melalui klien TeamSpeak untuk pertama kalinya, Anda akan diminta untuk memasukkannya. Melakukan hal ini meningkatkan klien Anda ke grup server `Server Admin`.

> Penting: Token ini hanya dapat digunakan sekali dan dikonsumsi pada penebusan pertama. Jika Anda kehilangannya sebelum menggunakannya, Anda harus menetapkan kata sandi admin baru secara manual (lihat Langkah 6). Simpan dengan aman.

Langkah 6: Tetapkan atau Reset Kata Sandi ServerAdmin

Akun `serveradmin` digunakan untuk akses ServerQuery — antarmuka TCP raw atau SSH yang memungkinkan administrasi berbasis skrip, integrasi bot, dan alat manajemen jarak jauh seperti YaTQA atau ts3admin.

Untuk menetapkan atau mereset kata sandi ini, Anda harus menghentikan layanan sementara, memulai biner server secara langsung dengan argumen kata sandi, kemudian menghentikannya lagi dan memulai ulang melalui systemd:

“`bash

systemctl stop teamspeak.service

“`

Beralih ke pengguna teamspeak dan tetapkan kata sandi:

“`bash

su – teamspeak

./ts3server_startscript.sh start serveradmin_password=YourStrongPassword

“`

Tunggu server sepenuhnya diinisialisasi (perhatikan `TeamSpeak 3 Server started successfully` dalam output), kemudian hentikan:

“`bash

./ts3server_startscript.sh stop

exit

“`

Mulai ulang layanan yang dikelola:

“`bash

systemctl start teamspeak.service

“`

Persyaratan kata sandi: Gunakan minimal 16 karakter dengan campuran huruf besar dan kecil, angka, dan simbol. Antarmuka ServerQuery terekspos di port TCP `10011` dan merupakan target brute-force yang umum jika dibiarkan dengan kata sandi yang lemah.

Langkah 7: Konfigurasi Firewall

Jika `ufw` aktif di server Anda, buka port yang diperlukan:

“`bash

ufw allow 9987/udp comment "TeamSpeak voice"

ufw allow 10011/tcp comment "TeamSpeak ServerQuery"

ufw allow 30033/tcp comment "TeamSpeak file transfer"

ufw reload

“`

Untuk `firewalld` (CentOS/AlmaLinux):

“`bash

firewall-cmd –permanent –add-port=9987/udp

firewall-cmd –permanent –add-port=10011/tcp

firewall-cmd –permanent –add-port=30033/tcp

firewall-cmd –reload

“`

> Tips penguatan: Jika Anda tidak memerlukan akses ServerQuery publik, batasi port `10011` hanya untuk IP manajemen tertentu. Mengeksposnya secara publik tidak diperlukan untuk operasi server suara standar.

Langkah 8: Hubungkan dari Klien TeamSpeak

  1. Unduh dan instal TeamSpeak 3 Client untuk OS desktop Anda (Windows, macOS, Linux).
  2. Buka klien dan navigasikan ke Connections > Connect.
  3. Masukkan alamat IP VPS Anda sebagai Server Nickname or Address.
  4. Biarkan port sebagai `9987` kecuali Anda mengubahnya di `ts3server.ini`.
  5. Pada koneksi pertama, klien akan meminta Anda untuk memasukkan kunci hak istimewa (token). Tempelkan token yang diambil di Langkah 5.
  6. Klien Anda sekarang menjadi administrator server.

Opsional: Gunakan Skrip Instalasi Otomatis

Untuk penerapan cepat, AlexHost menyediakan skrip instalasi otomatis yang menangani instalasi dependensi, pembuatan pengguna, unduhan biner, dan konfigurasi layanan dalam satu eksekusi:

“`bash

ssh root@your_server_ip -p your_ssh_port

wget https://bill.alexhost.com/downloads/teamspeak_install.sh

chmod +x teamspeak_install.sh

./teamspeak_install.sh

“`

Tinjau konten skrip sebelum menjalankannya untuk memahami perubahan apa yang dilakukannya pada sistem Anda. Skrip otomatis memang praktis tetapi tidak boleh dijalankan secara membabi buta pada infrastruktur produksi.

TeamSpeak vs. Alternatif: Platform Suara yang Di-host Sendiri

FiturTeamSpeak 3MumbleDiscord (cloud)
Di-host sendiriYaYaTidak
Penggunaan RAM (idle)~30 MB~15 MBN/A
LatensiSangat rendahSangat rendahRendah–Sedang
EnkripsiTLS (pensinyalan)DTLS + SRTPProprietary
Sistem izinACL LanjutanSedangBerbasis peran
Ketersediaan klienWin/Mac/Linux/MobileWin/Mac/LinuxWin/Mac/Linux/Mobile
Lisensi (server)Gratis hingga 32 slotOpen sourceN/A
CodecOpusOpus/CELTOpus
ServerQuery APIYa (TCP/SSH)TidakHanya REST API

ServerQuery API TeamSpeak adalah pembeda yang signifikan bagi organisasi yang membutuhkan manajemen server secara terprogram — pembuatan saluran otomatis, integrasi bot, atau perubahan izin yang dipicu CI/CD.

Masalah Instalasi Umum dan Solusinya

Server gagal dimulai — "Could not bind to port 9987"

Proses lain menggunakan UDP 9987, atau layanan dimulai sebelum jaringan siap. Periksa dengan `ss -ulnp | grep 9987` dan verifikasi direktif `After=network.target` ada di unit layanan Anda.

Kesalahan file lisensi tidak ditemukan

File `.ts3server_license_accepted` harus ada di direktori home pengguna yang menjalankan proses (`/home/teamspeak/`). Konfirmasi dengan `ls -la /home/teamspeak/.ts3server_license_accepted`.

Token tidak ditemukan di log

Direktori log secara default adalah `/home/teamspeak/logs/`. Jika Anda mengekstrak arsip ke jalur yang berbeda, sesuaikan perintah grep. Token hanya muncul di log dari startup pertama kali — jika database sudah ada, tidak ada token baru yang dihasilkan.

Koneksi ServerQuery ditolak

Konfirmasi port `10011/TCP` terbuka di firewall Anda dan proses server sedang berjalan. Uji secara lokal dengan `telnet 127.0.0.1 10011` — koneksi yang berhasil mengembalikan banner `TS3`.

Penggunaan CPU tinggi dengan banyak pengguna

TeamSpeak bersifat single-threaded untuk pencampuran suara. Jika Anda melebihi ~200 pengguna bersamaan pada satu instans server virtual, pertimbangkan untuk menerapkan beberapa server virtual atau meningkatkan ke paket Dedicated Servers untuk kecepatan clock CPU yang terjamin dan tanpa persaingan noisy-neighbor.

Mengamankan Penerapan TeamSpeak Anda

Selain isolasi pengguna dan aturan firewall yang dibahas di atas, terapkan langkah-langkah penguatan berikut:

  • Ubah port default di `ts3server.ini` untuk mengurangi paparan pemindaian otomatis. Perbarui aturan firewall sesuai.
  • Batasi ServerQuery (`10011/TCP`) ke IP manajemen menggunakan pemfilteran sumber firewall.
  • Aktifkan autentikasi kunci SSH di VPS Anda dan nonaktifkan login root berbasis kata sandi. Lihat panel kontrol VPS Anda untuk opsi manajemen kunci SSH.
  • Pantau log melalui `journalctl -u teamspeak -f` untuk pola koneksi yang tidak biasa atau kegagalan autentikasi ServerQuery yang berulang.
  • Pencadangan rutin dari `/home/teamspeak/ts3server.sqlitedb` — file ini berisi semua konfigurasi saluran, grup server, izin, dan identitas klien. Kehilangannya berarti membangun ulang seluruh struktur server Anda dari awal.
  • Perbarui biner secara berkala. TeamSpeak merilis patch keamanan secara berkala. Berlangganan pengumuman rilis mereka dan ulangi Langkah 3–4 dengan tarball versi baru saat pembaruan tersedia.

Jika Anda mengelola beberapa layanan di VPS yang sama, pertimbangkan untuk memasangkan instans TeamSpeak Anda dengan solusi VPS Control Panels untuk menyederhanakan manajemen layanan, pemantauan, dan tugas terjadwal dari antarmuka terpadu.

Matriks Keputusan: Apakah Pengaturan Ini Tepat untuk Anda?

SkenarioTindakan yang Direkomendasikan
Di bawah 32 pengguna bersamaan, komunitas gamingVPS entry-level, lisensi gratis TeamSpeak
32–512 pengguna bersamaan, organisasiPeningkatan lisensi TeamSpeak + VPS 2–4 vCPU
Membutuhkan isolasi hardware penuh, 500+ penggunaServer dedicated, beberapa instans server virtual
Menginginkan panel terkelola + TeamSpeakVPS dengan cPanel atau DirectAdmin
Memerlukan routing EU/US latensi rendahPilih lokasi datacenter VPS yang paling dekat dengan pengguna
Membutuhkan kehadiran web pendampingTambahkan Shared Web Hosting atau subdomain di VPS yang sama
Memerlukan domain kustom untuk alamat serverRegistrasi Domain + DNS A record yang mengarah ke IP VPS

Poin Teknis Utama

  • Selalu jalankan TeamSpeak di bawah pengguna non-root yang khusus. Ini tidak dapat dinegosiasikan untuk layanan apa pun yang menghadap internet.
  • File penanda `ts3server_license_accepted` harus ada sebelum daemon akan dimulai — titik kegagalan boot pertama yang umum.
  • Gunakan `Type=forking` di unit systemd, bukan `Type=simple`. Skrip start mem-fork proses latar belakang; `simple` akan menyebabkan systemd salah melacak PID.
  • Ambil token kunci hak istimewa dari log segera setelah startup pertama. Token dikonsumsi pada penggunaan pertama dan tidak dapat diregenerasi tanpa prosedur reset kata sandi manual.
  • Port `9987/UDP` adalah satu-satunya port yang diperlukan untuk operasi suara dasar. `10011/TCP` dan `30033/TCP` bersifat opsional tergantung pada kasus penggunaan Anda.
  • Cadangkan `ts3server.sqlitedb` secara terjadwal. Semua konfigurasi server tersimpan dalam satu file ini.
  • Untuk penerapan produksi, batasi ServerQuery ke localhost atau VLAN manajemen — jangan pernah mengeksposnya secara publik tanpa allowlisting IP.

Pertanyaan yang Sering Diajukan

Berapa jumlah maksimum pengguna pada lisensi server TeamSpeak gratis?

Lisensi non-profit gratis mendukung hingga 32 slot bersamaan. Untuk penerapan yang lebih besar, TeamSpeak menawarkan lisensi tahunan untuk 64, 128, 256, atau 512 slot, serta "Activation License" slot tak terbatas untuk organisasi yang memenuhi syarat.

Bisakah saya menjalankan TeamSpeak Server di VPS 512 MB RAM?

Ya. Daemon TeamSpeak 3 Server mengonsumsi sekitar 25–40 MB RAM saat idle dan skalanya moderat dengan pengguna bersamaan. VPS 512 MB sudah cukup untuk komunitas di bawah 50 pengguna bersamaan, dengan ruang yang nyaman untuk OS dan proses sistem.

Bagaimana cara memperbarui TeamSpeak Server tanpa kehilangan konfigurasi saya?

Hentikan layanan dengan `systemctl stop teamspeak`, unduh tarball versi baru sebagai pengguna `teamspeak`, ekstrak dengan `–strip-components 1` ke direktori yang sama (hanya menimpa biner), kemudian mulai ulang layanan. Database `ts3server.sqlitedb` dan file konfigurasi `ts3server.ini` tidak ditimpa oleh proses ini.

Mengapa server TeamSpeak saya tidak terlihat di daftar server publik?

Secara default, server TeamSpeak tidak mendaftar ke daftar server publik. Untuk mengaktifkan listing, tetapkan `machine_id=` dan konfigurasikan `serverip` di `ts3server.ini`, kemudian aktifkan opsi listing publik melalui ServerQuery atau panel administrasi server klien. Pastikan port UDP `9987` dapat dijangkau dari internet.

Apakah lalu lintas TeamSpeak dienkripsi secara default?

Lalu lintas pensinyalan (pengaturan koneksi, obrolan, izin) dienkripsi melalui TLS. Data suara yang dikirimkan melalui UDP tidak dienkripsi secara default di TeamSpeak 3. Enkripsi suara dapat diaktifkan per saluran atau di seluruh server melalui pengaturan server, dengan biaya peningkatan kecil dalam penggunaan CPU. TeamSpeak 5 (saat ini dalam pengembangan) menggunakan enkripsi end-to-end secara default.

15%

Hemat 15% di Semua Layanan Hosting

Uji kemampuanmu dan dapatkan Diskon pada paket hosting apa saja

Gunakan kode:

Skills
Memulai