steamcmd使用简明教程

作者:czp 分类: 游戏 发布于:2016-1-8 9:50 ė11415次浏览 610条评论

环境:centos7 X86_64

所谓steamcmd,即steam的一个命令行版本,带有steam基础api,包括账户登陆,邮箱验证,游戏下载等功能。安装他的时候也会在磁盘上写入和桌面版steam相关的链接库,用来被游戏调用。也就是说通过steamcmd下载的游戏是可以正常运行的。然而steamcmd平时并不作为游戏下载工具,因为游戏必定有图形界面,那么既然有图形界面一定会使用更方便的桌面版steam。steamcmd的正确用法是用来下载游戏服务端(虽然有些游戏服务端就是游戏本体),然后在服务器上运行游戏服务端作为游戏服务器使用。

steamcmd的V社开发者论坛上的地址 https://developer.valvesoftware.com/wiki/SteamCMD#Downloading_SteamCMD ,绝大部分的过程在这里已经写明了,我只稍微提一下注意事项。

64位centos下使用以下命令进行安装

首先安装所需的32位依赖

yum install glibc.i686 libstdc++.i686

之后创建一个新账户,命名为steam,之所以需要创建一个新账户,是为了安全性而要求的。若使用root账户运行steamcmd会看到安全提醒。

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参数。

关于这张dedicated servers list,是v社在进行维护。但是不一定能保证最新,也就是说已经能够从steamcmd下载得到游戏服务端,却没有出现在这张列表上。此时可以等几天再来,就会看到这个游戏。例如以前ARK可以联机时,v社论坛上已经有教程描述如何安装服务端(顺便吐槽一下,国内那时候的ARK开服教程上的app id全部都是错的,而且这样的一篇错误文章能占满百度前几页。百度的搜索能力令人惊叹),但是该app id未出现在这张列表,过了好几天才更新。至于这些发烧友是如何比这张列表更快的知道app id,老实说,我也很困惑,可能是他上面有人吧。

本文出自 czp的装逼站,转载时请注明出处及相应链接。

0

评论

  1. hello Google Chrome 60.0.3112.90 Windows 7 2017-08-28 17:11 回复

    我想请教下,你是如何在运行steamcmd.sh后正常下载的,我试了好久下载的都不行,我用的是阿里云的服务器,谢谢

    1. czp Google Chrome 60.0.3112.107 Android 2017-08-28 18:14 回复

      @hello:steamcmd的下载服务器只有一台,并且国内经常大姨妈,过几天就好了

  2. overvenus Google Chrome 47.0.2526.106 Linux 2016-01-22 21:09 回复

    看成 systemd 了 -_-

    1. czp Google Chrome 47.0.2526.106 Linux 2016-01-22 21:11 回复

      @overvenus:少侠好眼力=。=

      1. overvenus Google Chrome 47.0.2526.106 Linux 2016-01-22 21:21 回复

        @czp:最近在纠结是用 upstart 还是用 systemd,对它比较敏感。

      2. czp Google Chrome 47.0.2526.106 Linux 2016-01-22 21:22 回复

        @overvenus:据称systemd效率高,具体并不清楚

      3. overvenus Google Chrome 47.0.2526.106 Linux 2016-01-22 21:24 回复

        @czp:你的 post-31 怎么禁止访问?

      4. czp Google Chrome 47.0.2526.106 Linux 2016-01-22 21:24 回复

        @overvenus:被阿里云封了,用他的静态地址吧

      5. overvenus Google Chrome 47.0.2526.106 Linux 2016-01-22 21:29 回复

        @czp:哈,我知道了,肯定和某墙有关

      6. czp Google Chrome 47.0.2526.106 Linux 2016-01-22 21:34 回复

        @overvenus:是的,阿里云相应国家号召弄出来的“阿里绿网”导致这个页面每个礼拜通知我违规一次。每个礼拜取消一次,动态页面已经封了。静态地址访问有一般概率被封。我当时整个人都不好了

发表评论

电子邮件地址不会被公开。必填项已用*标注


Ɣ回顶部