- Pinamamahalaan ng SteamCMD ang pag-install at pag-update ng mga dedikadong server gamit ang SteamPipe at pinapalitan ang lumang HLDUpdateTool.
- Nagbibigay-daan sa anonymous o pagpapatotoo ng account, sumusuporta sa mga beta branch, at pagpapatunay ng file upang matiyak ang integridad.
- Sinusuportahan ang CLI at script automation, pati na rin descargas tumawid sa @sSteamCmdForcePlatformType.
- May kasamang mga pag-aayos para sa mga karaniwang bug (32-bit libs, login, ulimit) at mga utility tulad ng LGSM at SteamCMD GUI.
Kung gusto mong mag-set up o magpanatili ng mga nakalaang server ng laro gamit ang imprastraktura ng Valve, maaga o huli ay makikita mo ang SteamCMD. Ang utility na ito ay ang online na bersyon ng comandos ng kliyente ng Steam at naging karaniwang tool para sa pag-download, pag-install, at pag-update ng mga server. Dahil pinalitan ng SteamPipe ang lumang HLDUpdateTool, halos lahat ng mga pamagat na sumusuporta sa mga dedikadong server ay dumarating dito.
Sa kumpletong gabay na ito, ipinapaliwanag ko, nang detalyado, kung paano mag-download ng SteamCMD sa Windows, Linux at macOS, kung paano magpatakbo ng mga basic at advanced na command, mag-log in (nang hindi nagpapakilala o gamit ang isang account), mag-install at mag-validate ng mga server, i-automate ang mga gawain gamit ang mga script, pilitin ang mga cross-platform na pag-download, at kung paano lutasin ang mga karaniwang error. Bilang karagdagan, isinasama ko ang isang praktikal na kaso sa Palworld at sinusuri ko ang mga panlabas na kagamitan at script na nagpapadali sa iyong buhay.
Ano ang SteamCMD at para saan ito ginagamit?

