Difference between revisions of "SteamCMD:zh-cn"
(添加建议) |
|||
Line 2: | Line 2: | ||
|title=Steam命令行版客户端 | |title=Steam命令行版客户端 | ||
|en=SteamCMD | |en=SteamCMD | ||
+ | |ko=SteamCMD:ko | ||
|es=SteamCMD:es | |es=SteamCMD:es | ||
|fr=SteamCMD:fr | |fr=SteamCMD:fr |
Latest revision as of 15:26, 26 February 2018
Steam命令行版客户端(SteamCMD)是一个命令行版本的Steam客户端。它的主要用途是在一个命令行界面的Steam客户端上安装和更新各种可用的专用服务端。它适用于使用SteamPipe内容分发系统的游戏。所有游戏已经从旧的半条命专用服务器更新工具迁移到了SteamCMD。
Contents
下载 SteamCMD
Windows系统
1. 创建一个为SteamCMD准备的文件夹。
“例如”
C:\steamcmd
2. 下载Windows系统专用的SteamCMD:https://steamcdn-a.akamaihd.net/client/installer/steamcmd.zip
3. 解压Zip文件中的文件到文件夹。
Linux系统
1. 首先安装运行环境用以运行SteamCMD。
Ubuntu/Debian 64位
sudo apt-get -y install lib32gcc1
RedHat/CentOS 32位
sudo yum -y install glibc libstdc++
RedHat/CentOS 64位
sudo yum -y install glibc.i686 libstdc++.i686
2. 建议创建一个SteamCMD专用的用户。在任何情况下,请 不要 在 root 身份下运行SteamCMD,这可能会导致严重的安全隐患! 运行以下命令以root身份创建“Steam”用户,并登录它:
useradd -m steam su - steam
如果你喜欢使用 sudo
,更换第二行代码为以下命令:
sudo -iu steam
3. 创建一个为SteamCMD准备的目录,并切换到它
mkdir ~/steamcmd && cd ~/steamcmd
4. 下载并解压Linux系统专用的SteamCMD
curl -sqL ' https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz ' | tar zxvf -
macOS系统
1.打开终端并创建一个为SteamCMD准备的目录。
mkdir ~/steamcmd && cd ~/steamcmd
2. 下载并解压macOS系统专用的SteamCMD。
curl -sqL ' https://steamcdn-a.akamaihd.net/client/installer/steamcmd_osx.tar.gz ' | tar zxvf -
运行 SteamCMD
在第一次运行SteamCMD时将自动更新并显示一个 Steam>
的输入提示。输入 help
来获取更多信息。
Windows系统
打开一个命令行窗口并启动SteamCMD。
cd C:\steamcmd steamcmd
Linux/macOS系统
打开一个终端并启动SteamCMD。
cd ~/steamcmd ./steamcmd.sh
登录 SteamCMD
匿名登录
下载大多数游戏服务端,你可以选择匿名登录。
login anonymous
Steam帐户登录
一些服务端需要你使用一个Steam帐户来登录。


login <用户名>
下一步请输入您的密码。
如果Steam 令牌已经在用户帐户上激活,查看你电子邮箱中的Steam 令牌验证码并输入它。这仅仅只是第一次登录时需要(以及当你删除了SteamCMD用于存储登录信息文件的时候)。
如果你已经成功登录了你的帐户,你应该会看到一条消息。
下载一个应用
1. 打开SteamCMD并登录它。
2. 设置你的应用安装目录(注意:在Linux/macOS系统下使用正斜杠/
,在Windows系统下使用反斜杠\
)。
force_install_dir <路径>
例如 一个名叫csgo_ds
的在当前目录下的目录:
force_install_dir ./csgo_ds/
在Windows系统: force_install_dir .\csgo_ds\
3. 安装或更新应用使用app_update
命令(在这里提供Steam应用ID)。 要同时校验应用的话,需添加validate
到命令里。要下载测试分支的话,使用-beta <测试名称>
选项 – 例如,半条命专用服务器的测试分支名为beta
以及起源专用服务器的测试分支名为prerelease
。一些测试分支设置了密码;如果要从它那里下载,需同时添加-betapassword <密码>
选项。
app_update <应用ID> [-beta <测试名称>] [-betapassword <密码>] [validate]
半条命专用服务器是一个特例:应用ID都是90,必须先选择模组。 这是通过设置配置选项mod
来请求变量的。
app_set_config <应用ID> <选项名称> <变量选项>
- 例如:安装并校验反恐精英:全球攻势专用服务器:
app_update 740 validate
- 例如:安装并校验军团要塞专用服务器:
app_set_config 90 mod tfc app_update 90 validate

app_update
命令才能安装完所有所需要的文件。只需运行app_update 90 validate
多次直到没有更多的更新内容即可。- 例如:安装并校验测试版本的半条命专用服务器(半条命):
app_update 90 -beta beta validate
- 例如:安装并校验测试版本的反恐精英:起源专用服务器:
app_update 232330 -beta prerelease validate
- 例如:安装并校验私人测试版本的物竞天择2专用服务器(测试名称
alpha
,测试密码natsel
): - [测试名称]是私人测试分支的名称
- [测试密码]是私人测试分支的密码
app_update 4940 -beta alpha -betapassword natsel validate
3. 完成之后,输入quit
从而正确地从Steam服务器内注销帐户。
quit
验证
validate
验证是一个命令以用来检查服务端的所有文件以确保他们符合SteamCMD所应该下载到本地的文件。如果你认为文件可能已丢失或已损坏,那么此命令将会非常有用。

