Ana içeriğe geç
Kategoriye Dön

SteamCMD Kurulumu: Steam Oyun Sunucusu Yönetim Aracı

SteamCMD kurulumu Linux'ta, oyun sunucusu indirme ve güncelleme, otomatik güncelleme scripti, anonymous login ve yaygın sorunlar.

Okuma süresi: 12 dk Oyun Sunucusu Kurulumları
steamcmdsteamoyun sunucusulinuxkurulumgüncelleme

İçindekiler

Giriş

SteamCMD (Steam Console Client), Valve tarafından geliştirilen komut satırı tabanlı bir Steam istemcisidir. Oyun sunucusu dosyalarını indirmek, güncellemek ve yönetmek için kullanılır. CS2, Garry's Mod, Rust, ARK, Palworld ve daha birçok oyunun dedicated server kurulumu SteamCMD ile yapılır. Bu rehberde SteamCMD'nin Linux üzerinde kurulumunu, kullanımını ve otomatik güncelleme yapılandırmasını anlatacağız.

Sistem Gereksinimleri

KaynakMinimum
OSUbuntu 20.04+ / Debian 11+
RAM512 MB
Disk500 MB (SteamCMD) + oyun sunucusu alanı
Mimari64-bit (32-bit kütüphaneler gerekli)

Kurulum Yöntemleri

Yöntem 1: APT ile Kurulum (Ubuntu/Debian)

hljs bash
sudo dpkg --add-architecture i386
sudo apt update
sudo apt install -y steamcmd

APT ile kurulumda SteamCMD /usr/games/steamcmd yoluna kurulur ve lisans sözleşmesini kabul etmeniz gerekir.

Yöntem 2: Manuel Kurulum (Önerilen)

Manuel kurulum daha fazla kontrol sağlar:

hljs bash
# Gerekli 32-bit kütüphaneleri kurun
sudo apt update
sudo apt install -y lib32gcc-s1 lib32stdc++6 wget tar

# Sunucu kullanıcısı oluşturun
sudo adduser steam --disabled-login --gecos ""
sudo su - steam

# SteamCMD'yi indirin ve kurun
mkdir -p ~/steamcmd && cd ~/steamcmd
wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz
tar -xzf steamcmd_linux.tar.gz
rm steamcmd_linux.tar.gz

Kurulumu doğrulayın:

hljs bash
./steamcmd.sh +quit

Manuel kurulum, her oyun sunucusu için ayrı kullanıcı oluşturmanıza ve izinleri daha iyi yönetmenize olanak tanır.

Temel Kullanım

SteamCMD Komut Yapısı

hljs bash
./steamcmd.sh +login <kullanıcı> +force_install_dir <dizin> +app_update <app_id> +quit

Anonymous Login

Çoğu oyun sunucusu anonymous (anonim) login ile indirilebilir:

hljs bash
./steamcmd.sh +login anonymous +quit

Hesap ile Login

Bazı oyun sunucuları Steam hesabı gerektirir:

hljs bash
./steamcmd.sh +login kullanici_adi +quit

Steam Guard etkinse doğrulama kodu girmeniz gerekir. İlk girişten sonra token önbelleğe alınır.

Popüler Oyun Sunucuları ve App ID'leri

OyunApp IDAnonymous Login
Counter-Strike 2730Evet
Garry's Mod4020Evet
Rust258550Evet
ARK: Survival Evolved376030Evet
Palworld2394010Evet
Unturned1110390Evet
Terraria (tShock)105600Evet
Team Fortress 2232250Evet
Left 4 Dead 2222860Evet
Valheim896660Evet
Project Zomboid380870Evet
7 Days to Die294420Evet
Satisfactory1690800Evet
V Rising1829350Evet
Enshrouded2278520Evet

Oyun Sunucusu İndirme Örnekleri

CS2 Sunucusu

hljs bash
./steamcmd.sh \
  +force_install_dir ~/cs2-server \
  +login anonymous \
  +app_update 730 validate \
  +quit

Rust Sunucusu

hljs bash
./steamcmd.sh \
  +force_install_dir ~/rust-server \
  +login anonymous \
  +app_update 258550 validate \
  +quit

ARK Sunucusu

hljs bash
./steamcmd.sh \
  +force_install_dir ~/ark-server \
  +login anonymous \
  +app_update 376030 validate \
  +quit

Palworld Sunucusu

hljs bash
./steamcmd.sh \
  +force_install_dir ~/palworld-server \
  +login anonymous \
  +app_update 2394010 validate \
  +quit

Otomatik Güncelleme Scripti

Birden fazla oyun sunucusunu otomatik güncellemek için:

hljs bash
nano ~/steamcmd/update_all.sh
hljs bash
#!/bin/bash
STEAMCMD="/home/steam/steamcmd/steamcmd.sh"
LOG_FILE="/home/steam/update.log"

