
更新——关于CS2:
安装 CSGO 服务器一步中,将740替换为730。
启动服务器命令可以使用“【CS2路径】/game/bin/linuxsteamrt64/cs2 -dedicated +map de_dust2 +game_alias competitive”。
插件系统请使用CounterStrikeSharp项目。[Github 链接]
插件我使用不多,建议仅供参考,可能有更好用的。
对战可以使用 MatchZy;丢刀可以使用CS2DropKnife。
另CS2服务器对性能的需求比CSGO服务器大,阿里/腾讯的轻量化服务器可能只够10-12人游玩,更多人数可能会卡。
本来是要录视频的,但是后来想想剪起来也麻烦,而且视频字太小,观众又老得停下来敲命令,不如我写成文字的,大家可以复制粘贴,还可以直接用手机看,避免了屏幕小看不清字的问题,比较方便。
环境要求
一台 VPS(我使用的是阿里云轻应用服务器,学生优惠价每月 9.5 元,腾讯云和百度云也有类似的机器,价格差不多也在 10 块左右),或局域网的一台单独的机器。
Ubuntu Server (我的环境是 16.04),或者其他你熟悉的 Linux 发行版。
简明扼要版流程,适合有 Linux 使用经验的同学
参考这两篇文档。
https://developer.valvesoftware.com/wiki/Counter-Strike:_Global_Offensive_Dedicated_Servers
https://github.com/splewis/csgo-pug-setup
略微详细一点流程,介绍下后面要做什么
首先安装 steamcmd,用来更新游戏,然后使用 steamcmd 安装 CSGO 服务器程序,然后安装用来支持拼刀选边和队长选人等功能的插件。
详细的安装流程,适合没有 Linux 使用经验的同学(多图预警)
接下来的过程可能会很繁琐,而且一定要小心不要输错了命令~
前期准备
首先连接到你的 Linux 服务器,比如使用 putty。
32位版下载地址:https://the.earth.li/~sgtatham/putty/latest/w32/putty.zip
64位版下载地址:https://the.earth.li/~sgtatham/putty/latest/w64/putty.zip
下载后解压到文件夹中,运行putty.exe。
在这里输入你的服务器IP地址,然后点击Open。

第一次连接到服务器会提示,是否信任服务器,点击“是”。

在 login as 后面输入你在服务器上的账号名,在 password 后输入密码。

登录成功后,你会看到类似这样的界面,可能文字会有区别,但是最后一行是以$结尾的,你可以输入命令的地方。
在这里强调一下,不要按Ctrl+C、Ctrl+V来复制粘贴,在putty中粘贴直接点击鼠标右键就可以。

输入命令“sudo apt update” 按回车即可,如果你的用户名是 root,请不要输入 “sudo”。
如果你不是 root 账户,通常会提示你输入密码,输入刚才登录的密码(密码不会显示出来,但实际上是输入进去了的)按回车即可。

然后输入“sudo apt install screen steamcmd unzip”,还是和刚才一样,如果你的用户名是 root,请不要输入 “sudo”。
之后会出来很多字,最后可能会问你是否想要继续,输入”y”按回车即可。

安装 CSGO 服务器
然后输入”vi update_csgo.txt”,按回车即可。画面会变成一个黑色的界面,绿色的光标,最下面有一行字,这时按下“i”,让左下角变成“—INSERT --”。

如果刚刚这一步你不小心输入了一些字,或者按完”i”后习惯性的按了回车,先删除这些字。
首先修改下面这段话中的“你的用户名“为你刚刚登录这台机器使用的用户名,如果用户名是root,则把这一行改成”force_install_dir /root/csgo_ds“,然后复制下面这段话,之后在黑框空白处点一下鼠标右键,这些内容就会被粘贴上去。
// update_csgo_ds.txt // @ShutdownOnFailedCommand 1 //set to 0 if updating multiple servers at once @NoPromptForPassword 1 login anonymous force_install_dir /home/你的用户名/csgo_ds app_update 740 validate quit

然后按下ESC,画面此时没有任何变化,直接在键盘上输入“:wq”,就像这样,然后按回车。