mapcycle.txt
,此文件将会被覆盖至服务端的默认值。不是默认安装文件一部分的任何文件将不受影响。建议你只在初次安装时或如果服务端有问题时才使用此命令。
所支持的服务端
已知可使用SteamCMD安装的服务端可在专用服务器列表页面查询。需要注意的是额外命令需在app_update之前被执行。
自动执行SteamCMD
这里有两个方法来自动执行SteamCMD。(在Linux/macOS系统下使用./steamcmd.sh
来替代steamcmd
。)
命令行

-beta
选项时,它必须以一种特殊的方式被引用,比如+app_update "90 -beta beta"
。
"+app_update 90 -beta beta"
代替。在命令行追加命令需要在其前面添加加号,例如:
steamcmd +login anonymous +force_install_dir ./csgo_ds +app_update 740 +quit
安装半条命的一个特定游戏模组,比如反恐精英:零点行动:
steamcmd +login anonymous +force_install_dir ./czero +app_set_config 90 mod czero +app_update 90 +quit
安装一个需要登录的游戏,就像杀戮空间:
steamcmd +login <用户名> <密码> +force_install_dir .\KFServer\ +app_update 215350 +quit
创建脚本

1. 把你的SteamCMD命令放置在文本文件中。(你可以添加注释,只需在其前面添加//
。)例如:
// 更新反恐精英:全球攻势专用服务器
//
@ShutdownOnFailedCommand 1 //如果一次更新多个服务端请设置为0
@NoPromptForPassword 1
login <username> <password>
//一些服务端并不需要登录
//login anonymous
force_install_dir ./csgo_ds
app_update 740 validate
quit
2. 带着+runscript
选项运行SteamCMD,指向你之前创建的文件。例如:
steamcmd +runscript csgo_ds.txt
跨平台安装
它可以选择下载其他平台里SteamCMD所应该下载的文件,即使它不是当前正在运行的平台。 这是使用@sSteamCmdForcePlatformType
变量来完成的(是的,在变量名称的开头有两个“s”。)例如:在Linux系统下载Windows端的反恐精英:全球攻势专用服务器,你可以运行下面的命令:
./steamcmd.sh +@sSteamCmdForcePlatformType windows +login anonymous +force_install_dir ../csgo_ds +app_update 740 validate +quit
或者使用下面的脚本:
@ShutdownOnFailedCommand 1
@NoPromptForPassword 1
@sSteamCmdForcePlatformType windows
login anonymous
force_install_dir ../csgo_ds
app_update 740 validate
quit
这个变量支持windows
,macos
和linux
。
Windows系统 软件/脚本
condenser
condenser 是一个用于下载,配置和启动Steam专用服务器应用的引导程序。
SteamCMD AutoUpdater
安装和自动更新任何游戏服务端
GitHub仓库: https://github.com/C0nw0nk/SteamCMD-AutoUpdate-Any-Gameserver
SteamCMD GUI
这个工具可以使用户在Windows系统上不通过命令行或批处理文件来使用SteamCMD。
GitHub仓库: https://github.com/DioJoestar/SteamCMD-GUI
SteamCMD Guardian 1.2
在这里查看并下载:http://pastebin.com/BRUbsGQh
Linux系统 脚本
Linux Game Server Managers
Linux Game Server Managers是一个快捷的命令行工具,通过SteamCMD来轻松地部署和管理各种游戏专用服务器。
特点
- 安装服务端 (SteamCMD)
- 启动/关闭/重启 服务端
- 更新服务端 (SteamCMD)
- 监控服务端 (包括用电子邮件通知)
- 查看服务端的详细信息
- 备份服务端
- 可以进入服务端控制台
支持的服务端
现在支持40多个不同的游戏服务端并且数量还在上升。详情列表请访问网站。
链接
网站: https://gameservermanagers.com
GitHub仓库: https://github.com/dgibbs64/linuxgsm
SteamCMD Guardian 1.2
下面的脚本已在Debian系统Wheezy版本上测试。 在这里查看并下载: http://pastebin.com/hcpMpmaZ
安装教程
为了使这个脚本的工作,我们需要一个工作位置。你最好创建个用户(例如steam)以及它自己的根目录(/home/steam)并且通过SSH,tty且使用su来登录它。
- 创建文件
-
nano updateserver.sh
-
- 粘贴脚本代码
- 修改脚本代码,在
DL_SV*=
一行的最后添加一个游戏。 - 使用Ctrl+O关闭文件,其次是↵ Enter,最后Ctrl+X。
- 给用户执行文件的权限
-
chmod u+x ./updateserver.sh
-
- 运行文件
-
./updateserver.sh
-
这个文件将自动安装,更新SteamCMD,以及安装所有选定的游戏(最多4个)。再次运行该文件将更新游戏。
已知的问题
乱码
如果出现乱码的问题,请尝试更换窗口所调用的字体。
方法
- 右键宽口标题
- 进入属性页面
- 进入字体标签页
- 在字体一栏选择 Consolas字体或新宋体字体等,只要选择的字体无乱码问题即可,可凭个人偏好选择字体
- 点击确定保存设定
ERROR! Failed to install app 'xxxxxx' (No subscription)
如果你得到 'No subscription' 的错误,请你尝试在下载之前先登录帐户或者需要你已购买该游戏/服务端。因此你需要使用Steam用户名和密码来登录 – 如果这无法帮到你,你可能需要先在Steam购买游戏的副本。查看专用服务器列表.