echo "========================================" >> $LOG_FILE
echo "$(date): Güncelleme başlatıldı" >> $LOG_FILE

# CS2 Güncelleme
echo "$(date): CS2 güncelleniyor..." >> $LOG_FILE
$STEAMCMD +force_install_dir /home/steam/cs2-server \
  +login anonymous +app_update 730 +quit >> $LOG_FILE 2>&1

# Rust Güncelleme
echo "$(date): Rust güncelleniyor..." >> $LOG_FILE
$STEAMCMD +force_install_dir /home/steam/rust-server \
  +login anonymous +app_update 258550 +quit >> $LOG_FILE 2>&1

echo "$(date): Güncelleme tamamlandı" >> $LOG_FILE
hljs bash
chmod +x ~/steamcmd/update_all.sh

Crontab'a ekleyin:

hljs bash
crontab -e
0 4 * * * /home/steam/steamcmd/update_all.sh

SteamCMD Script Dosyası Kullanımı

Komutları bir script dosyasına yazarak çalıştırabilirsiniz:

hljs bash
nano ~/steamcmd/cs2_update.txt
@ShutdownOnFailedCommand 1
@NoPromptForPassword 1
login anonymous
force_install_dir /home/steam/cs2-server
app_update 730 validate
quit

Çalıştırma:

hljs bash
./steamcmd.sh +runscript ~/steamcmd/cs2_update.txt

Beta Branch Kurulumu

Bir oyunun beta sürümünü kurmak için:

hljs bash
./steamcmd.sh \
  +force_install_dir ~/game-server \
  +login anonymous \
  +app_update APP_ID -beta BETA_ADI \
  +quit

Örnek (CS2 pre-release):

hljs bash
./steamcmd.sh \
  +force_install_dir ~/cs2-server \
  +login anonymous \
  +app_update 730 -beta prerelease \
  +quit

Workshop İçerik İndirme

Steam Workshop içeriklerini indirmek için:

hljs bash
./steamcmd.sh \
  +login anonymous \
  +workshop_download_item APP_ID WORKSHOP_ID \
  +quit

İndirilen dosyalar şu dizinde bulunur:

~/steamcmd/steamapps/workshop/content/APP_ID/WORKSHOP_ID/

Yaygın Sorunlar ve Çözümleri

32-bit kütüphane hatası

hljs bash
# Hata: steamcmd: error while loading shared libraries
sudo dpkg --add-architecture i386
sudo apt update
sudo apt install -y lib32gcc-s1 lib32stdc++6

Disk alanı yetersiz

hljs bash
# Disk kullanımını kontrol edin
df -h

# SteamCMD önbelleğini temizleyin
rm -rf ~/steamcmd/steamapps/downloading/*
rm -rf ~/steamcmd/steamapps/temp/*

İndirme hataları

hljs bash
# validate parametresi ile dosya bütünlüğünü kontrol edin
./steamcmd.sh +force_install_dir ~/game-server \
  +login anonymous \
  +app_update APP_ID validate \
  +quit

Steam Guard doğrulama sorunu

hljs bash
# İlk girişte doğrulama kodunu girin
./steamcmd.sh +login kullanici_adi
# Kod sorulduğunda e-posta/mobil kodunu girin
# Sonraki girişlerde kod gerekmez

Bağlantı zaman aşımı

hljs bash
# DNS ayarlarını kontrol edin
echo "nameserver 8.8.8.8" | sudo tee /etc/resolv.conf

# Yeniden deneyin
./steamcmd.sh +login anonymous +quit

Güvenlik Önerileri

  1. Ayrı kullanıcı: Her oyun sunucusu için ayrı Linux kullanıcısı oluşturun
  2. Root kullanmayın: SteamCMD'yi asla root olarak çalıştırmayın
  3. Firewall: Sadece gerekli portları açın
  4. Güncellemeler: Düzenli güncelleme yapın
  5. Yedekleme: Sunucu dosyalarını düzenli yedekleyin
hljs bash
# Örnek: Ayrı kullanıcılar
sudo adduser cs2 --disabled-login --gecos ""
sudo adduser rust --disabled-login --gecos ""
sudo adduser ark --disabled-login --gecos ""

SteamCMD Güncelleme

SteamCMD kendini otomatik günceller. Manuel güncelleme için:

hljs bash
cd ~/steamcmd
./steamcmd.sh +quit

Sonuç

SteamCMD, Linux üzerinde oyun sunucusu yönetiminin temel aracıdır. Anonymous login ile çoğu oyun sunucusunu kolayca indirebilir, otomatik güncelleme scriptleri ile sunucularınızı güncel tutabilirsiniz. REXE VDS'in güçlü altyapısı ile SteamCMD tabanlı oyun sunucularınızı sorunsuz çalıştırabilirsiniz.