- SteamCMD 使用 SteamPipe 管理專用伺服器的安裝和更新,並取代舊的 HLDSUpdateTool。
- 允許匿名或帳戶身份驗證,支援測試分支和文件驗證以確保完整性。
- 支援 CLI 和腳本自動化,以及 下載 與@sSteamCmdForcePlatformType 交叉。
- 包括常見錯誤(32 位元庫、登入、ulimit)和 LGSM 和 SteamCMD GUI 等實用程式的修復。
如果您想使用 Valve 的基礎設施來設定或維護專用遊戲伺服器,您遲早會遇到 SteamCMD。這款實用程式是 SteamCMD 的線上版本 命令 客戶的 蒸汽 並已成為下載、安裝和更新伺服器的標準工具。 由於 SteamPipe 取代了舊的 HLDSUpdateTool,幾乎所有支援專用伺服器的標題都通過這裡。
在本完整指南中,我詳細解釋瞭如何在 Windows, Linux 和 macOS,如何運行基本和高級命令、登入(匿名或使用帳戶)、安裝和驗證伺服器、使用腳本自動執行任務、強制跨平台下載以及如何解決常見錯誤。 此外,我還結合了 Palworld 的實際案例 我會審查一些外部實用程式和腳本,讓您的生活更輕鬆。
SteamCMD 是什麼以及它有什麼用途?