然后输入“steamcmd +runscript /home/你的用户名/update_csgo.txt”,还是,记得先把”你的用户名“换成你实际登录的用户名,或者 root 账户登录的同学直接输入” steamcmd +runscript /root/update_csgo.txt“。最后按下回车。

然后程序就会自动开始更新CSGO,到这里先把电脑放在这里,去做些别的事情吧。
等程序完成更新后会自动退出,当你看到又到了这个熟悉的可以输入命令的地方,就说明CSGO已经在你的服务器上安装好了。

然后我们需要注册一个 Steam 游戏服务器账号,这个账号是为了说明这个服务器是谁开的,只有在服务器启动的时候附上这个服务器账号,我们的服务器才能在互联网上被玩家使用。同时,也作为日后 Valve 追责的证明,因为按 V 社的规定,服务器不能提供改皮肤等插件,这个服务器账号会关联到你的 Steam账号,如果有一天他们发现你违反了规定,可以通过这个账号找到你的 Steam 账号。如果你是在局域网里开服务器,那么可以跳过这一步。
首先打开这个页面,登录你的 Steam 账号。
https://steamcommunity.com/dev/managegameservers

一路拉到最下面,在第一个框里输入“730”,然后点击“Create”。之后,复制上面框(我打码的部分)的“Login Token”一栏的内容,这个就是你的服务器账号。
一个最基本的CSGO服务器到这里就算搭建完成了,下面我们可以试一试,看服务器能不能正常运行。
启动服务器
首先我们进入到csgo的文件夹里。输入“cd csgo_ds”,按下回车。

如何运行一个竞技模式服务器呢?只需要输入“./srcds_run -game csgo -console -usercon +game_type 0 +game_mode 1 +mapgroup mg_active +map de_dust2 -tickrate 128 +sv_setsteamaccount 你的服务器账号 -net_port_try 1”即可。输入的时候注意,这里面有加号也有减号,不要搞混了,最好复制到记事本里,然后再改,最后粘贴到putty里。
如果你只想搞局域网服务器,不需要互联网访问,就把最后面的“+sv_setsteamaccount 你的服务器账号 -net_port_try 1”换成 “+sv_lan 1”。
记得然后把”de_dust2”换成你想玩的地图,比如“de_inferno”或者“de_mirage”之类的,然后把命令中的“你的服务器账号”换成你真实的服务器账号。
如果你想要给服务器改个名字,让别人刚容易从国际服的社区服浏览器找到你的服务器,就在命令后面加上“ +hostname "随便什么名字但不能有空格" ”,服务器名字前后是有英文双引号的。
如果你想给服务器加一个连接密码,这样就不会有路人加入进来,就在命令后面加上“ +sv_password "连接密码,不能有空格#34;连接密码,不能有空格&#号的。
如果你想在服务器运行的时候,从你游戏里的控制台操作服务器而不是切出来到黑框里输入CSGO指令,那最好还设置一个 rcon 密码,在指令后面加上“ +rcon_password "指令密码,不能有空格" ” ,密码前后还是有英文#34;指令密码,不能有空格&#了这一堆之后你的指令可能会很长,你可以先找个记事本什么的写完了在一起粘贴(还记得吗?在putty里粘贴是单击鼠标右键)进去。

输入指令,按下回车,CSGO服务器应该就开始运行起来了。

下面我以局域网服务器为例,运行截图给你们看一下。
等到一堆字从屏幕上闪过,你看到最下面是这几个字的时候,CSGO服务器就已经启动了。

如果是互联网服务器,大概是这个样子的。

总之你看到最后两行是 VAC 启动或者没启动,GC Connection established 就可以了。这个时候就可以试着进入游戏连接服务器了。但是记得,千万别关 putty,如果关了服务器也会马上关掉的。后面我们会给出办法,让服务器可以一直运行,我们可以随意关掉 putty。
怎么在游戏里进入我们刚配置好的服务器呢?有两种方法。
第一种方法就是直接控制台连接,国服和国际服都可以用这种方法。打开控制台,在控制台中输入“connect 你服务器的IP地址; password 服务器的连接密码”就可以了。如下图所示。

另一种方法只适合国际服玩家,打开社区服浏览器,首先打开社区服浏览器,找到“收藏夹“,然后点击右下角的”添加服务器“。