例如
steamcmd +login <用户名> <密码>
在64位Linux系统上需使用32位的库
由于SteamCMD是一个32位应用,所以需要32位的库。
可能会出现以下错误:
steamcmd: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory
解决方法取决于你的Linux发行版本:
基于Debian系统的发行版(Ubuntu系统,Mint系统等。)
sudo apt-get install lib32stdc++6

ia32-libs
; lib32gcc1
就足够了。在 Debian 7 "Wheezy" 你可能会遇到这样的错误:
The following packages have unmet dependencies: ia32-libs : Depends: ia32-libs-multiarch but it is not installable E: Unable to correct problems, you have held broken packages.
要修复这个错误,你需要执行下面的操作:
dpkg --add-architecture i386
apt-get update
apt-get install lib32gcc1
基于Red Hat系统的发行版(RHEL系统,Fedora系统,CentOS系统等。)
yum install glibc.i686 libstdc++.i686
Arch Linux系统
首先不要忘记开启 multilib仓库。
pacman -S lib32-gcc-libs
Login Failure: No Connection
在Linux服务器上,你可能会遇到一个“Login Failure: No Connection”的错误。这或许是因为缺少iptables规则。你需要要执行下面几行内容:
iptables -A INPUT -p udp -m udp --sport 27000:27030 --dport 1025:65355 -j ACCEPT
iptables -A INPUT -p udp -m udp --sport 4380 --dport 1025:65355 -j ACCEPT
在这里可以找到需要的端口列表:https://support.steampowered.com/kb_article.php?ref=8571-GLVN-8711&l=simplified%20chinese
在Windows服务器上,你可能会遇到 "SteamUpdater: Error: Download failed: http error 0" 和 "SteamUpdater: Error: Steam needs to be online to update. Please confirm your network connection and try again." 。这通常通过设置IE(Internet Explorer)的Internet选项中连接标签页中的局域网(LAN)设置中的自动配置框中的自动检测设置来修复。
- 打开Internet Explorer (IE)。
- 点击“工具” → “Internet选项”
- 点击“连接”标签页
- 在底部,你应该可以看到“局域网(LAN)设置”。=
- 选中第一个框(“自动检测设置”)
- 点击确定或应用。再次尝试运行SteamCMD;如果仍然无法正常工作。尝试降低你的'该区域的允许级别'到中等或更低。你可以在“Internet选项”中的“安全”标签页发现它。
SteamCMD启动错误
Unable to locate a running instance of Steam
在开启Linux服务端时,你可能会得到以下错误:
[S_API FAIL] SteamAPI_Init() failed; unable to locate a running instance of Steam, or a local steamclient.dll.
通过链接steamclient.so
到~/.steam/sdk32/steamclient.so
目录来解决问题:
ln -s steamcmd/linux32/steamclient.so ~/.steam/sdk32/steamclient.so
Linux系统的ulimit启动错误
当开始运行脚本时一些用户可能会得到ulimit
错误 (没有权限/无法打开文件)。这个错误是因为ulimit
的-n
参数(文件描述符数目)设置过低造成的。SteamCMD使用标准的命令代替Shell初始脚本来自动修改ulimit
,但是一些服务器系统可能在启动后禁止提高ulimit
的值(或者通过root
来突破上限设置)。
这可以改变并固定ulimit文件描述符数目:
ulimit -n 2048
如果出现错误(no permission),你需要登录root来改变这个参数。想要检查当前设置,输入ulimit -a;系统将显示多行内容,你需要找到:
open files (-n) 1024
在这种情况下,"1024" 是当前值。
root
也可以在/etc/security/limits.conf
文件修改此限制。
在大多数情况下,你只会得到一个警告消息,但它不会停止运行SteamCMD。
只下载了半条命专用服务器引擎
当试图下载一个半条命模组就像是军团要塞时,最初它只是下载半条命专用服务器的引擎文件,而不是模组。这种情况同时发生在普通版和测试版。你可能需要尝试多次直到已下载完所有所需的文件,只要完成了一次,下一次应该就会正常更新。
在这里有这个问题的解决方法:https://danielgibbs.co.uk/2013/11/hlds-steamcmd-workaround-appid-90/
这只是删除了appmanifest文件,替换从第三方下载的版本,这也许可行! 虽然首先你将会得到一个错误,抱怨说出了问题,但这只是因为那个被删除的文件。
旁注,由于某种原因,CS总是可以安装完成。