Terraria sunucu kurulumu, resmî dedicated server paketini indirmek, serverconfig.txt dosyasını düzenlemek ve 7777/TCP portunu açmakla biter. Diğer hayatta kalma oyunlarının aksine burada SteamCMD kullanılmaz; Re-Logic sunucu paketini doğrudan kendi sitesinden ücretsiz dağıtır. Yirmi dakikalık bir iş.
Bu rehberde Ubuntu 24.04 LTS üzerinde kurulumu adım adım anlatıyoruz; Windows karşılıklarını da her adımda kısa kısa veriyoruz. Ayar dosyasının tüm satırları, dünya oluşturma, arka planda çalıştırma, TShock ile eklenti ve yetki yönetimi, port açma ve yedekleme sırayla ele alınıyor.
-
Terraria resmî sitesi — dedicated server paketiZorunluAç
-
TShock — sürüm sayfası (GitHub)İsteğe bağlıAç
-
7-Zip — arşiv açmaİndir
-
Notepad++ — yapılandırma dosyası düzenlemeİndir
-
WinSCP — sunucuya dosya aktarmaİndir
-
PuTTY — SSH bağlantısıİndir
Sunucu paketini yalnızca terraria.org üzerinden indirin. Sürüm numarası her yamada değiştiği için burada sabit bir dosya adı vermiyoruz; sitedeki güncel paketi alın.
Kurulum Öncesi Hazırlık#
- İşletim sistemi
- Ubuntu 24.04 LTS (birinci tercih) veya Windows Server 2022/2025.
- Port
- 7777/TCP — tek port yeterlidir, UDP kuralı gerekmez.
- Disk
- Sunucu paketi birkaç yüz MB; dünyalar ve yedeklerle birlikte 50 GB NVMe SSD alt sınır.
- Gerekli paketler
- Ubuntu’da yalnızca
unzipvescreen(veyatmux). - Erişim
- Kök yetkili VDS ya da dedicated sunucu. Paylaşımlı hostingde çalışmaz.
Sunucuya bağlanma kısmını atlıyorum çünkü onu ayrıca anlattık: SSH ile sunucuya bağlanma ve Windows tarafı için uzak masaüstü bağlantısı sayfalarına bakabilirsiniz. Yeni aldığınız makinede ilk yapılması gerekenler için de VDS ilk ayarlar rehberi var.
Adım 1: Sunucu Paketini İndirin ve Açın#
Terraria sunucu paketi tek bir zip dosyasıdır ve içinde üç klasör bulunur: Windows, Linux ve Mac. Yalnızca kendi işletim sisteminize ait olanı kullanacaksınız.
# Ubuntu 24.04 — ayrı bir kullanıcı açın, root ile oyun sunucusu çalıştırmayın
sudo apt update
sudo apt install -y unzip screen
sudo adduser --disabled-password --gecos "" terraria
sudo su - terraria
mkdir -p ~/terraria && cd ~/terraria
# Indirdiginiz paketi buraya yukleyin (WinSCP veya scp ile), sonra:
unzip terraria-server.zip -d ~/terraria
# Arsiv icindeki surum klasorunu sabit bir ada tasiyin
mv ~/terraria/*/ ~/terraria/server
chmod +x ~/terraria/server/Linux/TerrariaServer.bin.x86_64
# Windows Server
New-Item -ItemType Directory -Force C:\terraria
Expand-Archive -Path C:\indirilenler\terraria-server.zip -DestinationPath C:\terraria
# Calistirilacak dosya: C:\terraria\<paket>\Windows\TerrariaServer.exe
chmod +x ile çalıştırma izni vermek. Bu adımı atlayan kullanıcıların aldığı hata mesajı “Permission denied” olur.Adım 2: serverconfig.txt Yapılandırması#
Sunucu, parametreleri tek tek komut satırından da alabilir ama sürdürülebilir yol bir yapılandırma dosyası kullanmaktır. Paketle birlikte örnek bir serverconfig.txt gelir; içindeki satırların başında # vardır, yani hepsi kapalıdır. Kullanmak istediğiniz satırın başındaki # işaretini kaldırırsınız.
nano ~/terraria/serverconfig.txt
# Yuklenecek dunya dosyasi (tam yol)
world=/home/terraria/worlds/anadunya.wld
# Dunya bulunamazsa otomatik olustur: 1 kucuk, 2 orta, 3 buyuk
autocreate=2
# Otomatik olusturulan dunyanin adi
worldname=BatihostSunucu
# Zorluk: 0 normal, 1 uzman, 2 usta, 3 yolculuk
difficulty=1
# Dunya dosyalarinin tutulacagi klasor
worldpath=/home/terraria/worlds/
# Ayni anda baglanabilecek oyuncu sayisi (1-255)
maxplayers=16
# Dinlenecek port
port=7777
# Sunucu parolasi - bos birakirsaniz herkes girebilir
password=cok-uzun-bir-parola
# Girise mesaji
motd=Batihost Terraria sunucusuna hos geldiniz!
# Ek hile korumasi
secure=1
# Ban listesi dosyasi
banlist=banlist.txt
# Otomatik port yonlendirmesi - VDS'de kapali olmali
upnp=0
# Islem onceligi: 0 realtime, 1 yuksek, 2 normal ustu, 3 normal
priority=1
| Ayar | Ne yapar | Öneri |
|---|---|---|
world | Açılışta yüklenecek .wld dosyasının tam yolu | Mutlaka tam yol yazın |
worldpath | Dünya dosyalarının klasörü | Yedeklemesi kolay tek klasör |
autocreate | Dünya yoksa oluşturur (1/2/3 = küçük/orta/büyük) | 2 (orta) çoğu grup için ideal |
worldname | Otomatik oluşturulan dünyanın adı | Boşluksuz ve kısa |
difficulty | 0 normal, 1 uzman, 2 usta, 3 yolculuk | 1 (uzman) topluluk sunucularında yaygın |
maxplayers | Slot sayısı (1-255) | 16-32 gerçekçi üst sınır |
port | Dinlenen TCP portu | 7777 (değiştirirseniz güvenlik duvarını da güncelleyin) |
password | Giriş parolası | Halka açık olmayan sunucuda zorunlu |
secure | Ek hile koruması | 1 |
upnp | Modemde otomatik port açma | VDS’de 0 yapın, gereksiz |
motd | Girişte gösterilen mesaj | Kural özeti ve Discord adresi |
world ve worldpath satırlarında tam yol kullanın, göreli yol yazmayın. Sunucuyu farklı bir klasörden başlattığınızda göreli yol bozulur ve sunucu ya boş bir dünya oluşturur ya da “dünya seçin” ekranında takılıp kalır. Bir de password satırını boş bırakırsanız sunucu tamamen açık olur; IP’nizi bulan herkes girer.Adım 3: Dünya Oluşturma ve İlk Başlatma#
Ayar dosyası hazırsa sunucuyu -config parametresiyle başlatın. autocreate tanımlıysa ve belirtilen dünya yoksa Terraria dünyayı kendisi üretir; büyük dünyada bu işlem birkaç dakika sürebilir.
mkdir -p /home/terraria/worlds
cd /home/terraria/server/Linux
./TerrariaServer.bin.x86_64 -config /home/terraria/serverconfig.txt
REM Windows
cd /d C:\terraria\Windows
TerrariaServer.exe -config C:\terraria\serverconfig.txt
Ayar dosyası kullanmadan doğrudan parametre vermek de mümkündür — hızlı bir test için pratiktir:
./TerrariaServer.bin.x86_64 \
-world /home/terraria/worlds/anadunya.wld \
-autocreate 2 -worldname BatihostSunucu \
-difficulty 1 -maxplayers 16 -port 7777 \
-password cok-uzun-bir-parola -secure -noupnp
Konsol komutları#
help Komut listesi
playing Bagli oyunculari listeler
say <mesaj> Tum oyunculara duyuru
save Dunyayi aninda kaydeder
kick <oyuncu> Oyuncuyu atar
ban <oyuncu> Oyuncuyu yasaklar
password <parola> Parolayi degistirir
time / dawn / noon / dusk / midnight
settle Su akisini oturtur (lag azaltir)
exit Kaydedip kapatir
exit-nosave Kaydetmeden kapatir
exit kullanın. Terminali doğrudan öldürmek ya da exit-nosave çalıştırmak, son kayıttan sonraki ilerlemenin tamamını siler. Uzun süren su akışı kaynaklı lag yaşıyorsanız settle komutu işe yarar.Adım 4: Portu Açma ve Arkadaşlarınızı Bağlama#
# Ubuntu / Debian — UFW
sudo ufw allow 22/tcp
sudo ufw allow 7777/tcp
sudo ufw enable
sudo ufw status numbered
# Port gercekten dinleniyor mu?
ss -lntp | grep 7777
# Windows Server
New-NetFirewallRule -DisplayName "Terraria" -Direction Inbound -LocalPort 7777 -Protocol TCP -Action Allow
Oyuncular oyunda Multiplayer → Join via IP yolunu izler, karakterini seçer, sunucunun genel IP adresini ve portu girer. Parola tanımlıysa bir sonraki ekranda sorulur. Sunucunuz evdeki bir bilgisayardaysa modemde port yönlendirmesi yapmanız gerekir; mantığını port açma rehberinde anlattık. Güvenlik duvarı kurallarının tamamı için firewall yapılandırması sayfasına bakın.
Adım 5: Sunucuyu Arka Planda Çalıştırma#
SSH oturumunu kapattığınızda sunucu da kapanır. Bunu iki yolla çözersiniz: hızlı yöntem screen, kalıcı yöntem systemd.
screen ile#
# Yeni oturum ac ve sunucuyu baslat
screen -S terraria
cd ~/terraria/*/Linux
./TerrariaServer.bin.x86_64 -config /home/terraria/serverconfig.txt
# Oturumdan ayril: Ctrl+A ardindan D
# Geri don:
screen -r terraria
# Acik oturumlari listele
screen -ls
systemd servisi ile#
# /etc/systemd/system/terraria.service
[Unit]
Description=Terraria Dedicated Server
After=network.target
[Service]
Type=simple
User=terraria
WorkingDirectory=/home/terraria/server/Linux
ExecStart=/home/terraria/server/Linux/TerrariaServer.bin.x86_64 -config /home/terraria/serverconfig.txt
Restart=on-failure
RestartSec=20
KillSignal=SIGINT
TimeoutStopSec=90
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable --now terraria
sudo systemctl status terraria
journalctl -u terraria -f
Servis mantığının ayrıntısı ve konsola komut gönderme yöntemleri için screen ve tmux kullanımı ile systemd servisi oluşturma sayfalarına göz atın; oradaki yapı birebir Terraria’ya uyarlanabiliyor. Windows tarafında aynı işi NSSM ile TerrariaServer.exe’yi hizmete dönüştürerek yaparsınız.
TShock: Eklenti, Yetki ve Yönetim#
Vanilla Terraria sunucusunda yetki sistemi yoktur. Kimse kimseden ayırt edilmez, bölge koruması yoktur, ban listesi düz bir metin dosyasıdır. Topluluk sunucusu işletecekseniz bu yeterli olmaz. İşin aslı, ciddi Terraria sunucularının neredeyse tamamı TShock kullanır.
TShock resmî sunucunun yerine geçen ayrı bir yazılımdır — üzerine kurulan bir eklenti değil. Sürüm sayfasından işletim sisteminize uygun paketi indirir, TShock.Server dosyasını çalıştırırsınız. Kendi çalışma zamanını içeren (self-contained) paketi seçerseniz ayrıca .NET kurmanız gerekmez.
cd ~/terraria
unzip TShock-linux-x64.zip -d ~/tshock
cd ~/tshock
chmod +x TShock.Server
./TShock.Server -config /home/terraria/serverconfig.txt
İlk açılışta TShock konsola bir kurulum kodu yazar. Oyuna girip sohbet kutusuna /setup <kod> yazdığınızda süper yönetici olursunuz. Ardından kendinize kalıcı bir hesap açıp kurulum kodunu kapatmanız gerekir:
/setup 12345678 Gecici yonetici yetkisi
/user add emre parolam superadmin Kalici hesap olustur
/login emre parolam Hesapla giris yap
/setup Kurulum kodunu kapat
/group list Grup listesi
/region define Bolge tanimla
/ban add <oyuncu> <sebep> Yasakla
/reload Yapilandirmayi yeniden yukle
/off Kaydedip kapat
TShock ayarları tshock/config.json dosyasındadır; eklentiler ise ServerPlugins klasörüne .dll olarak atılır. REST API’yi açarsanız sunucuyu web üzerinden de yönetebilirsiniz, ama o portu internete açmayın.
/setup komutunu parametresiz çalıştırıp kodu devre dışı bırakın.Yedekleme#
Terraria her kayıtta dünyanın bir önceki hâlini .bak uzantısıyla saklar, ama bu tek başına yedek sayılmaz — sadece bir adım geri gider. Gerçek yedek, dünya klasörünün sunucu dışında duran bir kopyasıdır.
#!/bin/bash
# /home/terraria/yedek.sh
TARIH=$(date +%F-%H%M)
HEDEF=/home/terraria/yedek
KAYNAK=/home/terraria/worlds
mkdir -p $HEDEF
tar -czf $HEDEF/terraria-$TARIH.tar.gz $KAYNAK /home/terraria/serverconfig.txt
# 14 gunden eski yedekleri sil
find $HEDEF -name "terraria-*" -mtime +14 -delete
echo "$(date) yedek tamam: terraria-$TARIH.tar.gz"
chmod +x /home/terraria/yedek.sh
crontab -e
# Her gun 04:00 ve 16:00'da yedek al
0 4,16 * * * /home/terraria/yedek.sh >> /var/log/terraria-yedek.log 2>&1
Yedek almadan hemen önce konsoldan save çalıştırın ki arşivlenen dosya yarım kalmasın. Zamanlanmış görev kurmayı bilmiyorsanız cron job rehberimiz yeterli; kaç kopya tutulacağı konusunda ise 3-2-1 yedekleme kuralına bakın. Snapshot ile dosya yedeği arasındaki farkı da ayrı bir sayfada anlattık.
Donanım Önerisi#
Terraria ana oyun döngüsünü tek bir çekirdek üzerinde işler. Yani çekirdek sayısını artırmak işe yaramaz; belirleyici olan işlemcinin saat hızıdır. Bu yüzden düşük frekanslı, çok çekirdekli sunucu işlemcileri Terraria için kötü bir tercihtir.
| Kullanım | RAM | İşlemci | Disk |
|---|---|---|---|
| 2-8 oyuncu, arkadaş grubu | 8 GB | Ryzen 9 3900X ve üzeri | 50 GB NVMe SSD |
| 8-16 oyuncu, TShock eklentili | 8-12 GB | Ryzen 9 7900X | 50 GB NVMe SSD |
| 16-32 oyuncu, kalabalık topluluk | 16 GB | Ryzen 9 7900X / 7950X | 100 GB NVMe SSD |
| Birden fazla dünya / sunucu örneği | 32 GB ve üzeri | Ryzen 9 7950X | 200 GB+ NVMe SSD |
Disk tarafında NVMe SSD tercih edin: Terraria kaydederken dünya dosyasının tamamını yeniden yazar ve büyük bir dünyada yavaş diskte bu işlem her kayıtta hissedilir bir donma yaratır. Türkiye lokasyonlu, yüksek frekanslı seçenekler için yüksek frekanslı VDS paketlerine bakabilir, tam izolasyon isterseniz dedicated sunucu tarafını değerlendirebilirsiniz. Hangisinin size uyduğunu VDS mi dedicated mi karşılaştırmasında anlattık.
Sık Karşılaşılan Sorunlar#
| Belirti | Sebep | Çözüm |
|---|---|---|
| “Permission denied” ile açılmıyor | Çalıştırma izni yok | chmod +x TerrariaServer.bin.x86_64 |
| Oyuncular bağlanamıyor | 7777/TCP kapalı | UFW veya Windows kuralını ekleyin |
| “Bağlantı zaman aşımı” hatası | Sürüm uyuşmazlığı | Sunucu paketini güncelleyin |
| Sunucu dünya seçme ekranında bekliyor | world yolu yanlış | Tam yol yazın, dosya adını kontrol edin |
| SSH kapanınca sunucu düşüyor | Arka plan yok | screen veya systemd servisi kurun |
| Kayıtlar kayboluyor | exit-nosave veya zorla kapatma | Daima exit ile kapatın |
| Su akışı lag yapıyor | Oturmamış sıvı simülasyonu | Konsolda settle çalıştırın |
| TShock komutları çalışmıyor | Giriş yapılmamış | /login ile hesabınıza girin |
Özetle#
Terraria sunucu kurulumu üç adıma iner: resmî paketi indirip açmak, serverconfig.txt dosyasında dünya yolu, oyuncu sayısı, port ve parolayı tanımlamak, 7777/TCP portunu açmak. SteamCMD’ye ya da ek bir çalışma zamanına ihtiyaç yok.
Sunucuyu screen ile başlatmak deneme için yeterli ama 7/24 çalışacaksa systemd servisine geçin. Yetki, bölge koruma ve eklenti gerekiyorsa vanilla sunucuyu bırakıp TShock kurun — ikisi birlikte çalışmaz, birini seçersiniz. Kurulum kodunu kapatmayı da unutmayın.
Donanımda çekirdek sayısı değil saat hızı belirleyicidir; 8 GB RAM, yüksek frekanslı bir Ryzen 9 ve NVMe SSD sağlıklı bir başlangıç. Kalabalık bir topluluk hedefliyorsanız 16 GB planlayın. Yedeklemeyi ilk günden kurun, sonra hatırlamak zor oluyor.
Benzer kurulumlar için Valheim dedicated server, Project Zomboid sunucusu ve Palworld sunucu kurulumu rehberlerimize, altyapı tarafı için Ubuntu Server kurulumu sayfasına bakabilirsiniz. Takıldığınız bir yer olursa destek talebi açmanız yeterli.