SteamCMD 是 Steam 用戶端控制台:一個可以理解文字命令的無頭應用程式。其主要功能是安裝和更新使用 SteamPipe 內容分發系統的應用程式和專用伺服器。 所有先前使用 HLDSUpdateTool 的遊戲都已遷移至 SteamCMD,因此它是 Valve 支援的官方伺服器管理方式。
下載並安裝 SteamCMD
這個過程根據作業系統的不同而有所不同,但總是很簡單。 首先為SteamCMD建立特定的目錄 並從那裡開始努力使一切井然有序。
Windows
在 Windows 上,只需準備一個資料夾,下載官方 ZIP,然後解壓縮。 一個方便的路徑範例是 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
在 Linux 上,建議先安裝 32 位元函式庫,因為 SteamCMD 是 32 位元二進位檔案。 具體的軟體包取決於發行版。.
Ubuntu/Debian 64-bit:
apt-get install lib32gcc1
RedHat/CentOS:
yum install glibc libstdc++
RedHat/CentOS 64-bit:
yum install glibc.i686 libstdc++.i686
強烈建議創建專用用戶(例如“steam”)來安裝和運行伺服器。 不要以以下方式啟動 SteamCMD 根;是不必要的,並且可能會導致權限問題。
# 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)
在 macOS 上,流程類似:資料夾、下載並提取 終端. 使用 curl 啟動安裝程序.
mkdir ~/steamcmd
cd ~/steamcmd
curl -O http://media.steampowered.com/client/installer/steamcmd_osx.tar.gz
tar -xvzf steamcmd_osx.tar.gz
如何運行 SteamCMD
起初 開機 該工具會自動更新並讓您停留在 Steam> 提示符號處。 輸入 help 查看可用的指令 並開始找到方向。
Windows
從 Windows 控制台,導航到解壓縮的資料夾並運行它。 基本指令很簡單:
cd C:\steamcmd
steamcmd
Linux 和 macOS
在類型系統中 Unix的,進入工作目錄並啟動 腳本. 記得在可執行檔前面使用 ./:
cd ~/steamcmd
./steamcmd.sh
SteamCMD 登入
SteamCMD 讓您以兩種方式登入:匿名登入或使用 Steam 憑證登入。 許多 應用程序 從伺服器以匿名模式下載,但不是全部。
匿名訪問
對於允許的伺服器,最快的是: login anonymous.
login anonymous
使用您的 Steam 帳戶登入
某些伺服器需要身份驗證,有時還需要購買遊戲。在這種情況下,請使用您的使用者名稱登入。 為了安全起見,建議僅為伺服器建立輔助帳戶。 並避免使用您的個人帳戶進行遊戲。
login <tu_usuario>
出現提示時輸入密碼。如果您啟用了 Steam 令牌,您將收到一封電子郵件,並在第一次登入時輸入該密碼(或如果您刪除了 SteamCMD 儲存登入資訊的檔案)。 請注意,一個帳戶一次只能在一個地方登入。,無論是在圖形客戶端還是在 SteamCMD 中。
使用 SteamCMD 安裝和更新伺服器
典型流程是:登錄,選擇安裝資料夾並使用帶有 App ID 的 app_update。 您也可以驗證文件並選擇測試分支。 如果有的話。
首先,定義目標目錄(Linux/macOS 上為普通斜杠,Windows 上為反斜杠): 強制安裝目錄
# Ejemplo: subcarpeta "cs_go" en el directorio actual
force_install_dir ./cs_go/
然後,使用 app_update 執行安裝或更新。您可以新增 validate 來檢查完整性,如果需要受保護的分支,可以新增 -beta 和 -betapassword 。 一般文法如下:
app_update <app_id> [-beta <rama_beta>] [-betapassword <clave>] [validate]
HLDS 是一個特例:它的 App ID 始終為 90,您必須在更新之前使用 app_set_config 選擇模組。 要設定的參數是mod:
app_set_config <app_id> <opcion> <valor>
一些廣泛使用的實際例子。 CS:GO 專用:
app_update 740 validate
HLDS 與軍團要塞經典版:
app_set_config 90 mod tfc
app_update 90 validate
請注意,HLDS(appid 90)可能需要多次執行 app_update,直到下載所有必要的檔案。 重複 app_update 90 驗證,直到沒有更多更新。.
HLDS(半衰期)測試版:
app_update 90 -beta beta validate
《反恐精英:起源》專用版(預發布分支):
app_update 232330 -beta prerelease validate
Natural Selection 2 專用於私人測試版(分支“alpha”,代碼“natsel”):
app_update 4940 -beta alpha -betapassword natsel validate
完成後,請使用以下命令正確登出: 退出.
quit
文件驗證
驗證開關強制檢查所有文件是否與官方文件相符。 如果你懷疑有 損壞的文件 或缺失 失敗後。
注意:驗證將根據預設狀態覆寫已修改的檔案。 例如,如果您自訂了 mapcycle.txt,將恢復原始版本。預設安裝之外的檔案將保持不變。
自動化 SteamCMD
您可以透過在命令列上連接命令或透過帶有 +runscript 的腳本來自動執行任務。 在 Linux 和 macOS 上,將 steamcmd 替換為 ./steamcmd.sh 在例子中。
從命令行
若要連結多個操作,請在每個指令前面新增一個 +。 CLI 中的 beta 分支有一個特點: 必須用特殊引號括起來 如果在 app_update 中傳遞。
具有自訂安裝路徑的專用 CS:GO 範例: 使用匿名登入
steamcmd +login anonymous +force_install_dir ../csgo_ds +app_update 740 +quit
要安裝像 Condition Zero 這樣的 HL1 模組,請記得先固定該模組: 使用 app_set_config 90 mod czero
steamcmd +login anonymous +force_install_dir ../czero +app_set_config 90 mod czero +app_update 90 +quit
如果遊戲需要登錄,請依序傳遞使用者名稱和密碼: 以 Killing Floor 為例
steamcmd +login <usuario> <contraseña> +force_install_dir c:\KFServer\ +app_update 215350 +quit
在 CLI 中的 beta 分支上,請嘗試以下格式: +app_update «90 -beta beta» 或 «+app_update 90 -beta beta» 如果第一個不起作用。
使用腳本
將您的 SteamCMD 命令放入文字檔案中並使用 +runscript 運行它們。 您可以在腳本本身中新增帶有 // 的註釋.
steamcmd +runscript csgo_ds.txt
跨平台下載
SteamCMD 允許您使用 @sSteamCmdForcePlatformType 變數強制目標平台。支援的值包括 Windows、macOS 和 Linux。 是的,變數以兩個 s 字母開頭:@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
適用於 Windows 的軟體和實用程式
有一些工具可以充當 SteamCMD 的橋樑或介面。 Windows 中最常用的一些是:
- 聚光器:用於安裝、設定和啟動專用 Steam 伺服器的引導程式。
- SteamCMD 圖形使用者介面:無需任何命令列,即可使用 SteamCMD 的圖形介面。程式庫:https://github.com/DioJoestar/SteamCMD-GUI
- SteamCMD 守護者 1.2:實用程式和腳本;下載地址:http://pastebin.com/BRUbsGQh
Linux 的實用腳本
如果您使用 Linux 工作,那麼有一些專案可以自動化伺服器管理。 Linux 遊戲伺服器管理員 (LGSM) 亮點,一組用於快速部署和管理伺服器的 CLI 腳本。
其職能包括: SteamCMD 安裝程式、啟動/停止/重新啟動、更新,透過電子郵件警報、備份和伺服器控制台進行監控。
LGSM 支援多種遊戲,例如 《武裝突襲3》、《刀鋒交響曲》、《反恐精英》(各版)、《決戰勝利日》、Fistful of Frags、Garry's Mod、Half-Life DM Classic、HL2 DM、Insurgency、Just Cause 2、Killing Floor、Left 4 Dead(1 和 2)、No More Room in Hell、Natural Selection 2、Red Orchestra: Ostfront 41-45、Teamress(各種版本)等等。
更多資訊和完整列表: http://danielgibbs.co.uk/lgsm — GitHub 上的儲存庫: https://github.com/dgibbs64/linuxgameservers
還有一個名為 SteamCMD 守護者 1.2,已在 Debian Wheezy 上測試。您可以在以下位置查看和下載:http://pastebin.com/hcpMpmaZ
典型安裝(專用使用者下的會話,例如 steam): 建立文件並編輯它
- 建立文件:
nano updateserver.sh - 貼上提供的代碼。
- 調整內容並在行中添加至少一個遊戲 DL_SV*=.
- 節省 按Ctrl + O, 按 進入 和出去 按Ctrl + X.
- 授予執行權限:
chmod u+x ./updateserver.sh - 跑:
./updateserver.sh
如果尚未下載 SteamCMD,此腳本將下載它,更新它,並安裝所選的伺服器(一次最多 4 個)。 重新啟動時,它會更新已安裝的遊戲。 自動。
常見錯誤及解決方法
與任何工具一樣,有一些典型事件需要注意。 這些是最常見的問題及其解決方案.
錯誤!無法安裝應用程式“xxxxxx”(未訂閱)
此訊息表示您嘗試下載的伺服器需要登入或您已購買該遊戲。請嘗試使用 Steam 帳戶登錄,如果不行,請購買該遊戲。 為了安全起見,為專用伺服器建立特定帳戶 並避免使用個人的。
64 位元 Linux 上的 32 位元庫
由於 SteamCMD 是 32 位元的,因此需要相應的庫。典型的錯誤如下: libstdc++.so.6:無法開啟共享物件文件. 為您的發行版安裝正確的軟體包。
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
登入失敗:無連線
在 Linux 上,某些伺服器需要適當的 iptables 規則才能登入。請檢查以下連接埠: https://support.steampowered.com/kb_article.php?ref=8571-GLVN-8711&l=english 並添加必要的規則。
在 Windows 上,如果您看到「SteamUpdater:錯誤:下載失敗:http 錯誤 0」或「Steam 需要在線才能更新」之類的錯誤,通常可以透過啟用自動檢測來修復 Internet Explorer(Internet 選項 > 連線 > LAN 設定)。步驟:
- 打開 Internet Explorer。
- 工具 → Internet 選項。
- 連線選項卡。
- 在區域網路 (LAN) 設定下,點選設定。
- 牌 ”自動檢測設定“。
- 接受並應用。如果問題仍然存在,請將安全等級降低至中或更低。
SteamCMD 啟動錯誤
在 Linux 上您可能會看到: [S_API FAIL] SteamAPI_Init() 失敗;無法找到正在執行的 Steam 實例或本機 steamclient.dll. 解決方案:將 steamclient.so 連結到 ~/.steam/sdk32/steamclient.so。
ln -s steamcmd/linux32/steamclient.so ~/.steam/sdk32/steamclient.so
有些腳本在啟動時顯示 ulimit 錯誤(沒有權限/無法開啟檔案),這是由於檔案描述符限制較低(-n)造成的。 將其提高到合理的價值:
ulimit -n 2048
# Comprueba con: ulimit -a (busca: open files (-n) 1024)
如果您沒有權限,請以 root 身分登入來變更或編輯 /etc/security/limits.conf在許多情況下,您只會看到警告,而 SteamCMD 將繼續工作。
僅下載HLDS引擎
嘗試下載 HL1 模組(例如 TFC)時,最初只顯示引擎檔案是正常的。請繼續執行 app_update 多次,直到所有內容下載完畢。 這裡有一個記錄的解決方法:http://danielgibbs.co.uk/2013/11/hlds-steamcmd-workaround-appid-90/
另一個選項是刪除 appmanifest 文件,然後讓 SteamCMD 重新產生。一開始你會看到一個錯誤,但通常可以解決。 請注意,有時也會安裝 CS。 即使你不要求它。
案例研究:Windows 上的 Palworld 專用伺服器
在 Windows 機器上,您可以相當直接地使用 SteamCMD 部署 Palworld 伺服器。 它的工作原理是匿名登入並使用適當的應用程式ID.
基本安裝:執行 SteamCMD.exe(為簡單起見保留預設目錄;它將安裝 SteamCMD 自己的 steamapps)並貼上此命令: 將下載並驗證 PalServer
login anonymous +app_update 2394010 validate +quit
文件將儲存於: …/SteamCMD/steamapps/common/PalServer您有 PalServer.exe;您可以按原樣運行它,但如果沒有配置,您將無法加入。 啟動一次以產生配置 並關閉它。
前往 Pal > Saved > Config > WindowsServer,開啟 PalWorldSettings.ini 檔案。如果該檔案不存在,請在運行伺服器後建立。 將以下行貼到一行上(不含換行符號或多餘空格) 並將標記的值替換為您自己的值:
[/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")
定制: 服務器名稱 (可見名), 公有IP (您的公共 IPv4:在 Google 如果需要,可以輸入「我的 IP 位址是多少」)和密碼。除非有理由更改端口,否則請保留 8211。 打開並重定向到您的 路由器 埠 8211 和 27015.
如果您的路由器要求內部主機,請使用您的私人 IP(ipconfig CMD,使用 IPv4)。請確保在伺服器停止的情況下保存 INI。 啟動 PalServer.exe 並使用帶有連接埠的公共 IP 進行連接 在客戶端:格式xxx.xxx.xxx.xxx:8211。
此過程對於共享它的人來說是有效的,並且對於其他環境也有效。 記得檢查系統和路由器防火牆。 如果你不能讓它從外面可見。
對字節世界和一般技術充滿熱情的作家。我喜歡透過寫作分享我的知識,這就是我在這個部落格中要做的,向您展示有關小工具、軟體、硬體、技術趨勢等的所有最有趣的事情。我的目標是幫助您以簡單有趣的方式暢遊數位世界。