前言:
目前在Linux系统下搭建CSGO服务器主要有三种方法:LGSM、Steamcmd、docker。
LGSM:全称Linux Game Server Managers,是一个方便Linux系统下对游戏服务器进行安装、管理的开源项目。其本质是一堆提前写好的Shell脚本,围绕服务器提供各种方便管理的功能。
LGSM的好处在于安装简单,功能多样,能极大的降低搭建CSGO服务器搭建和管理的学习成本,能提高工作效率。
本文主要针对大家开服最常用的两个Linux发行版Debian(Ubuntu方法类似)和CentOS,各个不同的发行版之间没有绝对的优劣之分,大家可以根据自己的喜好的使用习惯进行选择。
实操:
准备工作:
我们可以先对系统进行更新(也可以不做这一步,对后面开服的影响不大):
Debian:apt update && apt upgrade -y
CentOS:yum update -y
|
对于CentOS发行版,我们还要再安装EPEL源:
yum -y install epel-release |
完成更新后,由于大多数VPS(即云服务器)所提供的系统镜像都是最小化的,因此我们可以安装一部分软件工具方便后面使用:
Debian:apt -y install vim curl wget tar
CentOS:yum -y install vim curl wget tar gzip2 bzip
|
由于CentOS中需要手动将创建的用户添加进sudo组中才能使用sudo命令,而Debian中不需要,所以使用CentOS的情况下先手动安装CSGO服务器所需的依赖:
CentOS:yum -y install nmap-ncat mailx postfix unzip python3 binutils bc jq tmux glibc.i686 libstdc++ libstdc++.i686 |
完成软件工具的安装后,我们可以安装连接数据库所需的依赖,方便后面使用MySQL数据库:
Debian:apt -y install lib32z1
CentOS:yum -y install zlib.i686
|
关于不同发行版使用数据库所需的依赖,论坛已经有大佬整理好了,链接贴在此:https://bbs.csgocn.net/thread-22.htm
然后我们就可以安装宝塔了,宝塔有诸多功能,可以傻瓜式搭建MySQL数据库、网站、FastDL服务器等等:
Debian:wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && bash install.sh
CentOS:wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh
|
不同的发行版安装宝塔的方法在宝塔官网均有介绍,这里也不再赘述:https://www.bt.cn/btcode.html#mysql
完成上面的准备工作后,我们就可以开始安装LinuxGSM了。
安装LinuxGSM:
由于LGSM出于安全考虑不允许在root身份下安装使用,因此我们需要创建一个新的用户:
Debian:sudo useradd -m csgo -g sudo -s /bin/bash -d /home/csgo
sudo passwd csgo
CentOS:adduser csgo
passwd csgo
|
这里对使用到的指令做一点补充。useradd -m csgo -g是指创建一个名为csgo的新用户。sudo -s /bin/bash -d /home/csgo指的是为新用户csgo创建一个路径为/home/csgo的专属工作区(即文件夹),而这一步在CentOS中是不需要的,CentOS中创建新用户会自动创建以该用户名为路径的工作区,且路径在home分区下。passwd csgo指的是为名为csgo的用户设置密码。
创建好了新用户后,就可以切换到新用户的环境了:
看到类似这样的提示,则已经切换到csgo账户:
接下来就可以安装LGSM了,由于LGSM的仓库在github上,国内直连会非常缓慢,于是我将其fork到了我个人的gitee仓库上供大家使用,只需要根据我给出的步骤进行安装即可。P.S.可能更新不及时,以后有时间我还会制作一个一键部署脚本,届时我会设置一个能自动更新的gitee/gitcode仓库。
如下步骤没有特殊说明都是Debian和CentOS同理:
wget -O linuxgsm.sh https://gitee.com/AEISet/LinuxGSM/raw/master/linuxgsm.sh && chmod 744 linuxgsm.sh && bash linuxgsm.sh csgoserver |
拉取完linuxgsm.sh后,就可以根据指引继续输入:
然后脚本就会自动拉取文件,我们需要等待一会直到看到如下图的情况:
直接敲击回车即可,然后LinuxGSM会先对所需的依赖进行检测,出现如下画面:
到了这一步,在CentOS环境下,我们在准备工作中已经手动将所需的所有依赖进行了安装,因此应该会显示全绿并直接进入CSGO服务器的下载安装,而Debian环境下我们没有事先安装依赖,在此处LGSM会自动请求安装依赖,会提示你输入用户csgo的密码,只需要将密码输入,就会开始安装依赖。
当依赖安装完成后,切记要再次输入./csgoserver install才会重新开始CSGO服务器的安装进程。
看到这样的画面表明已经开始安装SteamCMD,并会安装CSGO服务器。
P.S.某些情况下安装完SteamCMD但未安装CSGO服务器安装进程就会终止,此时请利用XFTP或WinSCP之类的SSH文件传输工具打开/home/csgo/serverfiles路径检查是否已经将CSGO服务器文件安装完成(服务器的文件结构与客户端的类似),若没有安装完成,则在进程最后询问是否安装完成输入N并回车,或不小心输入了Y回车后再次输入./csgoserver install进行安装。
如上图就是只安装了SteamCMD后安装进程就终止了,我们只要输入n再回车安装进程就会重新开始,这次就会将CSGO服务器进行安装了。然后需要等待一段时间,这个时间的长短取决于你的网速和硬件性能。
趁着这个等待的期间,我们可以先去注册一个GSLT(Game Server Login Token),这是用于CSGO联机服务器的验证凭证。登陆https://steamcommunity.com/dev/managegameservers。需要用到魔法上网,然后登录你的Steam账户,创建一个新的密钥并复制下来记住,待会服务器安装好后会用到。
服务器安装完成后会出现如下画面:
这里是让填写GSLT Token,也就是我们刚才趁服务器安装期间创建的,这里可以填入,也可以选择不填,后面还可以再填。
修改配置文件:
LGSM的方便之处在于不仅提供了很多方便服务器管理的功能,还提前将配置文件的模板撰写好了,我们只需要根据需求进行一定的修改就能将服务器开起来。
我们首先修改主配置文件:
cd /home/csgo/lgsm/config-lgsm/csgoserver
cat _default.cfg > csgoserver.cfg
vim csgoserver.cfg
|
我们进入了vim编辑器对csgoserver.cfg进行修改会看到如下画面:
补充关于vim编辑器的小知识点,使用vim编辑器打开任何文本文件默认都只是查看,需要按下键盘的i才会进入编辑模式,如果要保存,则按esc然后输入:w。如果要退出,则按esc输入:q。保存并退出则是:wq。
gamemode和gametype的值可以设定游戏的模式,例如:
休闲模式
+game_type 0 +game_mode0
竞技模式
+game_type 0 +game_mode1
军备竞赛
+game_type 1 +game_mode0
爆破模式
+game_type 1 +game_mode1
死亡竞赛
+game_type 1 +game_mode2
由于LGSM已经提前将配置文件的模板设置好了,我们不需要将我这里罗列出来的参数进行复制粘贴,只需要找到对应的cvar并对后面的数值进行修改即可。
P.S.CSGO的服务器和客户端类似都有启动项设置,+game_type 0的意思是服务器启动时自动往控制台输入game_type 0这个指令。
在这个文件中,我们重点需要修改game_type,game_mode,port,defaultmap,maxplayers,tickrate,gslt几个参数。其中port是设置服务器端口。defaultmap是服务器启动时的默认地图。maxplayers是服务器允许加入的玩家数,最大人数是64。tickrate则是服务器的tick设置,通常满十,BHOP之类的模式都建议设置为128tick,值得注意的是,128tick对带宽的需求更大,如果你的服务器只有小水管,那还是建议不要设置成128tick。
P.S.关于服务器带宽的问题,CSGO服务器的带宽需求不是线性的,单一服务器人数越多需要的带宽会越来越大,例如5M可能可以承载8人128tick,但10人128tick就会需要8M带宽了。如果带宽不大,降低tickerate是最佳选择。
对于wsapikey,wscollectionid,wsstartmap的补充说明:
这三个参数和使用创意工坊地图有关,wsapikey是你的SteamAPI,根据配置文件中给出的网址进行查询获取。wscollectionid是你在创意工坊中设置的地图合集的id,wsstartmap则是启动时使用的默认创意工坊地图,需要填入地图的id(数字)。但由于国内网络环境的原因,直接使用创意工坊的地图往往会导致一些奇怪的问题例如换图卡住,所以需要用创意工坊地图的话强烈建议下载下来后上传到maps文件夹中并上传到你的FastDL服务器中。
修改好csgoserver.cfg后,我们再来修改和游戏内有关的一个csgoserver.cfg文件:
vim /home/csgo/serverfiles/csgo/cfg/csgoserver.cfg |
这个配置文件就主要涉及到CSGO服务器控制台指令了。我就不做解释了,大家根据文件里的英文说明去修改就好。
安装插件:
LinuxGSM可以很方便的安装CSGO插件所需的Sourcemod平台,若刚刚在使用vim修改配置文件,则路径不在根目录:
回到根目录后,输入:
./csgoserver mi(即mod install) |
然后就会看到如下画面:
我们需要安装的是Metamod和Sourcemod,需要注意的是,这里要先安装Metamod后再安装Sourcemod:
metamodsource
待安装完成后,再次./csgoserver mi
sourcemod
|
安装完成后,在serverfiles/csgo中就会看到一个名为addons的文件夹。
然后我们创建一个最高服务器权限的管理员:
echo '"你的STEAMID" "99:z"' >> /home/csgo/serverfiles/csgo/addons/sourcemod/configs/admins_simple.ini |
STEAMID可以进入任何一个官方服务器后,打开控制台输入status,格式是STEAM_X:X:XXXXXXX的就是STEAMID。
至此CSGO服务器已经安装完成了。接下来还需要对端口进行放行:
su - root
firewall-cmd --zone=public --add-port=27015/tcp --permanent firewall-cmd --zone=public --add-port=27015/udp --permanent firewall-cmd --reload firewall-cmd --list-ports
|
这一步如果你安装了宝塔,可以到宝塔里的防火墙中进行放行设置。27015是默认的CSGO服务器端口,如果你设置了其他的端口,则这里的27015改为你设置的端口。此外,CSGO是走UDP协议的,实际上可以不放行TCP协议的27015端口,只需要放行UDP协议的即可。如果你使用的云服务器有自带的防火墙(例如腾讯云,百度云,阿里云等),则需要进入到云服务器控制台再进行一次放行。
尾巴:
LinuxGSM的脚本具备诸多功能,针对CSGO服务器的功能只需要根目录下输入./csgoserver或bash csgoserver就可以看到其具备的所有功能,更多的玩法就靠大家自己去摸索了:
论坛里有很多技术高超经验老道的大佬每每在谈及用什么方式开服时总会打趣道“手动开服才是真男人”。的确,折腾是一种乐趣。但LinuxGSM为我们从零开始学习Linux系统和CSGO服务器搭建打造了一个极佳的平台,同时LinuxGSM带来的便利性不言而喻,对于我们不是以开CSGO服务器为主业的人来说,LGSM大大的减少了我们开服的学习成本和时间成本,也极大的提升了管理服务器的效率。因此我个人一直都是更加推荐使用LinuxGSM工具来搭建服务器的,这也是我花费大量时间来撰写本帖帮助开服新人的初衷。
结尾再贴上经过我修改好的使用国内仓库的LinuxGSM的压缩文件:
您好,本帖含有特定内容,请回复后再查看。
转载引用请注明出处!!!