TeamSpeak sunucusu kurmak, ilk bakışta "dosyayı indir çalıştır" kadar basit görünüyor. Büyük ölçüde öyle de. Ama arada birkaç yerde takılıyorsun ve o noktalar çoğu rehberde geçmiyor. Bu yazı, topluluğun kurulum notlarını ve güncel resmî belgelere göre düzenlenmiş adımları bir araya getiriyor. Komutları mevcut çalışan sunucunun üzerine uygulama; yeni kurulum için ayrı bir dizin kullan.
Neye ihtiyacın var
Bir Linux sunucusu. Ev bilgisayarında da barındırabilirsin ama o zaman bilgisayarın hep açık kalmalı, ayrıca çoğu ev internetinde dışarıdan erişim sorunlu oluyor. Kiralık bir sunucu (VPS/VDS) daha pratik.
Gereken kaynak kullanıcı sayısına, ekran paylaşımına ve sürüme göre değişir. Sunucu paketini seçerken gerçek yük altında CPU, bellek ve ağ kullanımını ölç; tek bir boşta bellek değerinden kapasite çıkarma.
Aşağıdaki örnek Ubuntu/Debian üzerinde systemd kullanan yeni bir Linux kurulumu içindir. Komutlar için sudo yetkisi gerekir; bilgisayarının mimarisine uygun sunucu paketini seç.
Kurulum
1. Ayrı bir kullanıcı ve dizin hazırla
sudo useradd --system --home-dir /opt/dayi-ts6 --create-home --shell /usr/sbin/nologin dayi-ts6
sudo chown dayi-ts6:dayi-ts6 /opt/dayi-ts6
2. Resmî paketi indir ve aç
TeamSpeak’in resmî sunucu projesindeki indirme/kurulum yönlendirmesini izle. İşletim sistemi ve işlemci mimarine uygun paketi seç. Arşiv adını ya da uzantısını eski bir rehberden kopyalama; indirdiğin dosyanın gerçek adını kullan.
Arşivi ayrı bir geçici dizinde aç. İçindeki sunucu dosyalarını, klasör yapısını koruyarak /opt/dayi-ts6 altına yerleştir. Aşağıdaki komutlar /opt/dayi-ts6/tsserver dosyasının bulunduğunu varsayar. Farklı bir dizin oluştuysa servis yolunu da buna göre değiştir.
sudo chown -R dayi-ts6:dayi-ts6 /opt/dayi-ts6
sudo chmod u+x /opt/dayi-ts6/tsserver
3. Lisansı oku ve ilk kez çalıştır
Resmî Linux örneği lisans kabulü için --accept-license parametresini kullanır. Lisansı okuyup kabul ediyorsan:
cd /opt/dayi-ts6
sudo -u dayi-ts6 ./tsserver --accept-license
Başlangıç çıktısındaki yönetici yetki anahtarını güvenli bir yerde sakla. Anahtar ve diğer kimlik bilgilerini herkese açık ekran görüntülerine ekleme. İlk çalıştırmayı kontrol ettikten sonra Ctrl+C ile durdur; aşağıdaki servis aynı dizini kullanacak.
Docker kullanıyorsan aynı sunucuyu ikinci kez kurmak yerine resmî Docker Compose örneğiyle ilerleyebilirsin. Veri dizininin kalıcı bir volume üzerinde bulunduğunu doğrula.
Kalıcı çalıştırma
Yukarıdaki gibi çalıştırdığında, terminali kapattığın anda sunucu da kapanır. Bunu ilk denemede fark etmeyip "neden bağlanamıyorum" diye uğraşmak çok yaygın.
Doğru çözüm bir systemd servisi tanımlamak. Böylece sunucu yeniden başlasa da, program çökse de kendiliğinden geri gelir:
sudo tee /etc/systemd/system/dayi-ts6.service << 'EOF'
[Unit]
Description=TeamSpeak 6 Server
Wants=network-online.target
After=network-online.target
[Service]
Type=simple
WorkingDirectory=/opt/dayi-ts6
ExecStart=/opt/dayi-ts6/tsserver --accept-license
Restart=always
RestartSec=5
User=dayi-ts6
Group=dayi-ts6
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload
sudo systemctl enable dayi-ts6
sudo systemctl start dayi-ts6
Durumu kontrol etmek için:
sudo systemctl status dayi-ts6
Güvenlik duvarı ve portlar
Ses portu varsayılan olarak UDP 9987, dosya aktarımı TCP 30033’tür. Sunucu farklı bir ses portuyla çalışıyorsa hem sunucu hem sağlayıcının güvenlik duvarında o portu kullan. DAYI’NIN YERİ’nin bağlantı adresinde 63636 kullanılır; bu yeni kurulum örneği ise varsayılan portu esas alır.
UFW yönetimi kullanan bir sunucuda örnek izinler:
sudo ufw allow 9987/udp
sudo ufw allow 30033/tcp
sudo ufw status
UFW’yi etkinleştirmeden önce gerçek SSH portuna izin verildiğini doğrula; SSH her sunucuda 22 olmayabilir. Sağlayıcının panelindeki ağ kurallarını ayrıca kontrol et.
Yedekleme ve geri yükleme
Canlı SQLite dosyasını sıradan bir dosya kopyasıyla yedeklemek tutarsız bir kopya oluşturabilir. Basit bir bakım yedeği için sunucuyu durdur, veri ve yapılandırma dizinini birlikte arşivle, sonra servisi yeniden başlat. Bu sırada bağlı kullanıcılar ayrılır.
sudo mkdir -p /var/backups/dayi-ts6
sudo chmod 700 /var/backups/dayi-ts6
sudo systemctl stop dayi-ts6
sudo tar -czf /var/backups/dayi-ts6/ts6-$(date +%Y%m%d-%H%M%S).tar.gz -C /opt dayi-ts6
sudo systemctl start dayi-ts6
sudo systemctl status dayi-ts6
Arşiv komutu hata verirse servisin yeniden açıldığını ayrıca kontrol et. Yedekleri web kökünün dışında tut; farklı bir makineye de kopyala. Ayrı bir test dizininde geri yükleme yapmadan yedeğin çalıştığını varsayma. MariaDB veya haricî veri dizini kullanıyorsan o veriyi ayrıca yedekle.
Beklenmedik sorunlar
Bağlantı kurulmuyor ama sunucu çalışıyor
Önce servis çıktısını ve istemcideki adres/portu karşılaştır. Ardından işletim sistemi güvenlik duvarını, sağlayıcı kurallarını ve varsa NAT yönlendirmesini kontrol et.
Sunucuda tcpdump kuruluysa bağlantı denemesi sırasında şu kontrol yardımcı olabilir; farklı port kullanıyorsan sayıyı değiştir:
sudo tcpdump -i any -n udp port 9987
Paket görünmemesi tek başına DDoS filtresi kanıtı değildir. Yanlış adres, DNS, farklı port, yerel ağ ve sağlayıcı kuralları da incelenmelidir. Portu rastgele değiştirmek yerine sağlayıcıdan ilgili UDP trafiğini kontrol etmesini iste.
Port değiştirince adres uzuyor
Varsayılan porttan çıkınca kullanıcıların adresi sunucu.com:63636 gibi yazması gerekiyor. Bunu bir DNS SRV kaydı ile çözebilirsin, kullanıcı sadece alan adını yazar, port arka planda hallolur.
_ts3._udp.alanadin.tr. 3600 IN SRV 0 5 63636 alanadin.tr.
Alan adı sağlayıcının panelinde SRV kaydı olarak eklersin. Bu sitede kullandığımız yöntem bu, sorunsuz çalışıyor.
ServerQuery bağlantısı reddediliyor
Güncel yapılandırma belgesinde SSH, HTTP ve HTTPS Query seçenekleri bulunur. İhtiyacın olan arayüzün etkin olduğunu ve doğru portu kullandığını kontrol et. Yönetim erişimini herkese açık bırakma; erişimi sınırlandır ve şifreli bir bağlantı kullan.
Eski bir otomasyonun uyumluluğunu protokol ve sürüm bazında kontrol et. Parametreler için resmî yapılandırma belgesini kullan.
Sonuç
Kurulumun sonunda istemciden bağlanmayı, ses iletişimini ve servis yeniden başlatıldığında verilerin korunduğunu kontrol et. Sunucu yazılımı beta olduğu için güncelleme öncesinde resmî sürüm notlarını oku ve yedek al. Bu sayfadaki örnekler senin sunucunda çalıştırılarak doğrulanmış değildir.
İçerik güncellemesi: . Menü adları ve özellikler sürüme göre değişebilir.