TeamSpeak sunucu kurulumu, resmî sunucu arşivini açmak, lisans sözleşmesini onaylamak, sunucuyu bir kez çalıştırıp konsola düşen yönetici anahtarını (privilege key) kaydetmek ve 9987/UDP portunu güvenlik duvarında açmakla tamamlanır. TeamSpeak, kendi makinenizde barındırdığınız bir sesli iletişim sunucusudur; ses trafiği üçüncü bir şirketin altyapısından değil, doğrudan sizin sunucunuzdan geçer.
Bu rehber Ubuntu 24.04 LTS üzerinden ilerliyor, çünkü ts3 sunucusu Linux’ta hem daha az kaynak yiyor hem de systemd sayesinde kalıcı bir servis hâline getirmesi kolay. Windows karşılığını da sayfanın sonunda kısaca bulacaksınız. Sunucuya SSH ile nasıl bağlanacağınızı bilmiyorsanız önce SSH bağlantı rehberine, taze bir makineyle başlıyorsanız VDS aldıktan sonraki ilk ayarlara göz atın.
Kurulum Öncesi: Donanım, Lisans ve İndirme#
Ses sunucusu, oyun sunucusuna göre çok daha uysal bir yüktür: birkaç yüz kullanıcıya kadar CPU kullanımı düşüktür, bellek tüketimi mütevazıdır. Belirleyici olan ağ tarafıdır. Sesin akıcı duyulması bant genişliğinden çok gecikme (latency) ve paket kaybıyla ilgilidir; oyuncularınız Türkiye’deyse Türkiye lokasyonlu bir sunucu tek başına hissedilir fark yaratır.
| Kullanım senaryosu | RAM | İşlemci | Disk |
|---|---|---|---|
| Tek sanal sunucu, 20-50 kullanıcı | 8 GB | AMD Ryzen 9 3900X ve üzeri | 50 GB NVMe |
| 50-150 kullanıcı, birden fazla sanal sunucu | 10-12 GB | AMD Ryzen 9 7900X | 50-100 GB NVMe |
| TeamSpeak + bir oyun sunucusu aynı makinede | 16 GB | AMD Ryzen 9 7900X | 100 GB NVMe |
| Topluluk altyapısı: ses, oyun, web ve bot birlikte | 32 GB ve üzeri | AMD Ryzen 9 7950X | 200 GB NVMe |
Ses trafiği küçük ama sürekli UDP paketlerinden oluşur; bu yüzden paylaşımlı ve kısıtlı vCPU verilen ucuz paketlerde ara ara çıtırtı ve kopma yaşanır. Kaynağı gerçekten size ayrılmış bir yüksek frekanslı Ryzen VDS bu tür şikâyetlerin çoğunu kökünden bitiriyor. Sanallaştırma tiplerinin farkını merak ediyorsanız VDS nedir sayfası konuyu özetliyor.
-
TeamSpeak resmî sitesi (sunucu paketi, istemci ve lisans bilgisi)ZorunluAç
-
PuTTY — SSH bağlantısıİndir
-
WinSCP — yedek indirme ve dosya aktarımıİndir
-
Notepad++ — ts3server.ini düzenleme (Windows)İndir
Sunucu arşivini yalnızca teamspeak.com üzerinden indirin. Arama sonuçlarında çıkan “hazır ts3 sunucu paketi” arşivleri sıklıkla değiştirilmiş ikili dosya taşıyor. Arşivin dosya adındaki sürüm numarası zamanla değiştiği için buraya sabit bir bağlantı koymuyoruz; adresi resmî indirme sayfasından kopyalayın.
Ubuntu 24.04 Üzerinde TeamSpeak Sunucu Kurulumu#
Sunucuyu root ile çalıştırmayın. Ayrı bir sistem kullanıcısı açıp dosyaların sahipliğini ona vermek, ileride olası bir güvenlik açığında zararı tek klasörle sınırlar.
-
Sistemi hazırlayın ve kullanıcıyı açın#
sudo apt update && sudo apt upgrade -y sudo apt install -y bzip2 curl sudo adduser --disabled-login --gecos "" teamspeak sudo mkdir -p /opt/teamspeak sudo chown -R teamspeak:teamspeak /opt/teamspeak--disabled-loginparametresi bu kullanıcıyla SSH’tan oturum açılmasını engeller; kurulumasudo -u teamspeakile geçeceğiz. -
Sunucu arşivini indirip açın#
sudo -u teamspeak -i cd /opt/teamspeak # Arsiv adresini teamspeak.com indirme sayfasindan kopyalayin: # wget <resmi-sunucu-arsivi-adresi> tar -xjf teamspeak3-server_linux_amd64-*.tar.bz2 mv teamspeak3-server_linux_amd64/* . rm -rf teamspeak3-server_linux_amd64 teamspeak3-server_linux_amd64-*.tar.bz2 ls -1Arşivi açtığınızda
ts3serverikilisi,ts3server_startscript.sh,ts3server_minimal_runscript.sh,sql/veserverquerydocs/klasörleri karşınıza çıkar. Dosya adındaki sürüm numarası indirdiğiniz pakete göre değişir, yıldız işareti bu yüzden var. -
Lisans sözleşmesini onaylayın#
touch /opt/teamspeak/.ts3server_license_acceptedBu boş dosya olmadan sunucu açılmadan kapanır ve günlüğe sözleşmenin kabul edilmediğini yazar. Aynı işi başlatma komutuna
license_accepted=1parametresi ekleyerek de yapabilirsiniz; ama dosya yöntemi systemd servisiyle daha temiz çalışır. -
Sunucuyu ilk kez ön planda çalıştırın#
cd /opt/teamspeak ./ts3server_minimal_runscript.shBu adımı mutlaka ön planda yapın. Konsola basılan yönetici anahtarını ve ServerQuery parolasını göremezseniz kurulumun geri kalanı zorlaşır. Bilgileri kopyaladıktan sonra Ctrl+C ile kapatın.
İlk Çalıştırma ve Yönetici (Privilege Key) Anahtarı#
İlk açılışta ekrana şuna benzer bir blok düşer. Üç satır önemli: ServerQuery kullanıcı adı, ServerQuery parolası ve yönetici anahtarı.
------------------------------------------------------------------
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=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
------------------------------------------------------------------
loginname= "serveradmin", password= "xxxxxxxx"
apikey= "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
------------------------------------------------------------------
Anahtarı kullanmak için TeamSpeak istemcisiyle sunucunuza bağlanın, üstteki menüden Permissions → Use Privilege Key (Türkçe arayüzde Yetkiler → Ayrıcalık Anahtarını Kullan) yolunu izleyip token= sonrasındaki dizeyi yapıştırın. O anda hesabınız Server Admin grubuna alınır ve kanal açma, yetki dağıtma, ban verme dahil her şeye erişirsiniz.
Anahtarı kaçırdıysanız iki kurtarma yolu var. Birincisi, sunucu klasöründeki logs/ dizininde ilk açılış günlüğüne bakmak — anahtar oraya da yazılır. İkincisi, ServerQuery üzerinden yeni bir anahtar üretmek:
telnet 127.0.0.1 10011
login serveradmin PAROLANIZ
use 1
servergrouplist
tokenadd tokentype=0 tokenid1=6 tokenid2=0
logout
quit
tokenid1=6, varsayılan kurulumda Server Admin grubunun kimliğidir. Daha önce grupları düzenlediyseniz servergrouplist çıktısındaki doğru sgid değerini kullanın. ServerQuery parolasını da unuttuysanız sunucuyu bir kez şu şekilde başlatıp parolayı sıfırlayabilirsiniz:
sudo systemctl stop teamspeak
sudo -u teamspeak /opt/teamspeak/ts3server_startscript.sh start \
serveradmin_password="CokGucluYeniParola"
ts3server.ini, Portlar ve Güvenlik Duvarı#
Sunucu, parametreleri komut satırından da alabilir ama kalıcı ayarlar için bir ini dosyası kullanmak çok daha rahat. Dosyayı sunucunun kendisi üretir:
cd /opt/teamspeak
./ts3server_minimal_runscript.sh createinifile=1
Üretilen ts3server.ini dosyasının işinize yarayacak satırları şunlar:
machine_id=
default_voice_port=9987
voice_ip=0.0.0.0
filetransfer_port=30033
filetransfer_ip=0.0.0.0
query_port=10011
query_ip=127.0.0.1
query_ip_allowlist=query_ip_allowlist.txt
query_ip_blacklist=query_ip_blacklist.txt
dbplugin=ts3db_sqlite3
dbsqlpath=sql/
dbsqlcreatepath=create_sqlite/
logpath=logs
dbclientkeepdays=30
query_skipbruteforcecheck=0
Buradaki query_ip=127.0.0.1 satırı bilinçli bir tercih: ServerQuery’yi yalnızca sunucunun kendi üzerinden dinletir. Uzaktan yönetim yapacaksanız bu değeri 0.0.0.0 yapmak yerine SSH tüneli kurmak çok daha güvenli. Port dağılımı ise şöyle:
| Port | Protokol | Görev | Açılmalı mı? |
|---|---|---|---|
| 9987 | UDP | Ses trafiği (ilk sanal sunucu) | Zorunlu |
| 30033 | TCP | Dosya transferi: avatar, kanal ikonu, kanal dosyaları | Evet |
| 10011 | TCP | ServerQuery (düz metin) | İnternete açmayın |
| 10022 | TCP | ServerQuery (SSH, şifreli) | Uzaktan yönetimde tercih edin |
| 10080 / 10443 | TCP | ServerQuery HTTP / HTTPS | İsteğe bağlı |
| 9988, 9989… | UDP | İkinci ve sonraki sanal sunucular | Yalnızca kullanıyorsanız |
Ubuntu’da UFW ile açmak birkaç satır. ServerQuery portunu herkese değil, yalnızca kendi sabit IP’nize açtığımıza dikkat edin:
sudo ufw allow 9987/udp comment 'TeamSpeak ses'
sudo ufw allow 30033/tcp comment 'TeamSpeak dosya transferi'
sudo ufw allow from 203.0.113.10 to any port 10011 proto tcp comment 'TS3 query'
sudo ufw reload
sudo ufw status numbered
# Sunucu portu gercekten dinliyor mu?
sudo ss -lunp | grep 9987
Bağlanamıyorum: sırayla kontrol listesi#
| Belirti | Muhtemel sebep | Ne yapmalı? |
|---|---|---|
| “Failed to connect to server” / zaman aşımı | 9987/UDP kapalı ya da servis çalışmıyor | systemctl status teamspeak ve ss -lunp çıktısını kontrol edin |
| Sunucu açılmıyor, günlükte lisans uyarısı | .ts3server_license_accepted dosyası yok | Dosyayı oluşturun, servisi yeniden başlatın |
| Ses çalışıyor ama avatar ve ikon yüklenmiyor | 30033/TCP kapalı | Güvenlik duvarında TCP kuralını ekleyin |
| “Could not bind to address” | Port başka bir süreçte | sudo ss -lunp | grep 9987 ile çakışan süreci bulun |
| Query’ye bağlanınca anında düşüyor | Brute force koruması IP’nizi geçici engelledi | Birkaç dakika bekleyin, query_ip_allowlist.txt dosyasına IP’nizi ekleyin |
Kural yazımının ayrıntıları ve iptables karşılıkları için sunucu güvenlik duvarı yapılandırması sayfasına, portun dışarıdan gerçekten açık olup olmadığını sınamak için port açma ve test etme rehberine bakabilirsiniz. Ses sunucuları da UDP flood saldırılarının hedefi olabiliyor; DDoS korunma yöntemlerini kurulum aşamasında planlamak sonradan uğraşmaktan iyidir.
systemd Servisi ile Sunucuyu 7/24 Ayakta Tutma#
SSH oturumunu kapattığınızda sunucunun da kapanmaması, makine yeniden başladığında kendiliğinden ayağa kalkması için systemd servisi yazmanız gerekiyor. Dosyayı /etc/systemd/system/teamspeak.service olarak oluşturun:
[Unit]
Description=TeamSpeak 3 Sunucusu
After=network-online.target
Wants=network-online.target
[Service]
Type=forking
User=teamspeak
Group=teamspeak
WorkingDirectory=/opt/teamspeak
ExecStart=/opt/teamspeak/ts3server_startscript.sh start inifile=ts3server.ini
ExecStop=/opt/teamspeak/ts3server_startscript.sh stop
PIDFile=/opt/teamspeak/ts3server.pid
Restart=on-failure
RestartSec=15
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable --now teamspeak
sudo systemctl status teamspeak
sudo journalctl -u teamspeak -f
# Sunucunun kendi gunlukleri:
tail -f /opt/teamspeak/logs/ts3server_*.log
Type=forking ve PIDFile satırları başlatma betiğinin çalışma biçimiyle uyumlu olduğu için burada bilinçli seçildi. Servis “start operation timed out” diyorsa neredeyse her zaman sebep, sunucunun lisans onayı yüzünden hiç başlamamış olmasıdır — önce journalctl çıktısını okuyun.Kanal Yapısı, Kullanıcı ve Yetki Yönetimi#
TeamSpeak’in yetki sistemi ilk bakışta korkutucu görünür ama mantığı basit: yetkiler sunucu grupları ve kanal grupları olmak üzere iki ayrı katmanda dağıtılır. Sunucu grubu kişinin tüm sunucudaki konumunu belirler (Guest, Normal, Server Admin gibi), kanal grubu ise yalnızca belirli bir kanaldaki yetkisini (Channel Admin, Operator, Voice).
- Sunucu grubu
- Kişinin sunucu genelindeki rolü. Ban verme, kanal oluşturma, sunucu ayarlarını değiştirme gibi yetkiler buradan gelir. Yetkiliye Server Admin vermeden önce, ihtiyacı olan yetkileri taşıyan kopya bir grup oluşturmak çok daha sağlıklıdır.
- Kanal grubu
- Yalnızca atandığı kanalda geçerlidir. Bir klan liderine kendi kanalında Channel Admin verip sunucunun geri kalanında normal kullanıcı bırakabilirsiniz.
- Kanal tipi
- Kalıcı (permanent) kanal sunucu yeniden başlasa da durur. Yarı kalıcı (semi-permanent) kanal, sunucu yeniden başlayınca silinir. Geçici (temporary) kanal ise son kullanıcı çıkınca kendiliğinden yok olur — özel görüşme odaları için ideal.
- Konuşma gücü (talk power)
- Bir kanalda kimin mikrofon açabileceğini belirler. Toplantı ve etkinlik kanallarında, konuşma gücü eşiğini yükseltip yalnızca yetkililerin konuşmasını sağlayabilirsiniz.
- Kodek ve kalite
- Konuşma kanallarında Opus Voice, müzik yayını yapılan kanallarda Opus Music seçilir. Kalite değerini gereksiz yere en üste çekmek bant genişliğini artırır, kayda değer bir netlik kazandırmaz.
Pratik bir yapı şöyle kurulur: en üstte “Bekleme Odası” adında herkese açık kalıcı bir kanal, altında oyun başlıklarına göre alt kanallar, en altta yetkililere özel bir toplantı kanalı. Yeni gelen bir kullanıcı otomatik olarak Guest grubuna düşer; kayıt olduktan sonra ona Normal grubunu vermek için sağ tık → Sunucu Grupları menüsünü kullanırsınız. Kayıtsız kullanıcıların kanal açmasını kapatmayı da unutmayın, yoksa kanal listesi bir haftada içinden çıkılmaz hâle gelir.
Yedekleme ve Sunucu Taşıma#
TeamSpeak’in tüm hafızası tek bir dosyadadır: ts3server.sqlitedb. Kanallar, gruplar, yetkiler, banlar, kayıtlı kullanıcılar — herşey burada durur. Yanına birkaç dosya daha alırsanız sunucunuzu başka bir makinede birebir ayağa kaldırabilirsiniz.
| Dosya / klasör | İçerik | Yedeklenmeli mi? |
|---|---|---|
ts3server.sqlitedb | Kanallar, gruplar, yetkiler, kullanıcı kayıtları | Zorunlu |
licensekey.dat | Lisans dosyası (varsa) | Evet |
ts3server.ini | Port ve veritabanı ayarları | Evet |
files/ | Yüklenen avatarlar, ikonlar, kanal dosyaları | Evet |
query_ip_allowlist.txt | ServerQuery izin listesi | Özelleştirdiyseniz |
logs/ | Günlük dosyaları | Gerekmez |
#!/bin/bash
set -e
GUN=$(date +%F)
HEDEF=/var/yedek/teamspeak
mkdir -p "$HEDEF"
systemctl stop teamspeak
tar -czf "$HEDEF/ts3-$GUN.tar.gz" -C /opt teamspeak
systemctl start teamspeak
find "$HEDEF" -name 'ts3-*.tar.gz' -mtime +14 -delete
Betiği /usr/local/bin/ts3-yedek.sh olarak kaydedip chmod +x verin, sonra gece yarısı çalışacak şekilde zamanlayın. Cron sözdizimini bilmiyorsanız cron job rehberi işinizi görür. Yedeği aynı makinede tutmanın bir anlamı yok; 3-2-1 yedekleme kuralına göre en az bir kopya başka bir konumda dursun. Taşıma yaparken de akış aynı: yeni makineye aynı sürüm sunucuyu kurun, servisi durdurun, veritabanı ve files/ klasörünü üzerine kopyalayın, sahiplikleri düzeltip servisi başlatın.
Windows’ta TeamSpeak Sunucusu#
Windows tarafı daha kısa: resmî siteden Windows sunucu arşivini indirip C:\teamspeak gibi boşluksuz bir klasöre açın, ts3server.exe dosyasını çift tıklayın. Lisans sözleşmesi bir pencerede karşınıza gelir, kabul edersiniz; ardından yönetici anahtarını ve ServerQuery parolasını gösteren bilgi penceresi açılır. O pencereyi kapatmadan bilgileri kopyalayın.
New-NetFirewallRule -DisplayName "TeamSpeak Ses" -Direction Inbound -Protocol UDP -LocalPort 9987 -Action Allow
New-NetFirewallRule -DisplayName "TeamSpeak Dosya" -Direction Inbound -Protocol TCP -LocalPort 30033 -Action Allow
Sunucunun oturum açmadan da çalışması için ts3server.exe dosyasını NSSM gibi bir araçla Windows hizmetine dönüştürün; aksi hâlde uzak masaüstü oturumunu kapattığınızda süreç de kapanır. Uzak masaüstüyle çalışmaya alışkın değilseniz RDP bağlantı rehberi temel adımları anlatıyor. Yedekleme mantığı Linux’takiyle aynıdır: hizmeti durdurun, ts3server.sqlitedb ve files klasörünü kopyalayın, hizmeti başlatın.
TeamSpeak mi Discord mu?#
İkisi aynı ihtiyaca farklı yerlerden bakıyor. Discord bir hizmettir: hesap açarsınız, sunucu oluşturursunuz, biter. TeamSpeak bir yazılımdır: kendi makinenize kurar, portunu açar, yetkisini kendiniz kurgularsınız. Bu fark maliyetten çok kontrol meselesi.
| Konu | TeamSpeak | Discord |
|---|---|---|
| Barındırma | Kendi sunucunuzda | Sağlayıcının altyapısında |
| Ses gecikmesi | Sunucu konumuna göre çok düşük | Bölgesel sunuculara bağlı |
| Yetki ayrıntısı | Yüzlerce ayrı yetki, kanal bazlı grup | Rol tabanlı, daha kaba |
| Metin sohbeti | Basit, kalıcı geçmiş zayıf | Güçlü, aranabilir geçmiş |
| Ekran paylaşımı ve video | Sınırlı | Gelişmiş |
| Bot ve entegrasyon | ServerQuery üzerinden, teknik bilgi ister | Hazır bot ekosistemi |
| Veri sahipliği | Veritabanı sizde | Sağlayıcıda |
| Kurulum eforu | Sunucu, port, servis gerekir | Birkaç tık |
| Mobil kullanım | Var ama sade | Yaygın ve olgun |
Pratikte çoğu topluluk ikisini birlikte kullanıyor: duyuru, metin sohbeti ve etkinlik takvimi Discord’da, oyun içi sesli iletişim TeamSpeak’te. Discord tarafında bir bot çalıştırmayı düşünüyorsanız Discord bot hosting rehberi, oyun sunucunuzun sohbetini Discord’a köprülemek isterseniz DiscordSRV kurulumu ilgili adımları anlatıyor. Topluluğu sıfırdan kuruyorsanız Discord sunucusu kurma sayfasındaki kanal düzeni önerileri TeamSpeak tarafına da uyarlanabilir.
Özetle#
TeamSpeak sunucu kurulumu şu sırayla ilerler: resmî arşivi /opt/teamspeak altına açın, ayrı bir sistem kullanıcısına sahiplik verin, .ts3server_license_accepted dosyasıyla lisansı onaylayın, sunucuyu bir kez ön planda çalıştırıp yönetici anahtarını (privilege key) ve ServerQuery parolasını kaydedin. Ardından 9987/UDP ve 30033/TCP portlarını açın, 10011/TCP ServerQuery portunu yalnızca kendi IP’nize bırakın, sunucuyu systemd servisi hâline getirin. Yetki tarafında Server Admin grubunu dağıtmak yerine ihtiyaca göre kopya gruplar üretin; kanal yapısını baştan kurgulayın. Yedeğin merkezinde ts3server.sqlitedb dosyası var ve kopyalamadan önce servis durdurulmalı — bu ayrıntı hala en çok atlanan adım. Donanımda 8 GB RAM, yüksek saat hızlı AMD Ryzen 9 ve NVMe SSD alt sınırını koruyun; kaynak kullanımını sürekli görmek için sunucu izleme rehberindeki araçlardan birini kurun. Kurulum sırasında port dışarıdan kapalı görünüyor ve sebebini bulamıyorsanız destek talebi açıp ağ tarafının test edilmesini isteyin.