然后输入IP,点击“添加此地址到收藏夹“。

然后就可以在收藏夹找到你的服务器了,点击“连接“,输入密码即可。如果点了连接没有反应,可以点一下刷新,然后再连接试试。
测试完成后关闭服务器,在 putty 中按下 Ctrl + C 就可以关闭服务器程序。

好了,我们继续配置服务器,通过安装插件让服务器支持拼刀选边和队长选人。
首先我们回到最开始的文件夹里。输入命令“cd ~”,按下回车。

我们需要在服务器上安装三个插件。请用浏览器打开这个网站。
http://www.sourcemm.net/downloads.php?branch=stable
右键点中间的小企鹅图标,选择复制链接地址。

然后回到 putty 中,输入“wget ”,注意最后有个空格,然后按右键把复制的链接地址粘贴进去,然后按回车,这样就开始下载第一个文件了。

第一个文件下载完成后,我们打开第二个网站。
http://www.sourcemod.net/downloads.php
右键点击中间的小企鹅图标,复制下载链接。

然后回到 putty 中,输入“wget ”,注意最后有个空格,然后按右键把复制的链接地址粘贴进去,然后按回车,这样就开始下载第二个文件了。

第二个文件下载完后,打开第三个网页。
https://github.com/splewis/csgo-pug-setup/releases
看到左边有绿色的“latest release”标志的版本,在下面的“Assets”里右键点击“pugsetup_版本号.zip”的链接,选择复制下载地址。

然后回到 putty 中,输入“wget ”,注意最后有个空格,然后按右键把复制的链接地址粘贴进去,然后按回车,这样就开始下载第三个文件了。
第三个文件下载完成后,我们开始安装,首先把刚才下载的三个文件解压。
输入,“tar xf mmsource”,然后按下键盘上的制表符键(Tab键,有的键盘上标的是有两个小箭头一个往左一个往右),这时候你会发现刚才下载的文件的名字已经自动补全了。

然后按下回车,这样第一个文件就解压好了。
然后我们解压第二个,输入”tar xf sourcemod”,然后按制表符键,补全文件名,然后按回车。

接着解压第三个,输入命令“unzip pugsetup”,然后制表符键,补全文件名,然后按回车。按了回车后会出现一大串字,不用管他。

等到最后又到了可以输入命令的地方,三个文件就都解压好了。

然后我们开始安装刚才解压好的插件。
输入“cp -r addons/ csgo_ds/csgo/”,然后按下回车。
然后输入“cp -r cfg/ csgo_ds/csgo/”,按下回车。

接下来我们需要配置一下服务器的设置。首先输入“cd csgo_ds/csgo/cfg/”,按回车。

然后输入“vi server.cfg”,按回车。

然后,按“i”,等到左下角变成“—INSERT --”状态后,复制下这些内容,在黑框窗口点右键,把这些东西粘贴进去。

tv_enable 1 tv_delaymapchange 1 tv_delay 45 tv_deltacache 2 tv_dispatchmode 1 tv_maxclients 10 tv_maxrate 0 tv_overridemaster 0 tv_relayvoice 1 tv_snapshotrate 20 tv_timeout 60 tv_transmitall 1
然后按下“ESC”键,输入“:wq”按回车,保存退出文本编辑工具。

然后输入“cd ~”按回车,回到最开始的目录,我们来试一下服务器是不是已经可以正常运行了。如何启动服务器,请参考之前的“启动服务器”一节,这里不再赘述。

进入服务器后,在聊天框输入.setup就可以看到,插件已经在工作了。

插件如何使用?
第一个进入房间的人,或者发起人,或者这局比赛的管理员,在聊天框输入 ".setup" 进行比赛设置,包括选择地图、队长选人模式还是随机队伍、是否拼刀选边等。 然后输入".capt"指定队长。
其他玩家准备好后聊天框输入".ready&#,如果要取消准备输入".unready"。
拼刀局结束后,胜利方进行选边,输入".stay"就留在当前阵营,#34;.unready&##34;.swap",或者直接输入".ct"和“.t”。
如果要暂停比赛,聊天框输入".pause",取消暂停为".unpause"
#34;.ct&#况,如果上述操作没有启动游戏(auto-live被禁用的情况下),输入".start"开始游戏
如果要强制游戏结束,输入".unpause",这个操作只能由这句比赛的管理员进行。
如果需要帮助,输入".help"
如何让服务器一直运行?
#34;.start&#,必须手动输很长的指令,而且不能关掉 putty 的窗口,接下来我们想个办法,让服#34;.endgame&#动不用输入这么长的指令。
如何让服务器一直运行呢?这里我们用到一个工具 GNU Scree#34;.help&#了,接下来我们使用它来让服务器能持续运行。
首先我们还是先进入CSGO服务器的文件夹。输入“cd csgo_ds”然后按回车。

