Counter-Strike 2 ile birlikte dedicated server kurulumu da değişti: CS:GO döneminde ayrı olan sunucu uygulaması artık oyunla birleşti, dosya boyutu büyüdü ve Linux tarafında yeni gereksinimler geldi. Arkadaşlarınızla scrim oynamak, topluluk sunucusu açmak ya da deathmatch sunucusu kurmak istiyorsanız önce bu temel kurulumu doğru yapmanız gerekiyor.

Bu rehberde CS2 sunucu kurulumunu SteamCMD ile indirmeden başlayıp GSLT (Game Server Login Token) almaya, başlatma parametrelerine, portlara ve Windows ile Linux'ta sık görülen hatalara kadar adım adım anlatıyoruz. Bilgiler Valve Developer Community'nin CS2 Dedicated Servers sayfası ve Steam'in resmî sayfalarından alındı.

CS2 sunucusu için gereksinimler

CS2 sunucusu için gereksinimler: En az 2 GB, Depolama, x86-64-v2 (POPCNT / SSE4.2 desteği), Windows

Valve Developer Community (VDC) sayfası şu önerilen gereksinimleri listeliyor. Sayfanın kendisi de güncellenmesi gerektiği notunu taşıyor; bu yüzden değerleri asgari bir başlangıç olarak düşünün:

KaynakVDC değeri
RAMEn az 2 GB
Depolama65 GB (toplam indirme yaklaşık 60 GB)
CPUx86-64-v2 (POPCNT / SSE4.2 desteği)
WindowsWindows 10 / 11
LinuxGlibc 2.31; en az Ubuntu 20.04, Debian 11 veya Enterprise Linux 9

Adım 1: SteamCMD ile CS2 sunucu dosyalarını indirin

Önce SteamCMD'yi kurun (ayrıntılar için SteamCMD rehberimize bakın). Ardından SteamCMD'yi açıp kurulum klasörünü belirleyin, anonim giriş yapın ve 730'u indirin:

text
force_install_dir /home/cs2/cs2-ds/
login anonymous
app_update 730 validate
quit

Windows'ta klasör örneği force_install_dir c:\cs2-ds\ biçimindedir. İlk kurulumda ve dosya bütünlüğünü doğrulamak istediğinizde app_update 730 validate, yalnızca güncelleme için app_update 730 yeterlidir. VDC bu adımların oyun her güncellendiğinde tekrarlanması gerektiğini belirtiyor. Tek satırda da çalıştırabilirsiniz:

bash
./steamcmd.sh +force_install_dir /home/cs2/cs2-ds +login anonymous +app_update 730 validate +quit

Adım 2: GSLT (Game Server Login Token) alın

VDC'ye göre başka oyuncuların sunucunuza katılabilmesi için bir Game Server Login Token oluşturup başlatma parametrelerine eklemeniz gerekir. Token, Steam'in Game Server Account Management sayfasından, oyun kimliği (App ID) olarak 730 yazılarak oluşturulur.

Steam'in aynı sayfada belirttiği hesap koşulları:

  • Hesap topluluk yasağı almış veya kilitli olmamalı.
  • Hesap sınırlı (limited) olmamalı.
  • Hesapta uygun, kayıtlı bir telefon numarası bulunmalı.
  • Hesap, sunucu hesabı oluşturduğunuz oyuna sahip olmalı.
  • Bir hesap en fazla 1.000 sunucu hesabı oluşturabilir.

Uzun süre kullanılmayan (sunucunun hiç giriş yapmadığı) token'ların süresi dolar ve yeniden oluşturulabilir. Steam şifrenizi sıfırlarsanız tüm token'larınız yeniden üretilir; sunucu parametrelerini güncellemeniz gerekir. Token'ı başkalarıyla paylaşmayın: Steam, token'lardan ve bunlara bağlı olası yasaklardan hesabın sahibinin sorumlu olduğunu açıkça belirtiyor.

Token'ı başlatma satırına +sv_setsteamaccount ile eklersiniz:

bat
.\cs2.exe -dedicated +sv_setsteamaccount TOKENINIZ +map de_dust2

Adım 3: Sunucuyu başlatın

Adım 3: Sunucuyu başlatın: Windows, Linux

