SteamCMD gebruiken: installatie, opdrachten, automatisering en fouten

Laatste update: 15/10/2025
Auteur: Isaac
  • SteamCMD beheert de installatie en updates van dedicated servers met SteamPipe en vervangt de oude HLDSUpdateTool.
  • Maakt anonieme of accountauthenticatie mogelijk, ondersteunt bètatakken en bestandsvalidatie om de integriteit te garanderen.
  • Ondersteunt CLI en scriptautomatisering, evenals downloads gekruist met @sSteamCmdForcePlatformType.
  • Bevat oplossingen voor veelvoorkomende bugs (32-bits bibliotheken, inloggen, ulimit) en hulpprogramma's zoals LGSM en SteamCMD GUI.

SteamCMD en Dedicated Servers Gebruikershandleiding

Als je dedicated gameservers wilt opzetten of onderhouden met behulp van de infrastructuur van Valve, kom je vroeg of laat SteamCMD tegen. Dit hulpprogramma is de online versie van commando's van de cliënt van Stoom en is uitgegroeid tot de standaardtool voor het downloaden, installeren en updaten van servers. Sinds SteamPipe de oude HLDSUpdateTool heeft vervangen, vrijwel alle titels die dedicated servers ondersteunen, komen hier langs.

In deze complete gids leg ik gedetailleerd uit hoe je SteamCMD kunt downloaden in Windows, Linux en macOS, hoe u basis- en geavanceerde opdrachten uitvoert, hoe u inlogt (anoniem of met een account), hoe u servers installeert en valideert, hoe u taken automatiseert met scripts, hoe u downloads op meerdere platforms afdwingt en hoe u veelvoorkomende fouten oplost. Daarnaast integreer ik een praktijkcase met Palworld en ik beoordeel externe hulpprogramma's en scripts die uw leven gemakkelijker maken.

Wat is SteamCMD en waarvoor wordt het gebruikt?

Wat is SteamCMD

SteamCMD is de Steam-clientconsole: een headless applicatie die tekstopdrachten begrijpt. De primaire functie is het installeren en updaten van applicaties en dedicated servers die gebruikmaken van het SteamPipe-contentdistributiesysteem. Alle games die voorheen HLDSUpdateTool gebruikten, zijn gemigreerd naar SteamCMD, het is dus de officiële en door Valve ondersteunde manier om servers te beheren.

SteamCMD downloaden en installeren

Het proces verschilt per besturingssysteem, maar is in principe eenvoudig. Maak eerst een specifieke directory voor SteamCMD en werk van daaruit om alles georganiseerd te houden.

Windows

In Windows maakt u eenvoudigweg een map aan, downloadt u het officiële ZIP-bestand en pakt u het uit. Een voorbeeld van een handig pad is C:\\steamcmd.

1) Crea la carpeta, por ejemplo: C:\steamcmd
2) Descarga: http://media.steampowered.com/installer/steamcmd.zip
3) Extrae el ZIP dentro de C:\steamcmd

Linux

Op Linux is het raadzaam om eerst de 32-bitsbibliotheken te installeren, omdat SteamCMD een 32-bits binair bestand is. Specifieke pakketten zijn afhankelijk van de distributie..

Ubuntu/Debian 64-bit:
apt-get install lib32gcc1

RedHat/CentOS:
yum install glibc libstdc++

RedHat/CentOS 64-bit:
yum install glibc.i686 libstdc++.i686

Het is sterk aan te raden om een ​​speciale gebruiker aan te maken (bijvoorbeeld 'Steam') om de servers te installeren en te draaien. Start SteamCMD niet als wortel; is onnodig en kan problemen met toestemmingen veroorzaken.

# Como root, crea un usuario y su home (o usa sudo)
useradd -m steam
su - steam

# Crea el directorio de trabajo y entra en él
mkdir ~/steamcmd
cd ~/steamcmd

# Descarga y extrae SteamCMD
wget http://media.steampowered.com/installer/steamcmd_linux.tar.gz
tar -xvzf steamcmd_linux.tar.gz

macOS (OS X)

Op macOS is de flow vergelijkbaar: map, downloaden en uitpakken van terminal. Gebruik curl om het installatieprogramma te openen.

mkdir ~/steamcmd
cd ~/steamcmd
curl -O http://media.steampowered.com/client/installer/steamcmd_osx.tar.gz
tar -xvzf steamcmd_osx.tar.gz

