搭建自己的CS GO服务器,并配合Sourcemod设置管理员
本文最后更新于 2024年11月2日 凌晨
CS GO确实是一个经久不衰的游戏。如何搭建自己的CS GO私人服务器呢?体验自己当服主,随时联机的快乐。
前言
CS GO(《反恐精英:全球攻势》英语:Counter-Strike: Global Offensive,香港和台湾译作“绝对武力:全球攻势”)发布于2012年,随着不断的更新,游戏依旧火爆。
最近一位B站的粉丝,就发私信,希望和小伙伴搭建一个CS GO的个人私服;我之前并没有玩过CS GO,不过,既然是铁粉的需求,我们就尝试了一下。总的来说,确实有一些坑。
准备工具
服务器
目前,CS GO的服务器自建,支持Linux Server和Windows Server服务器,这两个就要看自己的取舍了:理论上,Windows Server更容易上手,毕竟大多数人的操作系统是Windows,但是对资源的浪费很大,举个例子:一台2C 4G的服务器,Windows Server可能系统占用1G内存,而Linux才占100M不到。
为了重新体现我们是Linux技术博主,本次搭建CS GO,使用Linux Server进行演示(腾讯云Debian Linux系统)。
如果你并没有服务器设备,需要一个购买/租借,强烈推荐学生用户:
另外,为大家争取到优惠*(੭ˊᵕˋ)੭ଘ,本站专属优惠~~(可能比学生优惠还优惠哦~):
香港、新加坡等地区,还可以买Lighthouse的香港、新加坡地区服务器,性价比高,适合有国际建服的需求。
经过测试,一台2C 4G 6M配置腾讯云轻量应用服务器,可以流畅运行CS GO服务器,6M带宽足够十个人以128tick进行 5v5(・_・;
如果你是Windows Server用户,那么建议至少选择2C 4G的服务器配置。
传输软件
后续我们需要设置管理员,管理员的设定,需要借助两个mods:
而CS GO安装mod主要的方法就是替换和追加文件。为了方便我们把本地的文件,拖拽上传到Linux服务器上,我们这里使用filezilla进行数据传输:
Filezilla下载地址:https://filezilla-project.org/download.php?type=client
辅助视频
嘿嘿,做教程视频不易(B站根本不会推荐引流),请务必一键三连嗷~B站视频地址:https://www.bilibili.com/video/BV1ud4y1R7Rk
关于付费
首先,明确说明,小白用户完全可以看此篇文章后,自己搭建。
迫于生计:
- 接受付费远程帮忙搭建:博客协助端口(方式)
- 接受爱发电捐赠:@Mintimate
感谢所有捐赠用户⁄(⁄ ⁄ ⁄ω⁄ ⁄ ⁄)⁄
服务器初始化
服务器初始化,我们Linux Server和Windows Server都讲一下,不过后续章节就只讲Linux Server了哦。Windows Server用户,可以按图索骥(因为Windows Server操作比Linux Server简单,需要切换用户的时候,Windows用户无需操作)。
Linux Server
如果你购买的是Linux Server(Debian、Ubuntu和CentOS等)服务器:
以腾讯云服轻量应用服务器Lighthouse为例,如果你购买的是Linux服务器(Debian、Ubuntu或CentOS等Linux发行版本服务器),如果想快速初始化,可以按
Windows Server
如果你购买的是Windows Server(Windows Server2019、Windows Server 2022)。我们购买服务器后,切换到腾讯云服务器后台,重制我们的Administrator用户密码:
之后,就可以远程连接服务器。你可以使用腾讯云的WebRDP(远程桌面):
后续如需上传本地配置给服务器使用时,我们可以使用微软远程桌面,并开设共享文件夹。
macOS如下:
并且创建一个共享的文件夹,用来文件交互:
Windows如下:
Windows自带的远程:鼠标右击开始菜单
>>运行
,输入mstsc
命令,打升远程桌面对话框:
打开高级选项:
并且,对本地文件夹进行映射:
SteamCMD
本章节目录,所有操作均在Linux Server的Terminal内操作(SSH连接服务器后的“黑窗”),不是本地Windows或者macOS、Linux,特此提醒。
在Terminal上,我们首先依靠软件包管理器先安装依赖:
1 |
|
这样就安装了我们SteamCMD所需的前置依赖,也方便我们后续使用wget
下载SteamCMD和Mod等操作。
观察SteamCMD官方文档,SteamCMD需要用一个叫steam的用户,并在steam用户的“家”目录下的steam文件夹内操作。所以,我们提前创建:
1 |
|
之后,我们切换到steam用户,并创建文件夹:
1 |
|
下载SteamCMD原始文件并解压:
1 |
|
到此,我们的SteamCMD前期的准备就完成了,准备接下来的CS GO服务器拉取以及初始化等操作。
拉取CS_GO服务端
本章节目录,所有操作均在Linux Server的Terminal内操作(SSH连接服务器后的“黑窗”),不是本地Windows或者macOS、Linux,特此提醒。
通过steamcmd创建游戏目录及安装对应游戏(这里重定向CS GO游戏的下载目录到Steam用户“家”目录下的Steam/my_csgo_server
内:
1 |
|
其中:
~/Steam/my_csgo_server
:CS GO服务器重定向下载地址;740
:CS GO服务器游戏代号(appid)。
可以看到,我们这样就拉取成功了,可以进行CS GO的初始化步骤了。
如果出现错误,比如这样的:
只需要重新运行./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的官网:https://steamcommunity.com/dev/managegameservers并选择登录Steam账号:
登录后,填写信息:
最后,提交后,即可得到sv_setsteamaccount
:
我们拿着这个sv_setsteamaccount
,后续开服会使用到,比较关键。
CS_GO服务端初始化
本章节目录,所有操作均在Linux Server的Terminal内操作(SSH连接服务器后的“黑窗”),不是本地Windows或者macOS、Linux,特此提醒。
并且,当前在/home/steam/Steam
目录内,以下相对路径需要注意
配置文件编写
首先,我们根据官方给的配置文件模版进行配置文件的创建,复制内容:
1 |
|
在my_csgo_server/csgo/cfg
下创建一个叫server.cfg
的文件,粘贴内容到其中,你可以使用vim
,也可以本地配置好后,上传到服务器内对应文件夹内。
比如,使用vim
,创建并编辑文件:
1 |
|
修改配置项为自己内容:
其中:
- 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
目录内即可:
我们运行srcds_run
即可(Windows Server用户运行srcds.exe
):
1 |
|
之后,CSGO的服务器就会开始运行:
可选内容=>
你也可以添加启动参数进行CS GO服务器的启动:
1 |
|
其中:
tickrate
:服务器每秒钟接收并运算的次数,CS GO默认为64次
(tickrate 64);game_type
&game_mode
:游戏模式,各个数值含义参考教程;maxplayers_override
:最大玩家数量;port
:游戏端口;autoupdate
:自动更新,开启后,需要定义steam_dir
和steamcmd_script
;steam_dir
:SteamCMD安装地址;steamcmd_script
:基于SteamCMD的更新命令存放地址。
如果你跟着本教程来的,可以在~/Steam
下创建一个叫update_csgo.txt
的文件夹,并追加内容:
1 |
|
出现sv_setsteamaccount
的数值,说明CSGO运行成功:
这个时候,我们的CS GO就可以进行本地与服务器的连接了。但是还是需要对防火墙进行放行。
关闭服务器
这里提供一个可选项,如果你需要关闭服务器,只需要在控制台上输入quit
即可安全关闭CS GO服务器:
服务器防火墙
现在,我们需要对服务器防火墙进行放行。本着用那个端口就放行那个的原则,CS GO默认使用的是UDP协议的27015
端口,为了确保端口联通,我们把TCP也放行:
之后,就可以服务器连接了,可以看看下一章节。
本地连接
本章节目录,所有操作没有特别说明,均在本地Windows、macOS上操作哦;特此提醒。
本地,其实很多种方法连接到远程服务器;比如,你可以在开始游戏后,在社区服务器浏览器内查找你的服务器;也可以更简单点,直接使用开发者控制台进行连接,我们就使用这个建党的方法。
打开本地的CS GO,选择各项设置菜单,选择启动开发者控制台:
之后,我们按~
即可打开控制台:
在之后,一次输入:
1 |
|
即可进行连接:
进入游戏成功:
服务器上的控制台也有成功加入的日志反馈:
添加管理员
添加管理员,其实是依靠CS GO的社区插件SourceMod
;而SourceMod
需要前置依赖MetaMod
,一些第三方插件,还需要前置依赖Ptah
;总的来说:
1 |
|
Ptah安装,其实和MetaMod和SourceMod一样,这里我们就演示这两个。
安装MetaMod
现在,我们安装我们的MetaMod
,这个是相当于所有插件的前置依赖。
我们首先进入MetaMod
的官网:http://www.sourcemm.net/downloads.php?branch=stable
下载MetaMod的插件包到本地:
下载后,并解压文件:
这个时候,打开FileZilla软件,上方填入我们的服务器信息:
之后,左边就是本地,右边就是服务器。我们这边定位到addons文件夹(MetaMod解压出的addons文件夹),右边定位到CSGO下载目录下的csgo文件夹内,并移动addons到其中:
到此,Metamod就安装好了。(是不是很神奇?合并大法好呀);
我们重启CS GO就会生效(也就是先quit,之后再启动CS GO服务器)。
安装SourceMod
接下来,我们来安装SourceMod
,其实安装的方法也很简单,也是简单的下载、合并。
我们首先进入SourceMod
的官网:http://www.sourcemod.net/downloads.php
下载SourceMod的插件包到本地:
下载后,并解压文件:
这个时候,回到FileZilla软件,右键刷新一下本地目录,打开SourceMod解压后的文件夹:
之后,可以看到有addons
和cfg
文件,我们打开addons
,将里面文件合并到服务器内addons
文件夹内,注意是合并,而不是替换,比如:addons下metamod
合并后的效果:
同理,将cfg
文件夹合并到服务器上与addons
同级的cfg
文件夹内:
到此,SourceMod就安装好了,我们可以重启CS GO服务进程,之后,就可以使用命令看看CS GO是否有sm命令了:
1 |
|
如果出现命令不存在,那就是没有安装对哦,可以再检查一下后,重新启动CS GO服务器再看看。
更多的SourceMod命令,可以查看官方文档:https://wiki.alliedmods.net/index.php/Category:SourceMod_Documentation
设置管理员
现在,我们就来设置管理员,其实很简单。首先,我们客户端登录CS GO,呼出控制台(上文设置的按~
),输入status
:
这里我们就获取了用户的SteamID,比如是这样的:
1 |
|
我们只需要打开CS GO游戏目录下的csgo/addons/sourcemod/configs/admins_simple.ini
:
1 |
|
在文件的末尾追加:
1 |
|
其中:STEAM_1:0:9999999999
替换为你的ID哦。
保存并退出。重启服务器,用户就是管理员了(如果你CS GO在screen内并没有关闭,也可以直接执行sm_reloadadmins
,这样不需要重启服务器,也可以设置好管理员)。
PS:管理员在控制台(~
)内输入sm_admin
可激活控制面板:
因为我使用macOS登录CS GO,所以字库不全。
Q&A
如何服务器迁移
服务器迁移其实很简单,你可以把所有自己的配置文件打包备份,不过我建议你可以直接备份CS GO安装目录下的CSGO:
这样备份,可以保存服务器配置的同时,插件也保存下来,避免二次配置的麻烦。
如何24小时运行服务器
其实就是如何挂起CS GO,可以在screen内启动CS GO,并让screen后台运行即可。
如何更新CSGO服务器
首先,你备份CSGO服务器前,建议先备份CS GO安装目录下的CSGO,之后,到SteamCMD所在目录下,执行:
1 |
|
等待完成后,即可更新完成。
修改配置不生效
修改服务器配置,如:允许传送等配置。但是客户端查看服务器却没有生效,可以排查:
- 修改配置后,服务器上CSGO服务器需要重新启动;
- 配置可能填错了。
如何使用创意工坊地图
其实,使用创意工坊的地图很简单,需要添加启动参数:
+host_workshop_map
:创意工坊地图ID-authkey
:Steam Web API,用于远程拉取验证;获取Steam Web API参考:https://steamcommunity.com/dev?l=schinese
创意工坊的地图ID,其实就是地址栏的Get
请求:
而authkey
获取就也很简单,打开https://steamcommunity.com/dev/apikey进行申请:
最后,在CS GO启动时候,启动参数内添加即可。
比如,原本的启动是:
1 |
|
添加上启动参数:
1 |
|
其中:22333
和332222
需要替换为真实数值。
比如,我的启动参数:
1 |
|
最后,成功加载到地图:
启动后连接:
需要注意:
- 地图一般100~300MB,你可以打开服务器上
CSGO服务器安装地址/csgo/maps/workshop/
,根据地图ID,查看地图下载情况,判断地图是否成功下载。 - 有时候设置了
host_workshop_map
后,无法连接服务器,这个时候……可能是因为你服务器无法连接Steam的创意工坊。可以多重启CS GO试试看。或者手动安装地图。
END
到此,CSGO服务器的搭建流程就结束了嗷,有问题可以留言哦~~
(*☻-☻*)~~