写在前面

    本文章开始之前就先默认了你了解Linux基础命令、VPS的连接和配置、网络端口的配置等等。如果你是个萌新小白的话的话,建议先学习一点基础命令和VPS的配置,在下面也会提及一小部分,本次我将要使用CentOS系统进行配置。那么,就开始从零开始搭建吧。

服务器配置以及CSGO本体下载

创建新用户

Red Hat目前已经停止对CentOS8的稳定更新,所以我们选择CentOS7来进行配置

首先对于Linux来说,一般VPS的CentOS的初始用户都是root,对于我们来说权限太大,所以我们需要新建一个用户来完成我们之后的操作。

1
2
useradd -m steam
cd /home/steam

我创建的用户名是steam ,当然你也可以用别的名字来代替。cd 命令是指定到某个目录,新建“steam”用户之后就会在/home 文件夹下新建steam文件夹,所以我选定的是根目录下的/home/steam/ 文件夹,当然你也可以选择别的目录。如果你对此没有印象的话,你可以去看看Linux系统的文件架构。

安装依赖文件

完成上述操作之后,我们就要开始进行系统软件的更新,以便于我们的依赖软件和系统软件保持在最新的状态,防止最后运行时报错。

由于CentOS8已经宣布停止稳定版转向Stream滚动发行版,所以使用CentOS8更新软件可能会变得不稳定

1
yum update -y && yum upgrade -y && yum install glibc.i686 libstdc++.i686 -y && yum install zlib.i686 -y 

yum updateyum upgrade 就是CentOS的升级命令,“-y”的意思就是在接下来的问询中,比如当问你“确定要升级软件吗”之类的问题时,将自动默认为‘确定’然后不间断运行直到命令结束。而yum 就是系统的软件包管理器,以后系统内的各种软件和依赖,你只需要敲命令的时候开始加上yum就可以安装和删除各种包。yum install 就是系统的安装命令,glibc.i686、libstdc++.i686和zlib.i686就是我们需要安装的依赖软件。

安装Steam和Screen

完成上述操作之后,我们将要下载在Linux上运行的steam服务端版,也就是命令行版,还有就是后台运行CSGO。

1
wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz && tar xf steamcmd_linux.tar.gz && yum clean all && yum install screen -y && chown -R steam /home/steam/ 

wget 命令就是是远程拉取一个包含steam 命令行版的压缩包,tar 命令就是对拉取的文件进行解压,yum clean all 命令是清除升级时候的缓存,chown 命令是在给steam 用户取得在/home/steam/ 文件夹下所有文件的读写权限,因为我们创建了新用户但是没有切换至新用户,现在的操作都处于root账户状态,所以下载的文件所有权是属于root的,我们要将权限扩展到steam这个用户。此外还需要安装一个保持CSGO后台留存的软件-‘Screen’。

切换用户

上一步完成之后,你就会发现在/home/steam/ 下出现了一个steamcmd.sh的文件,接下来就将要使用这个命令行版下载CSGO。

不过我们首先要切换一下用户,从高权限的root切换成新用户steam

1
su steam

接下来设置steam这个用户的密码

1
passwd

你的终端命令行它就会显示:

1
2
Changing password for user steam.
Current password:

第二句冒号后面就是设置密码,要输两遍,不过密码他是不会明文显示的所以设置的时候小心一点。

运行steam下载CSGO

完成上一步后,我们从root切换至steam用户,接下来就要开始下载CSGO

运行steam命令行:

1
./steamcmd.sh

当滚动了很多行代码之后,你就会看见这样一段代码:

1
2
3
4
5
6
7
[  0%] Checking for available updates...
[----] Verifying installation...
Steam Console Client (c) Valve Corporation
-- type 'quit' to exit --
Loading Steam API...Warning: failed to init SDL thread priority manager: SDL not found
OK.
Steam>

出现Steam>就表示可以输入相应的指令,紧接着请一行一行地输入下列的命令,一定要上一次命令完成后输入下一条命令:

1
2
3
4
force_install_dir ./csgo/
login anonymous
app_update 740 validate
quit

以下是上面的命令解释:

force_install_dir ./csgo/表示在‘/home/steam/’下新建一个叫csgo的文件夹,这就是csgo服务器文件的存放地

login anonymous表示用匿名方式登陆到steam的服务器,当然你也可以用自己的steam账号,但是需要输入密码,后续更新也会比较麻烦

app_update 740 validate表示下载CSGO的服务器文件,740就是CSGO服务器的代号,validate就是下载验证,后续更新也可以删除这一词

quit这个就很好理解了,就是退出steam命令行

等煮个咖啡的功夫,CSGO就在你的服务器上安装完毕了。

配置CSGO服务器

申请GLST

首先需要向V社申请开设社区服务器的GSLT许可用于开服:

打开https://steamcommunity.com/dev/managegameservers,如果不能访问Steam社区请使用steamcommunity 302,

请记住你的令牌,且妥善保管,一台服务器只能使用一个唯一的令牌,再开其他服务器需要再次生成,注意这个令牌代表着你的开服账号,如果你服务器违反了CSGO社区服务器守则,你的开服账号将遭到连带封禁,我见过的是30天封禁而且是红信,虽然不是我,但是一定要重视,如果你想要安装违规插件,请使用小号生成令牌。