Hoe SteamCMD uit te voeren

In eerste instantie Boot De tool wordt automatisch bijgewerkt en laat u achter bij de Steam>-prompt. Typ help om de beschikbare opdrachten te zien en begin je te oriënteren.

Windows

Navigeer vanuit de Windows-console naar de map waar u het bestand hebt uitgepakt en voer het uit. De basiscommando's zijn eenvoudig:

cd C:\steamcmd
steamcmd

Linux en macOS

In typesystemen Unix, ga naar de werkmap en start de script. Vergeet niet om ./ voor het uitvoerbare bestand te gebruiken:

cd ~/steamcmd
./steamcmd.sh

SteamCMD-inlog

Met SteamCMD kunt u op twee manieren inloggen: anoniem of met Steam-inloggegevens. Veel apps van de server worden in anonieme modus gedownload, Maar niet alles.

Anonieme toegang

Voor servers die dit toestaan, is de snelste: anoniem inloggen.

login anonymous

Meld je aan met je Steam-account

Sommige servers vereisen authenticatie en soms een game-aankoop. Log in die gevallen in met je gebruikersnaam. Om veiligheidsredenen raden wij u aan om een ​​secundair account alleen voor servers aan te maken. en vermijd het gebruik van uw persoonlijke account voor games.

login <tu_usuario>

Voer je wachtwoord in wanneer daarom wordt gevraagd. Als je Steam Guard hebt, ontvang je een code per e-mail. Deze moet je de eerste keer invoeren (of als je de bestanden verwijdert waarin SteamCMD je inloggegevens opslaat). Houd er rekening mee dat u met een account maar op één plek tegelijk kunt inloggen., hetzij in de grafische client of in SteamCMD.

  Voicechat gebruiken in Fortnite voor mobiel

Servers installeren en updaten met SteamCMD

De gebruikelijke werkwijze is: inloggen, installatiemap kiezen en app_update gebruiken met de app-ID. U kunt ook bestanden valideren en bètatakken kiezen. als ze beschikbaar zijn.

Definieer eerst de doelmap (normale slash op Linux/macOS en backslash op Windows): force_install_dir

# Ejemplo: subcarpeta "cs_go" en el directorio actual
force_install_dir ./cs_go/

Voer vervolgens de installatie uit of werk bij met app_update. U kunt validate toevoegen om de integriteit te controleren en -beta met -betapassword als u een beveiligde branch nodig hebt. De algemene syntaxis is als volgt:

app_update <app_id> [-beta <rama_beta>] [-betapassword <clave>] [validate]

HLDS is een speciaal geval: de app-ID is altijd 90 en u moet de mod selecteren met app_set_config voordat u de update uitvoert. De in te stellen parameter is mod:

app_set_config <app_id> <opcion> <valor>

Enkele veelgebruikte praktijkvoorbeelden. CS:GO toegewijd:

app_update 740 validate

HLDS met Team Fortress Classic:

app_set_config 90 mod tfc
app_update 90 validate

Houd er rekening mee dat HLDS (appid 90) het mogelijk vereist dat u app_update meerdere keren uitvoert voordat alle benodigde bestanden zijn gedownload. Herhaal app_update 90 tot er geen updates meer zijn..

HLDS (Half-Life) in bèta:

app_update 90 -beta beta validate

Counter-Strike: Bron toegewezen (prerelease-tak):

app_update 232330 -beta prerelease validate

Natuurlijke selectie 2 toegewijd in private bèta (tak "alfa", code "natsel"):

app_update 4940 -beta alpha -betapassword natsel validate

Wanneer u klaar bent, logt u op de juiste manier uit met: ophouden.

quit

Bestandsvalidatie

Met de schakelaar valideren wordt gecontroleerd of alle bestanden overeenkomen met de officiële bestanden. Het is handig als u vermoedt dat er sprake is van: corrupte bestanden of ontbrekend na een mislukking.

Let op: bij validatie worden gewijzigde bestanden overschreven ten opzichte van de standaardstatus. Als u bijvoorbeeld mapcycle.txt hebt aangepast, wordt de originele versie hersteld. Bestanden die niet tot de standaardinstallatie behoren, blijven onaangetast.

SteamCMD automatiseren

U kunt taken automatiseren door opdrachten op de opdrachtregel samen te voegen of via scripts met +runscript. Vervang steamcmd op Linux en macOS door ./steamcmd.sh in de voorbeelden.

Vanaf de opdrachtregel