Ang SteamCMD ay ang Steam client console: isang walang ulo na application na nauunawaan ang mga text command. Ang pangunahing tungkulin nito ay mag-install at mag-update ng mga application at mga dedikadong server na gumagamit ng sistema ng pamamahagi ng nilalaman ng SteamPipe. Lahat ng laro na dating gumamit ng HLDUpdateTool ay lumipat sa SteamCMD, kaya ito ang opisyal at suportado ng Valve na paraan upang pamahalaan ang mga server.
I-download at i-install ang SteamCMD
Ang proseso ay nag-iiba depende sa operating system, ngunit ito ay palaging simple. Lumikha muna ng isang tukoy na direktoryo para sa SteamCMD at magtrabaho mula doon upang mapanatiling maayos ang lahat.
Windows
Sa Windows, maghanda lamang ng isang folder, i-download ang opisyal na ZIP, at i-extract ito. Ang isang halimbawa ng isang maginhawang landas ay 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
Sa Linux, ipinapayong i-install muna ang 32-bit na mga aklatan, dahil ang SteamCMD ay isang 32-bit na binary. Ang mga partikular na pakete ay nakasalalay sa pamamahagi..
Ubuntu/Debian 64-bit:
apt-get install lib32gcc1
RedHat/CentOS:
yum install glibc libstdc++
RedHat/CentOS 64-bit:
yum install glibc.i686 libstdc++.i686
Lubos na inirerekomendang lumikha ng isang dedikadong user (hal., “steam”) para i-install at patakbuhin ang mga server. Huwag ilunsad ang SteamCMD bilang ugat; ay hindi kailangan at maaaring magdulot ng mga isyu sa pahintulot.
# 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)
Sa macOS ang daloy ay magkatulad: folder, i-download at i-extract mula sa Pandulo. Gumamit ng curl upang ilabas ang installer.
mkdir ~/steamcmd
cd ~/steamcmd
curl -O http://media.steampowered.com/client/installer/steamcmd_osx.tar.gz
tar -xvzf steamcmd_osx.tar.gz
Paano patakbuhin ang SteamCMD
Noong una boot Ang tool ay nag-a-update mismo at iniiwan ka sa Steam> prompt. I-type ang tulong para makita ang mga available na command at simulan ang pagkuha ng iyong bearings.
Windows
Mula sa Windows console, mag-navigate sa folder kung saan mo ito na-unzip at patakbuhin ito. Ang mga pangunahing utos ay diretso:
cd C:\steamcmd
steamcmd
Linux at macOS
Sa mga sistema ng uri Unix, ipasok ang gumaganang direktoryo at ilunsad ang script. Tandaang gamitin ang ./ sa harap ng executable:
cd ~/steamcmd
./steamcmd.sh
Pag-login sa SteamCMD
Pinapayagan ka ng SteamCMD na mag-log in sa dalawang paraan: nang hindi nagpapakilala o may mga kredensyal sa Steam. marami app mula sa server ay nai-download sa anonymous mode, ngunit hindi lahat.
Anonymous na pag-access
Para sa mga server na nagpapahintulot nito, ang pinakamabilis ay: anonymous ang pag-login.
login anonymous
Mag-login gamit ang iyong Steam account
Ang ilang mga server ay nangangailangan ng pagpapatunay at, kung minsan, isang pagbili ng laro. Sa mga kasong iyon, mag-log in gamit ang iyong username. Para sa seguridad, inirerekumenda na lumikha ng pangalawang account para lamang sa mga server. at iwasang gamitin ang iyong personal na account para sa mga laro.
login <tu_usuario>
Ipasok ang iyong password kapag sinenyasan. Kung mayroon kang Steam Guard, makakatanggap ka ng code sa pamamagitan ng email at kakailanganin mong ilagay ito sa unang pagkakataon (o kung tatanggalin mo ang mga file kung saan sine-save ng SteamCMD ang iyong impormasyon sa pag-login). Pakitandaan na ang isang account ay maaari lamang mag-log in sa isang lugar sa isang pagkakataon., alinman sa graphical na kliyente o sa SteamCMD.
Pag-install at Pag-update ng mga Server gamit ang SteamCMD
Ang karaniwang daloy ay: mag-log in, pumili ng folder ng pag-install at gumamit ng app_update kasama ang App ID. Maaari mo ring i-validate ang mga file at pumili ng mga beta branch. kung sila ay magagamit.
Una, tukuyin ang direktoryo ng patutunguhan (normal na slash sa Linux/macOS at backslash sa Windows): force_install_dir
# Ejemplo: subcarpeta "cs_go" en el directorio actual
force_install_dir ./cs_go/
Pagkatapos, patakbuhin ang pag-install o pag-update gamit ang app_update. Maaari kang magdagdag ng validate upang suriin ang integridad, at -beta sa -betapassword kung kailangan mo ng protektadong sangay. Ang pangkalahatang syntax ay ito:
app_update <app_id> [-beta <rama_beta>] [-betapassword <clave>] [validate]
Ang HLDS ay isang espesyal na kaso: ang App ID nito ay palaging 90 at kailangan mong piliin ang mod na may app_set_config bago mag-update. Ang parameter na itatakda ay mod:
app_set_config <app_id> <opcion> <valor>
Ilang malawakang ginagamit na praktikal na mga halimbawa. Nakatuon ang CS: GO:
app_update 740 validate
HLDS kasama ang Team Fortress Classic:
app_set_config 90 mod tfc
app_update 90 validate
Pakitandaan na ang HLDS (appid 90) ay maaaring mangailangan ng pagpapatakbo ng app_update nang maraming beses hanggang sa ma-download nito ang lahat ng kinakailangang file. Ulitin ang app_update 90 validate hanggang wala nang mga update..
HLDS (Half-Life) sa beta:
app_update 90 -beta beta validate
Counter-Strike: Nakalaan ang pinagmulan (sangay ng paunang pagpapalabas):
app_update 232330 -beta prerelease validate
Natural Selection 2 na nakatuon sa pribadong beta (branch "alpha", code "natsel"):
app_update 4940 -beta alpha -betapassword natsel validate
Kapag tapos ka na, mag-log out nang maayos gamit ang: umalis.
quit
Pagpapatunay ng file
Pinipilit ng validate switch na suriin na ang lahat ng mga file ay tumutugma sa mga opisyal. Ito ay kapaki-pakinabang kung pinaghihinalaan mo na mayroon sira mga file o nawawala pagkatapos ng kabiguan.
Tandaan: Ino-overwrite ng validation ang mga binagong file na may kinalaman sa default na estado. Kung na-customize mo, halimbawa, ang mapcycle.txt, ibabalik ang orihinal na bersyon. Ang mga file na hindi bahagi ng default na pag-install ay hindi magagalaw.
I-automate ang SteamCMD
Maaari mong i-automate ang mga gawain sa pamamagitan ng pagsasama-sama ng mga command sa command line o sa pamamagitan ng mga script na may +runscript. Sa Linux at macOS palitan ang steamcmd ng ./steamcmd.sh sa mga halimbawa.
Mula sa linya ng utos
Upang i-chain ang maraming pagkilos, unahan ang bawat pagtuturo ng +. Mayroong isang kakaiba sa mga beta branch sa CLI: dapat na nakapaloob sa mga espesyal na panipi kung naipasa sa loob ng app_update.
Halimbawa para sa nakatuong CS:GO na may custom na landas sa pag-install: na may hindi kilalang pag-login
steamcmd +login anonymous +force_install_dir ../csgo_ds +app_update 740 +quit
Upang mag-install ng HL1 mod tulad ng Condition Zero, tandaan na i-pin muna ang mod: gumamit ng app_set_config 90 mod czero
steamcmd +login anonymous +force_install_dir ../czero +app_set_config 90 mod czero +app_update 90 +quit
Kung ang laro ay nangangailangan ng pag-login, ipasa ang username at password sa pagkakasunud-sunod: halimbawa sa Killing Floor
steamcmd +login <usuario> <contraseña> +force_install_dir c:\KFServer\ +app_update 215350 +quit
Sa mga beta branch sa CLI, subukan ang mga format tulad ng: +app_update «90 -beta beta» o «+app_update 90 -beta beta» kung ang una ay hindi gumagana.
May script
Ilagay ang iyong mga SteamCMD command sa isang text file at patakbuhin ang mga ito gamit ang +runscript. Maaari kang magdagdag ng mga komento na may // sa mismong script.
steamcmd +runscript csgo_ds.txt
Cross platform download
Pinapayagan ka ng SteamCMD na pilitin ang target na platform gamit ang variable na @sSteamCmdForcePlatformType. Kasama sa mga sinusuportahang value ang Windows, macOS, at Linux. Oo, ang variable ay nagsisimula sa dalawang s titik: @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 at mga utility para sa Windows
May mga tool na nagsisilbing tulay o interface sa SteamCMD. Ang ilan sa mga pinaka ginagamit sa Windows ay:
- pampalapot: bootstrapper para sa pag-install, pag-configure, at paglunsad ng mga nakalaang Steam server.
- SteamCMD GUI: Isang graphical na interface para sa paggamit ng SteamCMD nang walang bat o command. Imbakan: https://github.com/DioJoestar/SteamCMD-GUI
- Tagapangalaga ng SteamCMD 1.2: mga utility at script; i-download sa: http://pastebin.com/BRUbsGQh
Mga kapaki-pakinabang na script para sa Linux
Kung nagtatrabaho ka sa Linux, may mga proyekto na nag-automate ng pamamahala ng server. Mga Highlight sa Linux Game Server Managers (LGSM), isang set ng mga CLI script para sa mabilis na pag-deploy at pamamahala ng mga server.
Kabilang sa mga pag-andar nito: SteamCMD installer, simulan/stop/restart, i-update, subaybayan gamit ang mga alerto sa email, backup at server console.
Sinusuportahan ng LGSM ang maraming uri ng mga laro, gaya ng ARMA 3, Blade Symphony, Counter-Strike (iba't ibang mga edisyon), Araw ng Pagkatalo, Fistful of Frags, Garry's Mod, Half-Life DM Classic, HL2 DM, Insurgency, Just Cause 2, Killing Floor, Left 4 Dead (1 at 2), No More Room in Hell, Natural Selection 2, Red Orchestra: Ostfront 41-45, Team Fortress (iba't ibang edisyon), bukod sa iba pa.
Higit pang impormasyon at kumpletong listahan: http://danielgibbs.co.uk/lgsm — imbakan sa GitHub: https://github.com/dgibbs64/linuxgameservers
Mayroon ding script na tinatawag Tagapangalaga ng SteamCMD 1.2, nasubok sa Debian Wheezy. Maaari mong tingnan at i-download ito sa: http://pastebin.com/hcpMpmaZ
Karaniwang pag-install (session sa ilalim ng dedikadong user, halimbawa steam): lumikha ng file at i-edit ito
- Lumikha ng file:
nano updateserver.sh - Idikit ang ibinigay na code.
- Ayusin ang nilalaman at magdagdag ng hindi bababa sa isang laro sa mga linya DL_SV*=.
- I-save gamit ang Ctrl + O, pindutin Magpasok at lumabas kasama Ctrl + X.
- Magbigay ng mga pahintulot sa pagpapatupad:
chmod u+x ./updateserver.sh - Patakbuhin:
./updateserver.sh
Ida-download ng script na ito ang SteamCMD kung hindi pa ito, i-update ito, at i-install ang mga napiling server (hanggang 4 sa isang pagkakataon). Kapag muling inilunsad, ina-update nito ang mga larong naka-install na. awtomatiko.
Mga karaniwang pagkakamali at kung paano ayusin ang mga ito
Tulad ng anumang tool, may mga tipikal na insidente na dapat tandaan. Ito ang mga pinaka-karaniwan at ang kanilang mga solusyon.
MALI! Nabigong i-install ang app na 'xxxxxx' (Walang subscription)
Ang mensaheng ito ay nagpapahiwatig na ang server na sinusubukan mong i-download ay nangangailangan ng pag-login o na binili mo ang laro. Subukang mag-log in gamit ang isang Steam account, at kung hindi iyon gumana, bilhin ang laro. Para sa seguridad, lumikha ng isang partikular na account para sa mga nakalaang server at iwasang gamitin ang personal.
32-bit na mga aklatan sa 64-bit na Linux
Dahil ang SteamCMD ay 32-bit, nangangailangan ito ng katumbas na libs. Ang karaniwang error ay: libstdc++.so.6: hindi mabuksan ang shared object file. I-install ang tamang mga pakete para sa iyong distro.
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
Pagkabigo sa Pag-login: Walang Koneksyon
Sa Linux, ang ilang mga server ay nangangailangan ng naaangkop na mga panuntunan sa iptables para gumana ang pag-login. Suriin ang mga port sa: https://support.steampowered.com/kb_article.php?ref=8571-GLVN-8711&l=english at idinagdag ang mga kinakailangang tuntunin.
Sa Windows, kung makakita ka ng mga error tulad ng "SteamUpdater: Error: Nabigo ang pag-download: http error 0" o "Kailangang online ang Steam upang mag-update", kadalasan ay maaari itong ayusin sa pamamagitan ng pagpapagana ng awtomatikong pagtuklas sa Internet Explorer (Internet Options > Connections > LAN Settings). Mga hakbang:
- Buksan ang Internet Explorer.
- Mga Tool → Mga Pagpipilian sa Internet.
- Tab ng mga koneksyon.
- Sa ilalim ng Mga Setting ng Local Area Network (LAN), i-tap ang Mga Setting.
- tatak "Awtomatikong makita ang mga setting".
- Tanggapin at ilapat. Kung magpapatuloy ang problema, ibaba ang antas ng seguridad sa katamtaman o mas mababa.
Mga error sa pagsisimula ng SteamCMD
Sa Linux maaari mong makita ang: [S_API FAIL] SteamAPI_Init() failed; hindi mahanap ang isang tumatakbong instance ng Steam, o isang lokal na steamclient.dll. Solusyon: I-link ang steamclient.so sa ~/.steam/sdk32/steamclient.so.
ln -s steamcmd/linux32/steamclient.so ~/.steam/sdk32/steamclient.so
Ang ilang mga script ay nagpapakita ng isang error na may ulimit sa startup (walang pahintulot/hindi mabuksan ang file), sanhi ng mababang limitasyon ng descriptor ng file (-n). Itaas ito sa isang makatwirang halaga:
ulimit -n 2048
# Comprueba con: ulimit -a (busca: open files (-n) 1024)
Kung wala kang mga pahintulot, mag-log in bilang root upang baguhin ito o i-edit /etc/security/limits.confSa maraming kaso, makakakita ka lang ng babala at patuloy na gagana ang SteamCMD.
Tanging ang HLDS engine lamang ang na-download
Kapag sinusubukang mag-download ng HL1 mod (tulad ng TFC), normal lang na ang engine file lang ang lalabas sa una. Patuloy na patakbuhin ang app_update nang maraming beses hanggang sa ma-download ang lahat. Mayroong isang dokumentadong workaround dito: http://danielgibbs.co.uk/2013/11/hlds-steamcmd-workaround-appid-90/
Ang isa pang pagpipilian ay tanggalin ang appmanifest at hayaan ang SteamCMD na muling buuin ito. Makakakita ka ng error sa una, ngunit kadalasan ay nalulutas ito. Tandaan na minsan ay naka-install din ang CS kahit hindi mo hilingin.
Pag-aaral ng Kaso: Palworld Dedicated Server sa Windows
Sa isang Windows machine, maaari mong i-deploy ang Palworld server gamit ang SteamCMD nang diretso. Gumagana ito sa pamamagitan ng pag-log in nang hindi nagpapakilala at paggamit ng naaangkop na App ID.
Base installation: patakbuhin ang SteamCMD.exe (iwanan ang default na direktoryo para sa pagiging simple; i-install nito ang sariling steamapps ng SteamCMD) at i-paste ang command na ito: ay magda-download at magpapatunay ng PalServer
login anonymous +app_update 2394010 validate +quit
Ang mga file ay maiimbak sa: …/SteamCMD/steamapps/common/PalServerMayroon kang PalServer.exe; maaari mo itong patakbuhin bilang ay, ngunit walang configuration hindi ka makakasali. I-boot ito nang isang beses upang makabuo ng configuration at isara ito.
Pumunta sa Pal > Saved > Config > WindowsServer at buksan ang PalWorldSettings.ini. Kung hindi ito umiiral, gawin ito pagkatapos patakbuhin ang server nang isang beses. I-paste ang sumusunod na linya sa isang linya (nang walang mga break o dagdag na espasyo) at palitan ang mga minarkahang halaga ng iyong sarili:
[/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")
I-customize: Pangalan ng server (nakikitang pangalan), PublicIP (iyong pampublikong IPv4: hanapin ito sa Google na may "ano ang aking IP") at mga password kung gusto mo. Panatilihin ang port 8211 maliban kung mayroon kang dahilan upang baguhin ito. Buksan at i-redirect sa iyong router port 8211 at 27015.
Kung humingi ang iyong router ng internal host, gamitin ang iyong pribadong IP (ipconfig in CMD, kumukuha ng IPv4). Tiyaking i-save ang INI nang huminto ang server. Simulan ang PalServer.exe at kumonekta gamit ang iyong pampublikong IP na may port sa kliyente: format na xxx.xxx.xxx.xxx:8211.
Ang pamamaraang ito ay gumana para sa taong nagbahagi nito at dapat na wasto para sa iba pang mga kapaligiran. Tandaan na suriin ang system at router firewall. kung hindi mo magawang makita ito mula sa labas.
Masigasig na manunulat tungkol sa mundo ng mga byte at teknolohiya sa pangkalahatan. Gustung-gusto kong ibahagi ang aking kaalaman sa pamamagitan ng pagsusulat, at iyon ang gagawin ko sa blog na ito, ipakita sa iyo ang lahat ng mga pinaka-kagiliw-giliw na bagay tungkol sa mga gadget, software, hardware, teknolohikal na uso, at higit pa. Ang layunin ko ay tulungan kang mag-navigate sa digital na mundo sa simple at nakakaaliw na paraan.