- SteamCMD 使用 SteamPipe 管理专用服务器的安装和更新,并取代旧的 HLDSUpdateTool。
- 允许匿名或帐户身份验证,支持测试分支和文件验证以确保完整性。
- 支持 CLI 和脚本自动化,以及 下载 与@sSteamCmdForcePlatformType 交叉。
- 包括常见错误(32 位库、登录、ulimit)和 LGSM 和 SteamCMD GUI 等实用程序的修复。
如果您想使用 Valve 的基础设施来设置或维护专用游戏服务器,您迟早会遇到 SteamCMD。这款实用程序是 SteamCMD 的在线版本 comandos 客户的 蒸汽 并已成为下载、安装和更新服务器的标准工具。 由于 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
使用您的 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): 创建文件并编辑它
- 创建文件:
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。
此过程对于共享它的人来说是有效的,并且对于其他环境也有效。 记得检查系统和路由器防火墙。 如果你不能让它从外面可见。
对字节世界和一般技术充满热情的作家。我喜欢通过写作分享我的知识,这就是我在这个博客中要做的,向您展示有关小工具、软件、硬件、技术趋势等的所有最有趣的事情。我的目标是帮助您以简单而有趣的方式畅游数字世界。