MTA:SA sunucu kurulumu, resmî sunucu paketini indirmek, varsayılan kaynakları yerleştirmek, mtaserver.conf dosyasını düzenlemek ve 22003/UDP ile 22005/TCP portlarını açmakla tamamlanır. Multi Theft Auto: San Andreas, GTA: San Andreas üzerine kurulu, Lua ile betiklenebilen bağımsız bir çok oyunculu platformdur ve sunucu yazılımı hem Windows hem Linux için resmî olarak dağıtılır.
Bu rehber kurulumu işletim sisteminden bağımsız anlatıyor: her adımda hem Windows hem Linux karşılığını buluyorsunuz. Sunucunuzu bir sanal sunucuda çalıştıracaksanız önce VDS aldıktan sonraki ilk ayarları tamamlayın, sonra buraya dönün.
Kurulumdan Önce: Donanım ve Ön Hazırlık#
MTA sunucusunun yükünü belirleyen şey oyuncu sayısından çok çalıştırdığınız Lua kaynaklarıdır. Sunucu tarafındaki betik yürütme büyük ölçüde tek iş parçacığında ilerler; bu yüzden çok çekirdekli ama düşük frekanslı bir işlemci, az çekirdekli yüksek frekanslı bir işlemciden daha kötü sonuç verir.
| Sunucu tipi | RAM | İşlemci | Disk |
|---|---|---|---|
| Test / küçük freeroam, 2-32 slot | 8 GB | AMD Ryzen 9 3900X ve üzeri | 50 GB NVMe |
| Aktif freeroam veya DM, 32-64 slot | 10-12 GB | AMD Ryzen 9 7900X | 50-100 GB NVMe |
| Roleplay, MySQL aynı makinede | 16 GB | AMD Ryzen 9 7900X | 100 GB NVMe |
| 100+ oyuncu, çok kaynaklı büyük proje | 32 GB ve üzeri | AMD Ryzen 9 7950X | 200 GB NVMe |
Diskte NVMe SSD dışında seçenek düşünmeyin: roleplay sunucularında veritabanı yazma işlemleri sürekli küçük I/O üretir ve SATA gecikmesi oyun içi gecikmeye dönüşür. Oyuncularınız Türkiye’deyse Türkiye lokasyonlu bir yüksek frekanslı Ryzen VDS ping farkını belirgin biçimde düşürür.
-
Multi Theft Auto resmî sitesi (sunucu paketi)Zorunluİndir
-
WinSCP (dosya aktarımı)İndir
-
PuTTY (SSH istemcisi)İndir
-
Notepad++ (yapılandırma düzenleme)İndir
Sunucu paketini yalnızca multitheftauto.com üzerinden indirin. Forumlarda dolaşan “hazır sunucu paketi” arşivleri sıklıkla arka kapı içerir.
Linux Üzerinde MTA Sunucu Kurulumu#
Ubuntu 24.04 LTS üzerinde anlatıyoruz; Debian’da aynı komutlar çalışır. Sunucuya SSH ile bağlanın ve önce sunucuyu root ile değil, ayrı bir kullanıcıyla çalıştıracak şekilde hazırlayın.
-
Ayrı kullanıcı ve dizin oluşturun#
sudo adduser --disabled-password --gecos "" mta sudo mkdir -p /opt/mta sudo chown -R mta:mta /opt/mta sudo apt update && sudo apt install -y wget tar unzip screen -
Sunucu paketini yerleştirin#
Resmî siteden Linux x64 sunucu arşivini indirin ve
/opt/mtaaltına açın. Arşivi kendi bilgisayarınıza indirdiyseniz WinSCP ile sunucuya yükleyebilirsiniz.sudo -u mta -i cd /opt/mta tar -xzf multitheftauto_linux_x64.tar.gz --strip-components=1 ls -l # mta-server64 ikili dosyası burada olmalı chmod +x mta-server64 -
Varsayılan kaynakları ekleyin#
Sunucu paketi yalın gelir; oyun modlarının çalışması için
mods/deathmatch/resourcesdizinine varsayılan kaynak setini koymanız gerekir. Resmî kaynak arşivini indirip bu dizine açın.mkdir -p /opt/mta/mods/deathmatch/resources cd /opt/mta/mods/deathmatch/resources # indirdiğiniz kaynak arşivini buraya açın unzip mtasa-resources.zip -
Sunucuyu ilk kez başlatın#
cd /opt/mta ./mta-server64İlk çalıştırmada sunucu eksik dizinleri oluşturur ve konsolu açar. Konsolda
quityazarak kapatın; yapılandırmayı bir sonraki bölümde düzenleyeceğiz.
mta kullanıcısı, hasarı o kullanıcının erişebildiği dosyalarla sınırlar.Windows Üzerinde MTA Sunucu Kurulumu#
Windows tarafında kurulum daha kısa: resmî siteden indirdiğiniz sunucu kurulumunu çalıştırın ve hedef klasörü seçin. Windows Server üzerinde çalışıyorsanız önce Uzak Masaüstü ile sunucuya bağlanın.
-
Kurulum konumunu seçin#
Sunucuyu
C:\Program Filesaltına değil, yazma izni sorunu çıkarmayacak bir yere kurun. Örnek:C:\mta\server. -
Kaynakları yerleştirin#
Resmî kaynak arşivini
C:\mta\server\mods\deathmatch\resourcesklasörüne açın. Arşiv çıkarma için 7-Zip kullanabilirsiniz. -
Sunucuyu başlatın#
cd C:\mta\server MTA Server.exe64 bit yapıyı kurduysanız çalıştırılacak dosya
MTA Server64.exeolur. Konsol penceresi açıldığında sunucu ayaktadır. -
Güvenlik duvarında portları açın#
New-NetFirewallRule -DisplayName "MTA Oyun" -Direction Inbound -Protocol UDP -LocalPort 22003 -Action Allow New-NetFirewallRule -DisplayName "MTA HTTP" -Direction Inbound -Protocol TCP -LocalPort 22005 -Action Allow New-NetFirewallRule -DisplayName "MTA ASE" -Direction Inbound -Protocol UDP -LocalPort 22126 -Action Allow
mtaserver.conf Dosyasını Yapılandırma#
Sunucunun beyni mods/deathmatch/mtaserver.conf dosyasıdır. XML biçimindedir; bir etiketi kapatmayı unutursanız sunucu hiç açılmaz. Aşağıda üretim için makul bir başlangıç yapılandırması var:
<config>
<servername>Batihost Roleplay | TR</servername>
<serverip></serverip>
<serverport>22003</serverport>
<maxplayers>64</maxplayers>
<httpserver>1</httpserver>
<httpport>22005</httpport>
<httpdownloadurl></httpdownloadurl>
<httpmaxconnectionsperclient>4</httpmaxconnectionsperclient>
<ase>1</ase>
<donotbroadcastlan>0</donotbroadcastlan>
<password></password>
<bandwidth_reduction>medium</bandwidth_reduction>
<player_sync_interval>100</player_sync_interval>
<logfile>logs/server.log</logfile>
<resource src="admin" startup="1" protected="0" />
<resource src="resourcebrowser" startup="1" protected="1" default="true" />
<resource src="webadmin" startup="1" protected="0" />
<resource src="play" startup="1" protected="0" />
</config>
Kritik alanların anlamı:
- serverip
- Boş bırakırsanız sunucu tüm arayüzlerden dinler. Birden fazla IP’si olan makinelerde hangi IP’den yayın yapacağını burada belirtin.
- ase
- 1 yaparsanız sunucu ana listeye bildirim gönderir ve oyuncular sunucu tarayıcısında görebilir. 0 ise yalnızca doğrudan IP ile girilir.
- httpdownloadurl
- Kaynak dosyalarını harici bir web sunucusundan dağıtmak için kullanılır. Büyük sunucularda giriş süresini ciddi biçimde kısaltır.
- bandwidth_reduction
- none / medium / maximum değerlerini alır. Kalabalık sunucularda medium iyi bir dengedir.
- resource src
- Sunucu açılışında otomatik başlatılacak kaynaklar.
startup="1"olanlar her açılışta çalışır.
cp mtaserver.conf mtaserver.conf.bak. XML’de tek bir kapatılmamış etiket sunucunun açılmamasına yol açar ve hata mesajı her zaman satır numarası vermez.Portlar ve Güvenlik Duvarı#
MTA üç ayrı port kullanır ve bunlardan birinin kapalı olması farklı bir belirtiyle ortaya çıkar. Aşağıdaki tablo hangi portun eksik olduğunu belirtiden anlamanızı sağlar:
| Port | Protokol | Görev | Kapalıysa ne olur? |
|---|---|---|---|
| 22003 | UDP | Oyun trafiği | Oyuncular hiç bağlanamaz |
| 22005 | TCP | Dahili HTTP (kaynak indirme) | Bağlantı “Downloading” ekranında takılır |
| 22126 | UDP | ASE sunucu listesi sorgusu | Sunucu listede görünmez, IP ile girilir |
Linux tarafında UFW ile açmak için:
sudo ufw allow 22003/udp
sudo ufw allow 22005/tcp
sudo ufw allow 22126/udp
sudo ufw reload
sudo ufw status numbered
Kural yazımının ayrıntıları, iptables karşılıkları ve Fail2Ban entegrasyonu için sunucu güvenlik duvarı yapılandırması sayfasına bakın. Oyun portunu 22003 dışında bir değere alırsanız ASE portunun da kaydığını unutmayın: yeni ASE portu her zaman oyun portu + 123 olur.
Yönetici Hesabı ve ACL Yapılandırması#
MTA’da yetkilendirme acl.xml dosyasıyla yapılır. Kurulumdan sonra ilk iş kendinize bir yönetici hesabı açmaktır. Sunucu konsolunda:
addaccount batihostadmin GucluBirSifre123
Ardından mods/deathmatch/acl.xml dosyasını açıp Admin grubunun nesne listesine kullanıcıyı ekleyin:
<group name="Admin">
<acl name="Moderator" />
<acl name="SuperModerator" />
<acl name="Admin" />
<acl name="RPC" />
<object name="user.batihostadmin" />
</group>
Dosyayı kaydettikten sonra konsoldan aclreload çalıştırın veya sunucuyu yeniden başlatın. Oyun içinde /login batihostadmin GucluBirSifre123 yazıp p tuşuyla yönetim panelini açabilirsiniz.
Default ACL grubunun geniş izinlerini olduğu gibi bırakmayın. MTA sunucularının ele geçirilmesinde en sık görülen sebep, kurulum sonrası hiç dokunulmamış bir acl.xml dosyasıdır.Kaynak (Resource) Yönetimi ve Konsol Komutları#
MTA’da her şey bir kaynaktır: oyun modu, harita, admin paneli, sohbet sistemi. Kaynaklar mods/deathmatch/resources dizininde klasör ya da .zip olarak durur. Yeni bir kaynağı bu dizine attıktan sonra sunucuyu yeniden başlatmanız gerekmez.
refresh # yeni eklenen kaynakları tara
start freeroam # kaynağı başlat
restart freeroam # kaynağı yeniden başlat
stop freeroam # kaynağı durdur
refreshall # tüm kaynak listesini yeniden oku
say Sunucu 5 dakika sonra yeniden başlatılacak
shutdown Bakim # sunucuyu düzgünce kapat
Kaynak klasörünün içindeki meta.xml dosyası hangi betiklerin sunucu, hangilerinin istemci tarafında çalışacağını belirler:
<meta>
<info author="Batihost" name="Ornek Kaynak" version="1.0" type="script" />
<script src="server.lua" type="server" />
<script src="client.lua" type="client" />
<file src="images/logo.png" />
</meta>
Sunucuyu 7/24 Çalıştırma#
Terminal oturumunu kapattığınızda sunucunun durmaması için süreci oturumdan bağımsız hâle getirmelisiniz. Linux’ta en temiz yol bir systemd servisi yazmaktır:
[Unit]
Description=MTA:SA Sunucusu
After=network-online.target
[Service]
Type=simple
User=mta
WorkingDirectory=/opt/mta
ExecStart=/opt/mta/mta-server64 -n
Restart=on-failure
RestartSec=10
[Install]
WantedBy=multi-user.target
Dosyayı /etc/systemd/system/mta.service olarak kaydedip etkinleştirin:
sudo systemctl daemon-reload
sudo systemctl enable --now mta
sudo systemctl status mta
sudo journalctl -u mta -f
Konsola müdahale etmek istiyorsanız systemd yerine screen kullanabilirsiniz; yöntemin ayrıntıları ve iki yaklaşımın karşılaştırması Linux temel komutları sayfasında anlatılıyor. Windows tarafında aynı işi NSSM ile bir Windows hizmeti oluşturarak yaparsınız.
Yedekleme ve Performans Takibi#
MTA sunucusunda kaybı en acı verici olan iki şey, kaynak klasörünüz ve veritabanınızdır. Roleplay sunucularında MySQL kullanıyorsanız hem dosya hem veritabanı yedeği alın:
# Kaynak ve yapılandırma yedeği
tar -czf /yedek/mta-$(date +%F).tar.gz /opt/mta/mods/deathmatch
# MySQL veritabanı yedeği
mysqldump -u mtauser -p mta_db > /yedek/mta_db-$(date +%F).sql
Bu iki komutu bir cron görevine bağlayıp gece çalıştırın. Yedeklerin nerede saklanacağı ve kaç kopya tutulacağı konusunda 3-2-1 yedekleme kuralı sayfasındaki şablonu kullanın.
Performans tarafında ilk bakacağınız yer konsoldaki tick uyarıları ve CPU kullanımıdır. Tek bir kaynak, kötü yazılmış bir döngü yüzünden tüm sunucuyu yavaşlatabilir. Sunucu kaynak kullanımını sürekli izlemek için sunucu izleme rehberindeki araçlardan birini kurun. Saldırı riski konusunda ise oyun sunucuları öncelikli hedeftir; DDoS korunma yöntemlerini kurulum aşamasında planlayın.
Sık Karşılaşılan Kurulum Hataları#
Sunucu açılıyor ama hemen kapanıyor#
Genellikle bozuk bir mtaserver.conf veya eksik kaynak dizini sebeptir. logs/server.log dosyasının son satırlarına bakın; XML hatası varsa satır numarası çoğunlukla orada yazar.
“Unable to load resources” uyarısı#
Varsayılan kaynak seti yerleştirilmemiştir. mods/deathmatch/resources dizininin boş olmadığından ve klasör sahibinin sunucuyu çalıştıran kullanıcı olduğundan emin olun: chown -R mta:mta /opt/mta.
Oyuncular “Connection timed out” alıyor#
22003/UDP kapalı ya da sağlayıcı tarafındaki ağ filtresine takılıyor. Önce sunucunun kendi üzerinden portu dinleyip dinlemediğini doğrulayın: sudo ss -lunp | grep 22003. Dinliyorsa sorun güvenlik duvarında ya da ağ tarafındadır.
Özetle#
MTA:SA sunucusu kurmak dört net adıma iner: resmî paketi indirip açmak, varsayılan kaynakları mods/deathmatch/resources dizinine yerleştirmek, mtaserver.conf içinde sunucu adı, port ve otomatik başlayacak kaynakları tanımlamak ve 22003/UDP, 22005/TCP, 22126/UDP portlarını güvenlik duvarında açmak. Kurulumdan hemen sonra addaccount ile yönetici hesabı açıp acl.xml dosyasını düzenleyin; varsayılan yetkilerle bırakılan sunucular kısa sürede ele geçiriliyor. Sunucuyu systemd servisi olarak tanımlayın, yedekleme betiğinizi kurun ve donanımda 8 GB RAM ile yüksek saat hızlı AMD Ryzen 9 alt sınırını koruyun. GTA V tarafına geçmeyi düşünüyorsanız FiveM sunucu kurulumu sayfası aynı mantığı o platform için anlatıyor.