配置服务器server.cfg

完成这些之后就需要用你刚刚申请的GLST来配置你的server.cfg

进入/home/steam/csgo/csgo/cfg下打开或新建文件server.cfg,或者你也可以:

1
cd /home/steam/csgo/csgo/cfg

输入以下内容(//后内容为本行注释,非指令内容,可以去掉):
1
2
3
4
5
6
7
8
9
10
11
12
hostname "My CSGO Server"  //设置服务器名称,暂不支持中文(需要插件)
rcon_password "SBDXCNMB" //rcon密码,用于远程连接此CSGO服务器控制台的密码
sv_password "SBSB" //服务器密码(可留空即为公开)
sv_tags "retakes,pratice,PCG" //服务器标签(国际服社区服浏览器可以看到),可自定,用英文逗号隔开
host_info_show 2 //服务器信息展示 0即不展示 1一般信息 2尽可能多 可自定
host_players_show 2 //服务器人数展示 0不显示 1只显示人数不显示玩家 2即显示人数和在线玩家
sv_setsteamaccount XXXXXXXXXXXXXXXXXXXX //填入上面申请的GLST令牌,每个服只能用一个
exec banned_user.cfg //读取封禁名单
exec banned_ip.cfg //读取封禁IP
writeid
writeip
sv_region 4 //服务器区域:亚洲

最基础的CSGO社区服务器配置已经完成,然后保存即可,

启动服务器与调试

现在我就可以准备启动服务器了,命令行输入:

1
screen -S csgo

这里的操作是使用screen命令使我们新建一个名叫csgo的窗口,立刻理解成Win10的Win+Tab虚拟桌面,这样一会我们退出时,你的CSGO服务器也会在运行。

然后进入到CSGO目录下:

1
cd /home/steam/csgo/

在终端下输入一下命令:

1
./srcds_run -game csgo -tickrate 128 -console -usercon +game_type 0 +game_mode 1 +mapgroup mg_active +map de_mirage -maxplayers_override 9

我们来一部分一部分解释,首先./srcds_run代表开始运行,后面的都属于启动项,这个srcds就是Source Dedicated Server(起源引擎独立服务器)的意思,+maxplayers_override这个不用说,就是限制服务器人数的。

表示告诉起源引擎服务器,这个游戏是CSGO

这个不用说,表示服务器启动要以128tick模式启动

启用控制台输入,可远程接收命令

允许拥有rcon密码的人进行远程管理

表示游戏模式
1.休闲模式    +game_type 0 +game_mode 0
2.军备竞赛    +game_type 1 +game_mode 0
3.爆破模式    +game_type 1 +game_mode 1
4.死亡竞赛    +game_type 1 +game_mode 2
更多模式请参阅/csgo/gamemodes.txt

mg_active表示地图组, +map de_mirage表示地图组启动的第一张图是mirage
所有地图组
mg_bomb拆除地图组:
mg_hostage人质解救地图组
mg_lowgravity低重力地图组
mg_demolition爆破地图组
mg_armsrace军备竞赛地图组
mg_casualdelta炸弹拆除地图组 II 号
mg_casualsigma炸弹拆除地图组 I 号
mg_reserves后备生涯地图组
mg_deathmatch经典地图组
mg_skirmish_stabstabzap戳戳乐
mg_skirmish_flyingscoutsman跳狙飞人
mg_skirmish_triggerdiscipline弹无虚发
mg_skirmish_headshots砰!爆头!
mg_skirmish_huntergatherers采猎者
mg_skirmish_heavyassaultsuit重型突击套装
mg_skirmish_armsrace军备竞赛(战争游戏)
mg_skirmish_demolition爆破模式(战争游戏)
请参阅 /csgo/gamemodes.txt 文件以了解或编辑地图组中相应地图

然后会滚一堆屏,等到屏幕上出现:

1
2
3
4
5
6
7
Connection to Steam servers successful.
  Public IP is 233.233.233.2333.
Assigned persistent gameserver Steam ID [G:1:666666666].
Gameserver logged on to Steam, assigned identity steamid:666666666666666666666666
Set SteamNetworkingSockets P2P_STUN_ServerList to 'x.x.x.x:3478' as per SteamNetworkingSocketsSerialized
VAC secure mode is activated.
GC Connection established for server version 1175, instance idx 1

这就表示CSGO服务器已经启动成功了,接下来你只需要在CSGO游戏端控制台输入connect x.x.x.x(你的IP)并回车就可以连接到服务器了,如果你的服务器设置了密码,则需要再这之前输入password xxxxxx(你的密码)即可,国际服可以用社区服浏览器搜索连接。如果要向服务器发送指令的话,在控制台输入rcon_password xxxxxx(你的密码),然后rcon+(你的命令)即可,使用时去掉加号,注意空格。

如果你发现用自己VPS的IP地址链接不进去的话,记得要开放你在VPS和宝塔面板上的27015TCP/UDP端口。

最后

到现在为止所配置的CSGO服务器的功能还很原始,下一期我们会讲一讲如何在服务器上安装SourceMod和MetaMod,讲一讲如何使用插件。

参考资料: