S GO确实是一个经久不衰的游戏。如何搭建自己的CS GO私人服务器呢?体验自己当服主,随时联机的快乐。
前言
CS GO(《反恐精英:全球攻势》英语:Counter-Strike: Global Offensive,中国香港和台湾译作“绝对武力:全球攻势”)发布于2012年,随着不断的更新,游戏依旧火爆。
准备工具
服务器
目前,CS GO的服务器自建,支持Linux Server和Windows Server服务器,这两个就要看自己的取舍了:理论上,Windows Server更容易上手,毕竟大多数人的操作系统是Windows,但是对资源的浪费很大,
为了重新体现我们是Linux技术博主,本次搭建CS GO,使用Linux Server进行演示
如果你并没有服务器设备,需要去购买/租借:
传输软件
后续我们需要设置管理员,管理员的设定,需要借助两个mods:
而CS GO安装mod主要的方法就是替换和追加文件。为了方便我们把本地的文件,拖拽上传到Linux服务器上,我们这里使用filezilla进行数据传输:
Filezilla下载地址:https://filezilla-project.org/download.php?type=client
服务器初始化
服务器初始化,我们Linux Server和Windows Server都讲一下,不过后续章节就只讲Linux Server了哦。Windows Server用户,可以按图索骥(因为Windows Server操作比Linux Server简单,需要切换用户的时候,Windows用户无需操作)。
之后,就可以远程连接服务器。(远程桌面):
后续如需上传本地配置给服务器使用时,我们可以使用微软远程桌面(Microsoft Remote Desktop),并开设共享文件夹。
设置本地交互目录
并且创建一个共享的文件夹,用来文件交互:
Windows如下:
Windows自带的远程:鼠标右击开始菜单>>运行,输入mstsc命令,打升远程桌面对话框:
打开高级选项:
设置高级
并且,对本地文件夹进行映射:
设置本地交互目录
远程后效果
SteamCMD
本章节目录,所有操作均在Linux Server的Terminal内操作(SSH连接服务器后的“黑窗”),不是本地Windows或者macOS、Linux,特此提醒。
在Terminal上,我们首先依靠软件包管理器先安装依赖:
使用软件包管理器安装依赖
这样就安装了我们SteamCMD所需的前置依赖,也方便我们后续使用wget下载SteamCMD和Mod等操作。
观察SteamCMD官方文档,SteamCMD需要用一个叫steam的用户,并在steam用户的“家”目录下的steam文件夹内操作。所以,我们提前创建:
添加Steam用户
之后,我们切换到steam用户,并创建文件夹:
创建Steam文件夹
下载SteamCMD原始文件并解压:
下载SteamCMD原始文件
到此,我们的SteamCMD前期的准备就完成了,准备接下来的CS GO服务器拉取以及初始化等操作。
拉取CS_GO服务端
本章节目录,所有操作均在Linux Server的Terminal内操作(SSH连接服务器后的“黑窗”),不是本地Windows或者macOS、Linux,特此提醒。
通过steamcmd创建游戏目录及安装对应游戏(这里重定向CS GO游戏的下载目录到Steam用户“家”目录下的Steam/my_csgo_server内:
其中:
~/Steam/my_csgo_server:CS GO服务器重定向下载地址;
740:CS GO服务器游戏代号(appid)。
SteamCMD拉取CSGO
SteamCMD拉取CSGO中
SteamCMD拉取CSGO成功
可以看到,我们这样就拉取成功了,可以进行CS GO的初始化步骤了。
如果出现错误,比如这样的:
SteamCMD拉取CSGO失败
只需要重新运行./steamcmd.sh +force_install_dir ~/Steam/my_csgo_server +login anonymous +app_update 740 +quit即可。
Steamaccount
在进行CS GO社区服务器初始化前,我们需要获取一个steamaccount创建的子ID,也就是CS GO配置文件的sv_setsteamaccount;有了这个进行开服,小伙伴才可以使用Steam的账号登陆CS GO的游戏并使用自己Steam的用户资料进入。
获取的条件:
Steam 帐户目前不能处于被社区封禁或锁定状态。
Steam 帐户不能处于受限状态。
Steam 帐户必须以及绑定了手机令牌。
Steam 帐户必须拥有所创建游戏服务器对应的游戏。
Steam 帐户可最多能创建1000个游戏服务器。
Steam 账号最少实际消费达5美元(折合人民币35元左右,礼品卡激活的商品价值不计算到其中)
首先,我们进入Steam Account的官网并选择登录Steam账号:
登录
登录后,填写信息:
登录后,填写信息
最后,提交后,即可得到sv_setsteamaccount:
得到sv_setsteamaccount
我们拿着这个sv_setsteamaccount,后续开服会使用到,比较关键。
CS_GO服务端初始化
本章节目录,所有操作均在Linux Server的Terminal内操作(SSH连接服务器后的“黑窗”),不是本地Windows或者macOS、Linux,特此提醒。 并且,当前在/home/steam/Steam目录内,以下相对路径需要注意
配置文件编写
首先,我们根据官方给的配置文件模版进行配置文件的创建,复制内容:
在my_csgo_server/csgo/cfg下创建一个叫server.cfg的文件,粘贴内容到其中,你可以使用vim,也可以本地配置好后,上传到服务器内对应文件夹内。
比如,使用vim,创建并编辑文件:
使用vim创建并编辑
修改配置项为自己内容:
编辑配置项
其中:
hostname:服务器昵称,用于联机大厅内显示;
rcon_password:rcon的密码,通常不会使用;
sv_password:服务器密码,加入该CSGO服务器时,需要输入的密码;
sv_setsteamaccount:上个章节获取的。
最后的文件目录效果:
编辑配置项
之后,就可以进行启动了。
启动服务器
CS GO服务器,默认也是使用脚本进行启动并且和Minecraft服务器,持续处于交互模式,方便我们在后台输入指令进行服务器的控制;所以,我们也是使用screen挂起后台比较好。 但是,我们后期还要安装mod,所以这里我就不演示screen如何挂起CS GO的服务器了,screen的使用,可以参考:终端命令神器--Screen命令详解。助力Unix/Linux使用和管理
我们这里回到CS GO的安装目录,如果你按着本文的操作方法,Terminal在上章节基础上,进入my_csgo_server目录,即:在/home/steam/Steam/my_csgo_server目录内即可:
CS GO目录
我们运行srcds_run即可(Windows Server用户运行srcds.exe):
之后,CSGO的服务器就会开始运行:
CS GO运行
可选内容=>
你也可以添加启动参数进行CS GO服务器的启动:
其中:
tickrate:服务器每秒钟接收并运算的次数,CS GO默认为64次(tickrate 64);
game_type&game_mode:游戏模式,各个数值含义参考教程;
maxplayes_override:最大玩家数量;
port:游戏端口;
autoupdate:自动更新,开启后,需要定义steam_dir和steamcmd_script;
steam_dir:SteamCMD安装地址;
steamcmd_script:基于SteamCMD的更新命令存放地址。
如果你跟着本教程来的,可以在~/Steam下创建一个叫update_csgo.txt的文件夹,并追加内容:
出现sv_setsteamaccount的数值,说明CSGO运行成功:
CS GO运行成功
这个时候,我们的CS GO就可以进行本地与服务器的连接了。但是还是需要对防火墙进行放行。
关闭服务器
这里提供一个可选项,如果你需要关闭服务器,只需要在控制台上输入quit即可安全关闭CS GO服务器:
安全关闭
服务器防火墙
现在,我们需要对服务器防火墙进行放行。本着用那个端口就放行那个的原则,CS GO默认使用的是UDP协议的27015端口,为了确保端口联通,我们把TCP也放行:
之后,就可以服务器连接了,可以看看下一章节。
本地连接
本章节目录,所有操作没有特别说明,均在本地Windows、macOS上操作哦;特此提醒。
本地,其实很多种方法连接到远程服务器;比如,你可以在开始游戏后,在社区服务器浏览器内查找你的服务器;也可以更简单点,直接使用开发者控制台进行连接,我们就使用这个建党的方法。
打开本地的CS GO,选择各项设置菜单,选择启动开发者控制台:
启动控制台
之后,我们按~即可打开控制台:
打开控制台
在之后,一次输入:
即可进行连接:
远程连接
进入游戏成功:
远程连接成功
服务器上的控制台也有成功加入的日志反馈:
远程连接成功
添加管理员
添加管理员,其实是依靠CS GO的社区插件SourceMod;而SourceMod需要前置依赖MetaMod,一些第三方插件,还需要前置依赖Ptah;总的来说:
MetaMod 这个是相当于 Framework
SourceMod 相当于 Admin
Ptah 相当于 Extension 其他的mod(皮肤,死斗啥的。。) 才相当于 Plugins
-- 阿杰(这里填你自己游戏的ID)
Ptah安装,其实和MetaMod和SourceMod一样,这里我们就演示这两个。
安装MetaMod
现在,我们安装我们的MetaMod,这个是相当于所有插件的前置依赖。
我们首先进入MetaMod的官网:http://www.sourcemm.net/downloads.php?branch=stable
下载MetaMod的插件包到本地:
下载MetaMod到本地
下载后,并解压文件:
MetaMod解压后,得到addons文件夹
这个时候,打开FileZilla软件,上方填入我们的服务器信息:
下载MetaMod到本地
之后,左边就是本地,右边就是服务器。我们这边定位到addons文件夹(MetaMod解压出的addons文件夹),右边定位到CSGO下载目录下的csgo文件夹内,并移动addons到其中:
上传addons到服务器(拖拽即可)
到此,Metamod就安装好了。(是不是很神奇?合并大法好呀);
我们重启CS GO就会生效(也就是先quit,之后再启动CS GO服务器)。
安装SourceMod
接下来,我们来安装SourceMod,其实安装的方法也很简单,也是简单的下载、合并。
我们首先进入SourceMod的官网:http://www.sourcemod.net/downloads.php
下载SourceMod的插件包到本地:
下载SourceMod到本地
下载后,并解压文件:
SourceMod解压后,得到的文件夹
这个时候,回到FileZilla软件,右键刷新一下本地目录,打开SourceMod解压后的文件夹:
FileZilla打开SourceMod文件夹
之后,可以看到有addons和cfg文件,我们打开addons,将里面文件合并到服务器内addons文件夹内,注意是合并,而不是替换,比如:addons下metamod合并后的效果:
合并后的效果
同理,将cfg文件夹合并到服务器上与addons同级的cfg文件夹内:
合并后的效果
到此,SourceMod就安装好了,我们可以重启CS GO服务进程,之后,就可以使用命令看看CS GO是否有sm命令了:
使用SourceMod的sm命令,查看已经安装的插件
如果出现命令不存在,那就是没有安装对哦,可以再检查一下后,重新启动CS GO服务器再看看。
更多的SourceMod命令,可以查看官方文档:https://wiki.alliedmods.net/index.php/Category:SourceMod_Documentation
设置管理员
现在,我们就来设置管理员,其实很简单。首先,我们客户端登录CS GO,呼出控制台(上文设置的按~),输入status:
获取SteamID
这里我们就获取了用户的SteamID,比如是这样的:
我们只需要打开CS GO游戏目录下的csgo/addons/sourcemod/configs/admins_simple.ini:
修改admins_simple.ini
在文件的末尾追加:
其中:STEAM_1:0:9999999999替换为你的ID哦。
保存并退出。重启服务器,用户就是管理员了(如果你CS GO在screen内并没有关闭,也可以直接执行sm_reloadadmins,这样不需要重启服务器,也可以设置好管理员)。
PS:管理员在控制台(~)内输入sm_admin可激活控制面板:
sm_admin使用效果
因为我使用macOS登录CS GO,所以字库不全。
Q&A
如何服务器迁移
服务器迁移其实很简单,你可以把所有自己的配置文件打包备份,不过我建议你可以直接备份CS GO安装目录下的CSGO:
备份该文件
这样备份,可以保存服务器配置的同时,插件也保存下来,避免二次配置的麻烦。
如何24小时运行服务器
其实就是如何挂起CS GO,可以在screen内启动CS GO,并让screen后台运行即可。
如何更新CSGO服务器
首先,你备份CSGO服务器前,建议先备份CS GO安装目录下的CSGO,之后,到SteamCMD所在目录下,执行:
等待完成后,即可更新完成。
修改配置不生效
修改服务器配置,如:允许传送等配置。但是客户端查看服务器却没有生效,可以排查:
修改配置后,服务器上CSGO服务器需要重新启动;
配置可能填错了。
如何使用创意工坊地图
其实,使用创意工坊的地图很简单,需要添加启动参数:
+host_workshop_map:创意工坊地图ID
-authkey:Steam Web API,用于远程拉取验证;获取Steam Web API参考:
创意工坊的地图ID,其实就是地址栏的Get请求:
获取创意工坊地图路径
获取地图ID
而authkey获取就也很简单,打开https://steamcommunity.com/dev/apikey进行申请:
获取authkey
获取authkey
最后,在CS GO启动时候,启动参数内添加即可。
比如,原本的启动是:
添加上启动参数:
其中:22333和332222需要替换为真实数值。
比如,我的启动参数:
更改地图
最后,成功加载到地图:
地图加载完成
启动后连接:
户端载入地图
需要注意:
地图一般100~300MB,你可以打开服务器上CSGO服务器安装地址/csgo/maps/workshop/,根据地图ID,查看地图下载情况,判断地图是否成功下载。
有时候设置了host_workshop_map后,无法连接服务器,这个时候……可能是因为你服务器无法连接Steam的创意工坊。可以多重启CS GO试试看。或者手动安装地图。
END
到此,CSGO服务器的搭建流程就结束了嗷,有问题可以留言哦~~