Om meerdere acties aan elkaar te koppelen, laat u elke instructie voorafgaan door een +. Er is één bijzonderheid met bèta-branches in de CLI: moet tussen speciale aanhalingstekens worden geplaatst indien doorgegeven binnen app_update.

Voorbeeld voor speciale CS:GO met aangepast installatiepad: met anonieme login

steamcmd +login anonymous +force_install_dir ../csgo_ds +app_update 740 +quit

Om een ​​HL1-mod zoals Condition Zero te installeren, moet je eerst de mod vastpinnen: gebruik app_set_config 90 mod czero

steamcmd +login anonymous +force_install_dir ../czero +app_set_config 90 mod czero +app_update 90 +quit

Als het spel inloggen vereist, geef dan de gebruikersnaam en het wachtwoord in de volgende volgorde op: voorbeeld met Killing Floor

steamcmd +login <usuario> <contraseña> +force_install_dir c:\KFServer\ +app_update 215350 +quit

Probeer op bètatakken in de CLI formaten zoals: +app_update «90 -beta bèta» of «+app_update 90 -beta bèta» als de eerste niet werkt.

  Zynga kondigt sluiting van Star Wars: Hunters-servers aan

Met een script

Zet je SteamCMD-opdrachten in een tekstbestand en voer ze uit met +runscript. U kunt opmerkingen toevoegen met // in het script zelf.

steamcmd +runscript csgo_ds.txt

Downloaden op meerdere platforms

Met SteamCMD kun je het doelplatform forceren met de variabele @sSteamCmdForcePlatformType. Ondersteunde waarden zijn onder andere Windows, macOS en Linux. Ja, de variabele begint met twee s-letters: @sSteamCmd…

# Ejemplo: descargar el servidor dedicado de CS:GO para Windows desde Linux
./steamcmd.sh +@sSteamCmdForcePlatformType windows +login anonymous +force_install_dir ../csgo_ds +app_update 740 validate +quit

Software en hulpprogramma's voor Windows

Er zijn tools die als brug of interface over SteamCMD fungeren. Enkele van de meest gebruikte in Windows zijn::

  • condensator: bootstrapper voor het installeren, configureren en starten van speciale Steam-servers.
  • SteamCMD-GUI: Een grafische interface voor het gebruik van SteamCMD zonder bat of commando's. Repository: https://github.com/DioJoestar/SteamCMD-GUI
  • SteamCMD Guardian 1.2: hulpprogramma's en scripts; downloaden op: http://pastebin.com/BRUbsGQh

Nuttige scripts voor Linux

Als u met Linux werkt, zijn er projecten die het serverbeheer automatiseren. Hoogtepunten Linux Game Server Managers (LGSM), een set CLI-scripts voor het snel implementeren en beheren van servers.

Tot zijn functies behoren onder meer: SteamCMD-installatieprogramma, starten/stoppen/herstarten, updaten, monitor met e-mailmeldingen, back-ups en serverconsole.

LGSM ondersteunt een breed scala aan spellen, zoals ARMA 3, Blade Symphony, Counter-Strike (verschillende edities), Day of Defeat, Fistful of Frags, Garry's Mod, Half-Life DM Classic, HL2 DM, Insurgency, Just Cause 2, Killing Floor, Left 4 Dead (1 en 2), No More Room in Hell, Natural Selection 2, Red Orchestra: Ostfront 41-45, Team Fortress (verschillende edities), en nog veel meer.

Meer informatie en volledige lijst: http://danielgibbs.co.uk/lgsm — repository op GitHub: https://github.com/dgibbs64/linuxgameservers

Er is ook een script genaamd SteamCMD Guardian 1.2, getest op Debian Wheezy. Je kunt het bekijken en downloaden op: http://pastebin.com/hcpMpmaZ

Typische installatie (sessie onder een speciale gebruiker, bijvoorbeeld Steam): maak het bestand aan en bewerk het

  1. Maak het bestand: nano updateserver.sh
  2. Plak de meegeleverde code.
  3. Pas de inhoud aan en voeg minimaal één spel toe in de regels DL_SV*=.
  4. Bespaar met Ctrl + A, druk op Enter en ga met Ctrl + X.
  5. Uitvoeringsrechten verlenen: chmod u+x ./updateserver.sh
  6. Rennen: ./updateserver.sh