还记得我们之前启动服务器的那一长串代码吗?我们在它的开头加上这样几个词就可以了。比如“screen -S “CSGO” 之前启动服务器的代码”,比如我的代码就是这样的。

输入(按鼠标右键粘贴)“screen -S “CSGO” 你之前的启动服务器的代码“到 putty 中,按下回车,服务器就运行起来了。

看起来好像和之前的一样?确实如此,但是因为我们加了 screen -S “CSGO”,我们可以利用 GUN Screen 切换出来而不关闭服务器。比如我们按下 Ctrl + A, 然后按下 Ctrl + D。

你看,我们成功从服务器的程序里切换回命令行界面了,而服务器还在后台运行着。

那么如果我想输入命令,或者我想关掉服务器,如何切换回服务器的界面呢?只需要输入“screen -r“按下回车就可以了。
之后你会回到服务器的界面,就可以输入命令,或者按下 Ctrl + C 关闭服务器了。

那如何把这个过程再简化一下呢?
首先,我们关掉服务器,然后输入“cd ~“按回车,回到最开始的目录。

输入“vi start_csgo_server.sh“,然后按回车。

按下i,让左下角变成“__ INSERT __“状态。
输入“cd csgo_ds“按回车,然后把刚才的 screen 开头的那一大串命令粘贴进去(还记得吗?在 putty 中按鼠标右键可以粘贴)。比如我的粘贴进去就是这样的。

然后按下“ESC“键,再输入”:wq“,按回车保存退出。

然后我们输入这样一条命令,让刚才写了两条命令的这个脚本文件变得可以被执行。
输入“chmod +x start_csgo_server.sh“,按下回车。

之后,我们每次需要启动CSGO服务器只需要输入“./start_csgo_server.sh“按回车就可以了。

甚至,充分利用自动补全的话,只需要输入”./sta”然后按制表符键(TAB键,或者键盘上有两个方向相反的小箭头的按键),再按回车就可以了,是不是比之前输入命令简单多了?

可以看到服务器已经在运行了,如果你想关掉 putty 的窗口,只需要依次按 Ctrl+A 和 Ctrl+D,看到“detached from 数字.CSGO“就可以放心的关掉 putty 了。

要关掉服务器的时候,只需要输入“screen -r”,按回车,然后按下 Ctrl + C 就可以了。

那么更新CSGO能否也写成脚本呢?这样就不用每次输入很长的命令了?是可以的。
输入“vi update_csgo_server.sh“,按下回车,然后按”i"进入文本编辑的界面。

输入你之前更新 CSGO 服务器的命令,“steamcmd +runscript /home/你的用户名/update_csgo.txt“,记得把”你的用户名“换成你服务器登录的用户名。使用 root 账号登录的同学,可以输入” steamcmd +runscript /root/update_csgo.txt “。比如我这里在脚本里就输入下图的命令。

依旧是按“ESC“键,再输入”:wq“,按回车保存退出。
然后给这个脚本加上可执行的属性,输入“chmod +x update_csgo_server.sh“,按回车即可。

好了,到现在为止,CSGO 服务器的搭建已经全部完成了。总结一下,以后会用到的命令。
启动 CSGO 服务器: 输入“./start_csgo_server.sh”,然后按回车,再按 Ctrl + A 和 Ctrl + D。 关闭 CSGO 服务器: 输入“screen -r”,然后按回车,再按 Ctrl + C。 更新 CSGO 服务器: 在确保 CSGO 服务器已经关了的情况下,输入”./update_csgo_server.sh”,然后按回车。
如果有任何问题可以评论区留言,我看了会回复的。