VDC'nin iki önemli notu var: sunucu modunda açmak için -dedicated parametresi şarttır, aksi hâlde oyunun kendisi açılır. Ayrıca sunucu başlatıldığında varsayılan oyun modu competitive'dir.

Windows

Sunucu çalıştırılabilir dosyası game\bin\win64\cs2.exe konumundadır. Dosyaya çift tıklamayın, oyun açılır. Bu klasörde bir terminal açıp şu komutu verin:

bat
.\cs2.exe -dedicated +map de_dust2

VDC'ye göre Windows'ta sunucuyu başlatabilmek için sistemde Steam kurulu olmalıdır. Kurulu değilse "Failed to initialize Steamworks SDK for gameserver" hatası alırsınız ve terminal hemen kapandığı için hatayı görmek zordur.

Linux

Linux'ta game/bin/linuxsteamrt64/cs2 dosyasını doğrudan çalıştırmak yerine game klasöründeki cs2.sh betiğini kullanın; VDC, betiğin önemli hazırlık adımları yapabileceğini belirtiyor:

bash
cd /home/cs2/cs2-ds/game
./cs2.sh -dedicated +sv_setsteamaccount TOKENINIZ +map de_dust2

Linux'ta sık görülen hata Failed to load module '/home/kullanici/.steam/sdk64/steamclient.so' şeklindedir. VDC'ye göre SteamCMD bu dosyayı oyunun aradığı yere koymaz; çözüm bir sembolik bağlantıdır (gerekirse klasörü önce oluşturun):

bash
mkdir -p ~/.steam/sdk64
ln -s /home/kullanici/steamcmd/linux64/steamclient.so ~/.steam/sdk64/

Sunucunun SSH oturumunu kapattığınızda kapanmaması için tmux veya screen kullanabilir ya da systemd servisi olarak tanımlayabilirsiniz.

Başlatma parametreleri

VDC'nin CS2 için listelediği komut satırı parametreleri:

ParametreÖrnekAçıklama
-dedicated-CS2'yi dedicated server olarak başlatır
-ip-ip 1.2.3.4Sunucuyu belirli bir IP adresine bağlar
-port-port 27015Oyun / query portunu belirler
-maxplayers-maxplayers 64Slot sayısı
-insecure-VAC'ı devre dışı bırakır

Bunlara ek olarak + ile başlayan her şey konsol komutu veya cvar olarak çalışır: +map de_dust2, +game_alias deathmatch, +sv_setsteamaccount, +hostname gibi. Örnek bir tam başlatma satırı:

bash
./cs2.sh -dedicated -port 27015 -maxplayers 10 +game_alias competitive +map de_mirage +sv_setsteamaccount TOKENINIZ

Portlar

VDC'nin CS2 sayfası port bilgisi için genel Source Dedicated Server (SRCDS) sayfasına yönlendiriyor. Oradaki resmî liste:

PortProtokolNe içinNasıl değiştirilir
27015TCP / UDPOyun trafiği, ping ve RCON-port
27020UDPSourceTV yayını+tv_port
27005UDPİstemci portu-clientport
26900UDP (giden)Steam portu-sport

Pratikte oyuncuların bağlanması için açmanız gereken port, oyun portudur (varsayılan 27015). SourceTV kullanmıyorsanız 27020'yi açmanız gerekmez. Ubuntu'da örnek UFW kuralları:

bash
sudo ufw allow 27015/udp
sudo ufw allow 27015/tcp

Güvenlik duvarı ayarları için UFW rehberimize, portun dışarıdan açık olup olmadığını test etmek için port sorgulama rehberimize bakabilirsiniz.

Güncelleme ve yeniden başlatma için basit bir betik

Güncelleme ve yeniden başlatma için basit bir betik

CS2 güncellendiğinde eski sürümdeki sunucuya oyuncular bağlanamaz; VDC de indirme adımlarının her oyun güncellemesinde tekrarlanması gerektiğini söylüyor. Linux'ta işi kolaylaştırmak için sunucuyu başlatmadan önce SteamCMD ile güncelleyen küçük bir betik yazabilirsiniz. Aşağıdaki örnekte yollar ve token sizin kurulumunuza göre düzenlenmelidir:

bash
#!/bin/bash
# baslat.sh - once guncelle, sonra sunucuyu ac
/home/cs2/steamcmd/steamcmd.sh +force_install_dir /home/cs2/cs2-ds +login anonymous +app_update 730 +quit
cd /home/cs2/cs2-ds/game
./cs2.sh -dedicated -port 27015 -maxplayers 10 +game_alias competitive +map de_dust2 +sv_setsteamaccount TOKENINIZ

Bu betiği bir systemd servisi olarak tanımlarsanız sunucu çöktüğünde veya makine yeniden başladığında otomatik olarak açılır ve her açılışta güncel sürümü kontrol eder. Yalnızca LAN üzerinde oynayacaksanız sv_lan 1 ayarı sunucuyu LAN moduna alır; VDC'ye göre bu modda heartbeat ve kimlik doğrulama yapılmaz, bu yüzden internete açık bir sunucuda kullanmayın.

Temel ayarlar ve oyun modu

Sunucu adı, şifre, RCON şifresi gibi ayarlar game/csgo/cfg/server.cfg dosyasına yazılır. Oyun modu ise game_type ve game_mode değerleriyle veya kısaca game_alias ile belirlenir. Bu konuların tamamını, mod tablosu ve mp_* ayarlarıyla birlikte CS2 sunucu ayarları ve oyun modları rehberimizde anlattık. Admin eklentileri ve Metamod kurulumu için de CS2 eklenti rehberimize göz atabilirsiniz.

Pterodactyl panelde CS2 sunucusu

Barındırılan bir panelde, örneğin Pterodactyl'de, SteamCMD indirmesi ve güncellemesi genellikle egg tarafından yapılır. GSLT, başlangıç haritası, slot sayısı gibi değerler Startup sekmesinde değişken olarak girilir; server.cfg dosyasına dosya yöneticisinden veya SFTP ile ulaşırsınız. CS2 yaklaşık 60 GB yer kapladığından paketinizdeki disk alanının yeterli olduğundan emin olun. Panelin genel kullanımı için Pterodactyl rehberimize bakın.

Sık Sorulan Sorular

CS2 sunucusu için hangi App ID kullanılır?

730. VDC'ye göre CS2'de sunucu ve oyun istemcisi birleştirildi; CS:GO dönemindeki 740 numaralı ayrı sunucu uygulaması CS2 için kullanılmıyor.

GSLT olmadan sunucu açabilir miyim?

VDC, diğer oyuncuların katılabilmesi için GSLT gerektiğini belirtiyor. Yalnızca kendi bilgisayarınızda yerel test yapıyorsanız farklıdır, ancak herkese açık bir sunucu için token oluşturmanız gerekir.

GSLT'm yasaklanabilir mi?

Evet. Steam Destek'e göre oyunculara sahip olmadıkları silah kaplamalarını veya bıçakları geçici olarak veren, sahte rütbe veya profil gösteren eklentiler GSLT yasağına yol açabilir. Bu yasak kalıcıdır ve hesabınıza maç arama ile takas kısıtlaması da getirir. Ayrıntılar CS2 eklenti rehberimizde.

Sunucu Linux'ta steamclient.so hatası veriyor, ne yapmalıyım?

SteamCMD klasöründeki linux64/steamclient.so dosyasına ~/.steam/sdk64/ içinden sembolik bağlantı oluşturun. Sunucuyu birden fazla kullanıcıyla çalıştırıyorsanız VDC, bu adımın her kullanıcı için yapılması gerektiğini belirtiyor.

CS2 güncellendiğinde ne yapmalıyım?

SteamCMD ile app_update 730 komutunu tekrar çalıştırın. Güncellemeden sonra oyuncular sunucunuza bağlanamıyorsa ilk kontrol edeceğiniz şey sunucunun güncel olup olmadığıdır.

Oyun ve yazılım adları sahiplerine aittir. Bu yazı bağımsız bir teknik rehberdir; adı geçen geliştiricilerle ortaklık ilişkisi bulunduğu anlamına gelmez.

İlgili içerikler: CS2 sunucu ayarları ve oyun modları · CS2 sunucu eklentileri · SteamCMD rehberi · Pterodactyl ile oyun sunucusu yönetimi · DDoS koruma rehberi