Met dit script wordt SteamCMD gedownload (indien nog niet geïnstalleerd), bijgewerkt en worden de gekozen servers geïnstalleerd (maximaal 4 tegelijk). Wanneer u het programma opnieuw opstart, worden de reeds geïnstalleerde spellen bijgewerkt. automatisch.

Veelvoorkomende fouten en hoe u ze kunt oplossen

Zoals bij elk gereedschap zijn er typische incidenten die genoteerd moeten worden. Dit zijn de meest voorkomende en hun oplossingen.

FOUT! App 'xxxxxx' kan niet worden geïnstalleerd (geen abonnement)

Deze melding geeft aan dat de server die je probeert te downloaden een login vereist of dat je de game hebt gekocht. Probeer in te loggen met een Steam-account. Als dat niet werkt, koop dan de game. Maak voor de veiligheid een specifiek account aan voor dedicated servers en vermijd het gebruik van de persoonlijke.

32-bits bibliotheken op 64-bits Linux

Omdat SteamCMD 32-bits is, zijn er equivalente bibliotheken nodig. De typische fout is: libstdc++.so.6: kan gedeeld objectbestand niet openenInstalleer de juiste pakketten voor uw distributie.

Debian/Ubuntu (y derivadas):
apt-get install lib32gcc1
# Nota: no hace falta ia32-libs; lib32gcc1 basta.
# En Debian 7 "Wheezy" puedes toparte con dependencias no satisfechas para ia32-libs.

Red Hat/Fedora/CentOS:
yum install glibc.i686 libstdc++.i686

Arch Linux (activa multilib primero):
pacman -S lib32-gcc-libs

Aanmelding mislukt: geen verbinding

Op Linux vereisen sommige servers de juiste iptables-regels om in te loggen. Controleer de poorten op: https://support.steampowered.com/kb_article.php?ref=8571-GLVN-8711&l=english en voegt de nodige regels toe.

Als u op Windows fouten ziet zoals "SteamUpdater: Fout: Downloaden mislukt: http-fout 0" of "Steam moet online zijn om te kunnen updaten", kunt u deze meestal oplossen door automatische detectie in te schakelen. Internet Explorer (Internetopties > Verbindingen > LAN-instellingen). Stappen:

  1. Internet Explorer openen.
  2. Extra → Internetopties.
  3. Tabblad Verbindingen.
  4. Tik onder LAN-instellingen (Local Area Network) op Instellingen.
  5. Merk "Instellingen automatisch detecteren".
  6. Accepteren en toepassen. Als het probleem aanhoudt, verlaag dan het beveiligingsniveau naar medium of lager.
  10 beste Xbox 360-emulators voor Windows-pc

SteamCMD opstartfouten

Op Linux kunt u het volgende zien: [S_API FAIL] SteamAPI_Init() is mislukt; kan geen actief Steam-exemplaar of een lokale steamclient.dll vindenOplossing: koppel steamclient.so aan ~/.steam/sdk32/steamclient.so.

ln -s steamcmd/linux32/steamclient.so ~/.steam/sdk32/steamclient.so

Sommige scripts geven een foutmelding met ulimit weer bij het opstarten (geen toestemming/kan bestand niet openen), veroorzaakt door een lage bestandsdescriptorlimiet (-n). Verhoog het naar een redelijke waarde:

ulimit -n 2048
# Comprueba con: ulimit -a  (busca: open files (-n) 1024)

Als u geen rechten hebt, log dan in als root om het te wijzigen of te bewerken /etc/security/limits.confIn veel gevallen ziet u alleen een waarschuwing en blijft SteamCMD werken.

Alleen de HLDS-engine wordt gedownload

Wanneer je een HL1-mod (zoals TFC) probeert te downloaden, is het normaal dat eerst alleen de engine-bestanden verschijnen. Blijf app_update meerdere keren uitvoeren totdat alles is gedownload. Er is hier een gedocumenteerde oplossing: http://danielgibbs.co.uk/2013/11/hlds-steamcmd-workaround-appid-90/

Een andere optie is om het appmanifest te verwijderen en SteamCMD het opnieuw te laten genereren. Je ziet dan eerst een foutmelding, maar die lost zich meestal vanzelf op. Houd er rekening mee dat CS soms ook wordt geïnstalleerd. zelfs als je er niet om vraagt.

Casestudy: Palworld Dedicated Server op Windows

Op een Windows-computer kunt u de Palworld-server vrij eenvoudig implementeren met SteamCMD. Het werkt door anoniem in te loggen en de juiste App-ID te gebruiken.

