一、什么是SteamCMD
SteamCMD 是 Steam 客户端的命令行版本。它的主要用途是使用命令行界面安装和更新Steam上可用的各种专用服务器。它适用于任何使用SteamPipe内容系统的游戏。当你需要架设一款在Steam发行游戏的个人服务器的时候,就会用到这款软件。
SteamCMD是一款专业的steam局域网架设软件。SteamCMD最新版是steam的一个命令行版本,带有steam基础api,包括账户登陆,邮箱验证,游戏下载等功能。SteamCMD官方版的正确用法是用来下载游戏服务端(虽然有些游戏服务端就是游戏本体),然后在服务器上运行游戏服务端作为游戏服务器使用。
SteamCMD(steam局域网架设工具)官方版是一款专门用于架设steam局域网服务器的软件,利用steamCMD用户能够在本地局域网内架设一个STEAM的服务器,进而让本地的几台电脑可以通过这个服务器进行联机,比如玩方舟、csgo、七日杀等其它的steam游戏都能够进行联机。
在自己的电脑偶尔开服,直接用steam客户端的库--工具就可以了,但是要更加方便快捷地建立一个专用服务器,还是离不开steamcmd的运用: 所谓steamcmd即steam的一个命令行版本,带有steam基础api,包括账户登陆,邮箱验证,游戏下载等功能。安装他的时候也会在磁盘上写入和桌面版steam相关的链接库,用来被游戏调用。也就是说通过steamcmd下载的游戏是可以正常运行的。然而steamcmd平时并不作为游戏下载工具,因为游戏必定有图形界面,那么既然有图形界面一定会使用更方便的桌面版steam。steamcmd的正确用法是用来下载游戏服务端(虽然有些游戏服务端就是游戏本体),然后在服务器上运行游戏服务端作为游戏服务器使用。
二、如何下载SteamCMD
官方网站:https://developer.valvesoftware.com/wiki/SteamCMD
Windows版本下载地址:https://steamcdn-a.akamaihd.net/client/installer/steamcmd.zip
使用命令设置SteamCMD官方版
64位centos下使用以下命令进行安装
首先安装所需的32位依赖
yum install glibc.i686 libstdc++.i686
之后创建一个新账户,命名为steam,之所以需要创建一个新账户,是为了安全性而要求的。若使用root账户运行steamcmd会看到安全提醒。
三、使用SteamCMD
1.解压得到的steamcmd.zip到任意不包含中文的目录
2.运行得到的steamcmd.exe,软件会自行安装并更新,完成后会出现 Steam> 提示符即表示安装完成
3.使用login anonymous登录匿名账号
4.后面接其他需要架设服务器的教程。
四、常用命令
1.login <用户名>
登录指定账号,除非必要一般使用匿名anonymous即可
2.force_install_dir <目录地址>
指定安装目录。例如:force_install_dir ./fwq/ (这里可以使用绝对路径也可以使用相对路径)
3.app_update <程序id> [-beta <测试版本名称>] [-betapassword <密码>] [validate]
安装程序,如果不是测试版,中间测试版部分可以省略。例如:app_update 740 validate 此命令为安装程序ID为740的程序,并验证(validate)。一般情况下更新也会使用此命令。
注意:验证将覆盖已更改的任何文件。这可能会导致自定义服务器出现问题。但是不属于默认安装的文件都不会受到影响。因此更新服务器之前最好备份配置文件。
当然,你也可以不使用validate来更新服务器,直接使用 app_update <程序id> 这样的形式直接更新,这样就不会覆盖文件,但是同时也不会验证文件。
useradd -m steam
之后切换到这个账户,注意这里的命令是 su空格-空格steam,这样做的话,切换后立即转到steam账户的~目录:
su - steam
之后创建一个文件夹命名为steamcmd并进入:
mkdir ~/steamcmd
cd ~/steamcmd
使用wget下载steamcmd压缩包:
wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz
解压缩:
tar -xvzf steamcmd_linux.tar.gz
运行它:
cd ~/steamcmd
./steamcmd.sh
第一次启动steamcmd将会自动下载steamcmd全部文件,耐心等待即可。下一次启动时不需要再次下载。steamcmd启动后,会进入程序内的命令行界面。此处可以输入命令。以安装一个游戏为例,我们来介绍一下steamcmd的基础命令。
首先,和桌面版steam一样,我们首先需要登陆,比如我们用匿名账号登陆(匿名账号不需要密码):
login anonymous
登陆成功后我们指定游戏服务端安装目录,例如自定为上一层目录中的 cs_go 文件夹,注意,linux下的steamcmd只要制定了目录,就会立刻创建该目录,windows版steamcmd不会立刻创建,因此在linux下可以以此确认该命令是否正确按照预想设定。
force_install_dir ../cs_go/
之后我们要开始安装游戏服务端,以上面那个csgo为例,我们首先需要确认这个程序的app id,我们访问以下网址:
https://developer.valvesoftware.com/wiki/Dedicated_Servers_List
该列表会显示所有steamcmd支持下载的服务端,ID这个column下就是我们需要的app id,例如我们找到csgo的id为740,使用以下命令:
app_update 740
进行安装,这里有几个参数说明,常用的其实只有validate参数。validate意味着校验,和桌面版steam上那个校验本地文件是一模一样的功能,注意,在任何app相关的命令使用前都需要先指定目录,否则视为当前目录。第一次安装程序,有没有validate效果是一样的。从原理上来说,更新服务端时如果不加validate应该会全部覆盖一次,但是我发现并没有,依然会首先校验本地文件和云端文件然后增量下载。换句话说,我发现有没有validate都是一样的,可能是我观测失误,推荐任何app_update命令全部加上validate参数。即以下命令 app_update 740 validate
按下回车后会不断提示下载进度,到达百分百后会回到steamcmd命令行,输入quit来退出steamcmd。
之后我们 cd ../cs_go 即可进入csgo服务端所在文件夹,然后根据具体服务端的启动方式来运行服务端。
对于其他游戏来说,安装过程是一致的。需要注意的是部分游戏的安装有特殊要求或者需要首先购买该游戏。以七日杀为例,在刚才的dedicated servers list列表中我们可以看到七日杀旁边的notes这个column里写着“game purchase required”,这意味着这个游戏必须首先购买,而确认你已经购买的方法就是在steamcmd登陆时使用自己的steam账号登陆而不是匿名账号。首次使用你的steam账号登陆时会和桌面版steam一样有邮箱校验,你需要输入邮箱里发来的验证码才可以登陆,登陆后这样的游戏服务端才可以被下载。
steamcmd下载得到的服务端全部都是正版服务端,也就是客户端进行连接时会有steam账户校验。因此连入的玩家必须拥有该游戏的正版,虽然本人不支持盗版,但是作为一件事实还是需要特别说明以下。source引擎游戏有专门的破解补丁,现在是俄罗斯的一波人在维护,可以破解source引擎的steam账户校验,该补丁可以装到服务端上面从从而模拟验证以使得盗版玩家可以连入服务器。以前倒腾过这玩意,但是该补丁的linux版本年久失修,只有windows版本在不停更新,因此如果使用linux开服还是自觉去买正版,linux服务端基本上和盗版无缘。
关于游戏服务端的更新,更新操作过程和安装一模一样(绝大多数情况下,游戏客户端如果更新了,那么服务端也要更新),在此不在赘述,推荐加上validate参数。
喜欢的记得点赞加关注我是艾西我们下期再见!