使用 SteamCMD:安装、命令、自动化和错误

最后更新: 15/10/2025
作者: 艾萨克
  • SteamCMD 使用 SteamPipe 管理专用服务器的安装和更新,并取代旧的 HLDSUpdateTool。
  • 允许匿名或帐户身份验证,支持测试分支和文件验证以确保完整性。
  • 支持 CLI 和脚本自动化,以及 下载 与@sSteamCmdForcePlatformType 交叉。
  • 包括常见错误(32 位库、登录、ulimit)和 LGSM 和 SteamCMD GUI 等实用程序的修复。

SteamCMD 和专用服务器用户指南

如果您想使用 Valve 的基础设施来设置或维护专用游戏服务器,您迟早会遇到 SteamCMD。这款实用程序是 SteamCMD 的在线版本 comandos 客户的 蒸汽 并已成为下载、安装和更新服务器的标准工具。 由于 SteamPipe 取代了旧的 HLDSUpdateTool,几乎所有支持专用服务器的标题都通过这里。

在本完整指南中,我详细解释了如何在 Windows, Linux 和 macOS,如何运行基本和高级命令、登录(匿名或使用帐户)、安装和验证服务器、使用脚本自动执行任务、强制跨平台下载以及如何解决常见错误。 此外,我还结合了 Palworld 的实际案例 我会审查一些外部实用程序和脚本,让您的生活更轻松。

SteamCMD 是什么以及它有什么用途?

什么是 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

使用您的 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、Team Fortress(各种版本)等等。

更多信息和完整列表: http://danielgibbs.co.uk/lgsm — GitHub 上的存储库: https://github.com/dgibbs64/linuxgameservers

还有一个名为 SteamCMD 守护者 1.2,已在 Debian Wheezy 上测试。您可以在以下位置查看和下载:http://pastebin.com/hcpMpmaZ

典型安装(专用用户下的会话,例如 steam): 创建文件并编辑它

  1. 创建文件: nano updateserver.sh
  2. 粘贴提供的代码。
  3. 调整内容并在行中添加至少一个游戏 DL_SV*=.
  4. 节省 按Ctrl + O, 按 输入 和出去 按Ctrl + X.
  5. 授予执行权限: chmod u+x ./updateserver.sh
  6. 跑: ./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 设置)。步骤:

  1. 打开 Internet Explorer。
  2. 工具 → Internet 选项。
  3. 连接选项卡。
  4. 在局域网 (LAN) 设置下,点击设置。
  5. 牌 ”自动检测设置«。
  6. 接受并应用。如果问题仍然存在,请将安全级别降低至中或更低。
  Roblox 宣布加强安全措施以保护 13 岁以下儿童

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。

此过程对于共享它的人来说是有效的,并且对于其他环境也有效。 记得检查系统和路由器防火墙。 如果你不能让它从外面可见。