Basisinstallatie: voer SteamCMD.exe uit (laat de standaardmap voor het gemak staan; SteamCMD's eigen steamapps worden geïnstalleerd) en plak deze opdracht: zal PalServer downloaden en valideren

login anonymous +app_update 2394010 validate +quit

De bestanden worden opgeslagen op: …/SteamCMD/steamapps/common/PalServerDaar heb je PalServer.exe. Je kunt het zo uitvoeren, maar zonder configuratie kun je niet deelnemen. Start het één keer op om de configuratie te genereren en sluit het.

Ga naar Pal > Opgeslagen > Configuratie > WindowsServer en open PalWorldSettings.ini. Als deze nog niet bestaat, maak deze dan aan nadat u de server eenmaal hebt uitgevoerd. Plak de volgende regel op één regel (zonder onderbrekingen of extra spaties) en vervang de gemarkeerde waarden door uw eigen:

[/Script/Pal.PalGameWorldSettings]OptionSettings=(Difficulty=None,DayTimeSpeedRate=1.000000,NightTimeSpeedRate=1.000000,ExpRate=1.000000,PalCaptureRate=1.000000,PalSpawnNumRate=1.000000,PalDamageRateAttack=1.000000,PalDamageRateDefense=1.000000,PlayerDamageRateAttack=1.000000,PlayerDamageRateDefense=1.000000,PlayerStomachDecreaceRate=1.000000,PlayerStaminaDecreaceRate=1.000000,PlayerAutoHPRegeneRate=1.000000,PlayerAutoHpRegeneRateInSleep=1.000000,PalStomachDecreaceRate=1.000000,PalStaminaDecreaceRate=1.000000,PalAutoHPRegeneRate=1.000000,PalAutoHpRegeneRateInSleep=1.000000,BuildObjectDamageRate=1.000000,BuildObjectDeteriorationDamageRate=1.000000,CollectionDropRate=1.000000,CollectionObjectHpRate=1.000000,CollectionObjectRespawnSpeedRate=1.000000,EnemyDropItemRate=1.000000,DeathPenalty=All,bEnablePlayerToPlayerDamage=False,bEnableFriendlyFire=False,bEnableInvaderEnemy=True,bActiveUNKO=False,bEnableAimAssistPad=True,bEnableAimAssistKeyboard=False,DropItemMaxNum=3000,DropItemMaxNum_UNKO=100,BaseCampMaxNum=128,BaseCampWorkerMaxNum=15,DropItemAliveMaxHours=1.000000,bAutoResetGuildNoOnlinePlayers=False,AutoResetGuildTimeNoOnlinePlayers=72.000000,GuildPlayerMaxNum=20,PalEggDefaultHatchingTime=72.000000,WorkSpeedRate=1.000000,bIsMultiplay=False,bIsPvP=False,bCanPickupOtherGuildDeathPenaltyDrop=False,bEnableNonLoginPenalty=True,bEnableFastTravel=True,bIsStartLocationSelectByMap=True,bExistPlayerAfterLogout=False,bEnableDefenseOtherGuildPlayer=False,CoopPlayerMaxNum=4,ServerPlayerMaxNum=32,ServerName="xxxx",ServerDescription="",AdminPassword="",ServerPassword="",PublicPort=8211,PublicIP="xx.xxx.xxx.xxx",RCONEnabled=False,RCONPort=25575,Region="",bUseAuth=True,BanListURL="https://api.palworldgame.com/api/banlist.txt")

Aanpassen: ServerName (zichtbare naam), PubliekIP (uw openbare IPv4: zoek het op in Google (met "wat is mijn IP") en wachtwoorden als je wilt. Behoud poort 8211, tenzij je een reden hebt om deze te wijzigen. Openen en omleiden in uw router poorten 8211 en 27015.

Als uw router om een ​​interne host vraagt, gebruik dan uw privé-IP (ipconfig in CMD, gebruikt IPv4). Zorg ervoor dat u de INI opslaat terwijl de server gestopt is. Start PalServer.exe en maak verbinding met uw openbare IP met poort op de client: formaat xxx.xxx.xxx.xxx:8211.

Deze procedure heeft gewerkt voor de persoon die het deelde en zou ook geldig moeten zijn voor andere omgevingen. Vergeet niet om het systeem en de firewall van de router te controleren. als je het van buitenaf niet zichtbaar kunt maken.