原文博客:https://www.mintimate.cn Mintimate’s Blog,只为与你分享
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下载地址:Download FileZilla Client for macOS
嘿嘿,做教程视频不易(B站根本不会推荐引流),请务必一键三连哦~
B站视频地址:10分钟学会零基础搭建CS GO服务器并安装插件,开设自己的游戏对战_哔哩哔哩_bilibili
如果感兴趣,还可以关注我们,带你初识Linux Server的魅力⁄(⁄ ⁄ ⁄ω⁄ ⁄ ⁄)⁄
服务器初始化,我们Linux Server和Windows Server都讲一下,不过后续章节就只讲Linux Server了哦。Windows Server用户,可以按图索骥(因为Windows Server操作比Linux Server简单,需要切换用户的时候,Windows用户无需操作)。
如果你购买的是Linux Server(Debian、Ubuntu和CentOS等)服务器:
以腾讯云服轻量应用服务器Lighthouse为例,如果你购买的是Linux服务器(Debian、Ubuntu或CentOS等Linux发行版本服务器),如果想快速初始化,可以按
如果你购买的是Windows Server(Windows Server2019、Windows Server 2022)。我们购买服务器后,切换到腾讯云服务器后台,重制我们的Administrator用户密码:
重制密码
重制密码
之后,就可以远程连接服务器。你可以使用腾讯云的WebRDP(远程桌面):
VNC远程
后续如需上传本地配置给服务器使用时,我们可以使用微软远程桌面(Microsoft Remote Desktop),并开设共享文件夹。
macOS远程
设置本地交互目录
并且创建一个共享的文件夹,用来文件交互:
远程后效果
进入文件夹
Windows如下:
Windows自带的远程:鼠标右击开始菜单
>>运行
,输入mstsc
命令,打升远程桌面对话框:
初始化
打开高级选项:
设置高级
并且,对本地文件夹进行映射:
设置本地交互目录
远程后效果
进入文件夹
本章节目录,所有操作均在Linux Server的Terminal内操作(SSH连接服务器后的“黑窗”),不是本地Windows或者macOS、Linux,特此提醒。
在Terminal上,我们首先依靠软件包管理器先安装依赖:
sudo apt install -y systemd-sysv wget screen libstdc++6 lib32stdc++6 lib32z1 tar libcurl4-openssl-dev lib32gcc1
复制
使用软件包管理器安装依赖
这样就安装了我们SteamCMD所需的前置依赖,也方便我们后续使用wget
下载SteamCMD和Mod等操作。
观察SteamCMD官方文档,SteamCMD需要用一个叫steam的用户,并在steam用户的“家”目录下的steam文件夹内操作。所以,我们提前创建:
# 创建一个用户叫steam
sudo useradd -m steam
# 给steam重置密码
sudo passwd steam
复制
添加Steam用户
之后,我们切换到steam用户,并创建文件夹:
mkdir ~/Steam && cd ~/Steam
复制
创建Steam文件夹
下载SteamCMD原始文件并解压:
curl -sqL "https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz" | tar zxvf -
复制
下载SteamCMD原始文件
到此,我们的SteamCMD前期的准备就完成了,准备接下来的CS GO服务器拉取以及初始化等操作。
本章节目录,所有操作均在Linux Server的Terminal内操作(SSH连接服务器后的“黑窗”),不是本地Windows或者macOS、Linux,特此提醒。
通过steamcmd创建游戏目录及安装对应游戏(这里重定向CS GO游戏的下载目录到Steam用户“家”目录下的Steam/my_csgo_server
内:
./steamcmd.sh +force_install_dir ~/Steam/my_csgo_server +login anonymous +app_update 740 +quit
复制
其中:
~/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
即可。
在进行CS GO社区服务器初始化前,我们需要获取一个steamaccount
创建的子ID,也就是CS GO配置文件的sv_setsteamaccount
;有了这个进行开服,小伙伴才可以使用Steam的账号登陆CS GO的游戏并使用自己Steam的用户资料进入。
获取的条件:
首先,我们进入Steam Account的官网:https://steamcommunity.com/dev/managegameservers并选择登录Steam账号:
登录
登录后,填写信息:
登录后,填写信息
最后,提交后,即可得到sv_setsteamaccount
:
得到sv_setsteamaccount
我们拿着这个sv_setsteamaccount
,后续开服会使用到,比较关键。
本章节目录,所有操作均在Linux Server的Terminal内操作(SSH连接服务器后的“黑窗”),不是本地Windows或者macOS、Linux,特此提醒。 并且,当前在
/home/steam/Steam
目录内,以下相对路径需要注意
首先,我们根据官方给的配置文件模版进行配置文件的创建,复制内容:
// ************************************************************************** //
// //
// Counter-Strike: Global Offensive - server.cfg //
// Version 120719 //
// //
// ************************************************************************** //
// .................................. Basic ................................. //
// Hostname - Name of the server.
hostname "" // 服务器名称
// RCON - remote console password.
rcon_password "" // OP 密码
// Server password - for private servers.
sv_password ""//进入服务器所需密码(如果不需要可以直接删除此行)
sv_setsteamaccount "" // Steamaccount(上文获取的sv_setsteamaccount)
// Email - Server admin email.
// Example: sv_contact "[email protected]"
sv_contact ""
// LAN mode - Server is a LAN server; can't connect from the internet. VAC (Valve Anti-Cheat) is disabled in this mode.
// Default: sv_lan 0
sv_lan 0
// Cheats mode - Server is disabled to use cheats by default;Commands like noclip,god are disabled to be exploited by the players. VAC (Valve Anti-Cheat) is disabled in this mode when value is set to '1'.
// Default: sv_cheats 0
// Cheats ON: sv_cheats 1
sv_cheats 0
// Tags - Used to provide extra information to clients when they're browsing for servers. Separate tags with a comma.
// Example: sv_tags "128-tick,deathmatch,dm,ffa,pistol,dust2"
sv_tags ""
// Region - The region of the world to report this server in.
// Default: -1
// 0 - US East, 1 - US West, 2 - South America, 3 - Europe, 4 - Asia, 5 - Australia, 6 - Middle East, 7 - Africa
sv_region -1
// ............................. Server Logging ............................. //
// Enable log - Enables logging to file, console, and udp < on | off >.
// Recommended: log on
log on
// Log bans - Log server bans in the server logs.
// Default: sv_logbans 1
// Recommended: sv_logbans 1
sv_logbans 1
// Log echo - Display log information to the server console.
// Default: sv_logecho 1
// Recommended: sv_logecho 1
sv_logecho 1
// Log file - Log server information in the log file.
// Default: sv_logfile 1
// Recommended: sv_logfile 1
sv_logfile 1
// One file log - Log server information to only one file.
// Default: sv_log_onefile 0
// Recommended: sv_log_onefile 0
sv_log_onefile 0
// Server Hibernation
sv_hibernate_when_empty 1
sv_hibernate_ms 5
// ............................. Server Query ............................. //
// More info at: https://www.gametracker.com/games/csgo/forum.php?thread=91691
host_name_store 1
host_info_show 1
host_players_show 2
// ................................ Ban List ................................ //
// User ban - Server banlist based on user steam ID.
// Recommended: exec banned_user.cfg
exec banned_user.cfg
// IP ban - Server banlist based on user IP.
// Recommended: exec banned_ip.cfg
exec banned_ip.cfg
// Write ID - Writes a list of permanently-banned user IDs to banned_user.cfg.
writeid
// Write IP - Save the ban list to banned_ip.cfg.
writeip
复制
在my_csgo_server/csgo/cfg
下创建一个叫server.cfg
的文件,粘贴内容到其中,你可以使用vim
,也可以本地配置好后,上传到服务器内对应文件夹内。
比如,使用vim
,创建并编辑文件:
# 当前在/home/steam/Steam目录下;如果你和我步骤一样,那么无需修改
vim my_csgo_server/csgo/cfg/server.cfg
复制
使用vim创建并编辑
修改配置项为自己内容:
编辑配置项
其中:
最后的文件目录效果:
编辑配置项
之后,就可以进行启动了。
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
):
./srcds_run
复制
之后,CSGO的服务器就会开始运行:
CS GO运行
可选内容=>
你也可以添加启动参数进行CS GO服务器的启动:
./srcds_run -game csgo -tickrate 128 -console -rcon -usercon -ip 0.0.0.0 +game_type 0 +game_mode 1 +mapgroup mg_active +map de_dust2 -maxplayers_override 10 +port 27015 +tv_port 27020 -autoupdate -steam_dir "../steamcmd" -steamcmd_script "../steamcmd/update_csgo.txt" +net_public_adr "IP"
复制
其中:
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
的文件夹,并追加内容:
force_install_dir ~/Steam/my_csgo_server
login anonymous
app_update 740
quit
复制
出现sv_setsteamaccount
的数值,说明CSGO运行成功:
CS GO运行成功
这个时候,我们的CS GO就可以进行本地与服务器的连接了。但是还是需要对防火墙进行放行。
这里提供一个可选项,如果你需要关闭服务器,只需要在控制台上输入quit
即可安全关闭CS GO服务器:
安全关闭
现在,我们需要对服务器防火墙进行放行。本着用那个端口就放行那个的原则,CS GO默认使用的是UDP协议的27015
端口,为了确保端口联通,我们把TCP也放行:
腾讯云后台放行CSGO的UDP端口
之后,就可以服务器连接了,可以看看下一章节。
本章节目录,所有操作没有特别说明,均在本地Windows、macOS上操作哦;特此提醒。
本地,其实很多种方法连接到远程服务器;比如,你可以在开始游戏后,在社区服务器浏览器内查找你的服务器;也可以更简单点,直接使用开发者控制台进行连接,我们就使用这个建党的方法。
打开本地的CS GO,选择各项设置菜单,选择启动开发者控制台:
启动控制台
之后,我们按~
即可打开控制台:
打开控制台
在之后,一次输入:
password "你的服务器密码"
connect "你的服务器IP"
复制
即可进行连接:
远程连接
进入游戏成功:
远程连接成功
服务器上的控制台也有成功加入的日志反馈:
远程连接成功
添加管理员,其实是依靠CS GO的社区插件SourceMod
;而SourceMod
需要前置依赖MetaMod
,一些第三方插件,还需要前置依赖Ptah
;总的来说:
MetaMod 这个是相当于 Framework
SourceMod 相当于 Admin
Ptah 相当于 Extension
其他的mod(皮肤,死斗啥的。。) 才相当于 Plugins
-- 博哥
复制
Ptah安装,其实和MetaMod和SourceMod一样,这里我们就演示这两个。
现在,我们安装我们的MetaMod
,这个是相当于所有插件的前置依赖。
我们首先进入MetaMod
的官网:Metamod:Source - Snapshots
下载MetaMod的插件包到本地:
下载MetaMod到本地
下载后,并解压文件:
MetaMod解压后,得到addons文件夹
这个时候,打开FileZilla软件,上方填入我们的服务器信息:
下载MetaMod到本地
之后,左边就是本地,右边就是服务器。我们这边定位到addons文件夹(MetaMod解压出的addons文件夹),右边定位到CSGO下载目录下的csgo文件夹内,并移动addons到其中:
上传addons到服务器(拖拽即可)
到此,Metamod就安装好了。(是不是很神奇?合并大法好呀);
我们重启CS GO就会生效(也就是先quit,之后再启动CS GO服务器)。
接下来,我们来安装SourceMod
,其实安装的方法也很简单,也是简单的下载、合并。
我们首先进入SourceMod
的官网:SourceMod: Half-Life 2 Scripting
下载SourceMod的插件包到本地:
下载SourceMod到本地
下载后,并解压文件:
SourceMod解压后,得到的文件夹
这个时候,回到FileZilla软件,右键刷新一下本地目录,打开SourceMod解压后的文件夹:
FileZilla打开SourceMod文件夹
之后,可以看到有addons
和cfg
文件,我们打开addons
,将里面文件合并到服务器内addons
文件夹内,注意是合并,而不是替换,比如:addons下metamod
合并后的效果:
合并后的效果
同理,将cfg
文件夹合并到服务器上与addons
同级的cfg
文件夹内:
合并后的效果
到此,SourceMod就安装好了,我们可以重启CS GO服务进程,之后,就可以使用命令看看CS GO是否有sm命令了:
sm plugins list
复制
使用SourceMod的sm命令,查看已经安装的插件
如果出现命令不存在,那就是没有安装对哦,可以再检查一下后,重新启动CS GO服务器再看看。
更多的SourceMod命令,可以查看官方文档:Category:SourceMod Documentation - AlliedModders Wiki
现在,我们就来设置管理员,其实很简单。首先,我们客户端登录CS GO,呼出控制台(上文设置的按~
),输入status
:
获取SteamID
这里我们就获取了用户的SteamID,比如是这样的:
STEAM_1:0:9999999999
复制
我们只需要打开CS GO游戏目录下的csgo/addons/sourcemod/configs/admins_simple.ini
:
# 当前在CS GO目录下
vim csgo/addons/sourcemod/configs/admins_simple.ini
复制
修改admins_simple.ini
在文件的末尾追加:
"STEAM_1:0:9999999999" "99:z"
复制
其中:STEAM_1:0:9999999999
替换为你的ID哦。
保存并退出。重启服务器,用户就是管理员了(如果你CS GO在screen内并没有关闭,也可以直接执行sm_reloadadmins
,这样不需要重启服务器,也可以设置好管理员)。
PS:管理员在控制台(~
)内输入sm_admin
可激活控制面板:
sm_admin使用效果
因为我使用macOS登录CS GO,所以字库不全。
服务器迁移其实很简单,你可以把所有自己的配置文件打包备份,不过我建议你可以直接备份CS GO安装目录下的CSGO:
备份该文件
这样备份,可以保存服务器配置的同时,插件也保存下来,避免二次配置的麻烦。
其实就是如何挂起CS GO,可以在screen内启动CS GO,并让screen后台运行即可。
首先,你备份CSGO服务器前,建议先备份CS GO安装目录下的CSGO,之后,到SteamCMD所在目录下,执行:
./steamcmd.sh +force_install_dir ~/Steam/my_csgo_server +login anonymous +app_update 740 +quit
复制
等待完成后,即可更新完成。
修改服务器配置,如:允许传送等配置。但是客户端查看服务器却没有生效,可以排查:
其实,使用创意工坊的地图很简单,需要添加启动参数:
+host_workshop_map
:创意工坊地图ID-authkey
:Steam Web API,用于远程拉取验证;获取Steam Web API参考:https://steamcommunity.com/dev?l=schinese创意工坊的地图ID,其实就是地址栏的Get
请求:
获取创意工坊地图路径
获取地图ID
而authkey
获取就也很简单,打开https://steamcommunity.com/dev/apikey进行申请:
获取authkey
获取authkey
最后,在CS GO启动时候,启动参数内添加即可。
比如,原本的启动是:
./srcds_run
复制
添加上启动参数:
./srcds_run +host_workshop_map 223333 -authkey 332222
复制
其中:22333
和332222
需要替换为真实数值。
比如,我的启动参数:
./srcds_run -game csgo -tickrate 128 -maxplayers_override 10 +host_workshop_map 243702660 -authkey 27E42**************
复制
更改地图
最后,成功加载到地图:
地图加载完成
启动后连接:
客户端载入地图
需要注意:
CSGO服务器安装地址/csgo/maps/workshop/
,根据地图ID,查看地图下载情况,判断地图是否成功下载。host_workshop_map
后,无法连接服务器,这个时候……可能是因为你服务器无法连接Steam的创意工坊。可以多重启CS GO试试看。或者手动安装地图。
原创
发布于 2022-10-06 11:18:01
4.9K3
举报
博客:https://www.mintimate.cn Mintimate’s Blog,只为与你分享
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下载地址:Download FileZilla Client for macOS
嘿嘿,做教程视频不易(B站根本不会推荐引流),请务必一键三连哦~
B站视频地址:10分钟学会零基础搭建CS GO服务器并安装插件,开设自己的游戏对战_哔哩哔哩_bilibili
如果感兴趣,还可以关注我们,带你初识Linux Server的魅力⁄(⁄ ⁄ ⁄ω⁄ ⁄ ⁄)⁄
服务器初始化,我们Linux Server和Windows Server都讲一下,不过后续章节就只讲Linux Server了哦。Windows Server用户,可以按图索骥(因为Windows Server操作比Linux Server简单,需要切换用户的时候,Windows用户无需操作)。
如果你购买的是Linux Server(Debian、Ubuntu和CentOS等)服务器:
以腾讯云服轻量应用服务器Lighthouse为例,如果你购买的是Linux服务器(Debian、Ubuntu或CentOS等Linux发行版本服务器),如果想快速初始化,可以按
如果你购买的是Windows Server(Windows Server2019、Windows Server 2022)。我们购买服务器后,切换到腾讯云服务器后台,重制我们的Administrator用户密码:
重制密码
重制密码
之后,就可以远程连接服务器。你可以使用腾讯云的WebRDP(远程桌面):
VNC远程
后续如需上传本地配置给服务器使用时,我们可以使用微软远程桌面(Microsoft Remote Desktop),并开设共享文件夹。
macOS远程
设置本地交互目录
并且创建一个共享的文件夹,用来文件交互:
远程后效果
进入文件夹
Windows如下:
Windows自带的远程:鼠标右击开始菜单
>>运行
,输入mstsc
命令,打升远程桌面对话框:
初始化
打开高级选项:
设置高级
并且,对本地文件夹进行映射:
设置本地交互目录
远程后效果
进入文件夹
本章节目录,所有操作均在Linux Server的Terminal内操作(SSH连接服务器后的“黑窗”),不是本地Windows或者macOS、Linux,特此提醒。
在Terminal上,我们首先依靠软件包管理器先安装依赖:
sudo apt install -y systemd-sysv wget screen libstdc++6 lib32stdc++6 lib32z1 tar libcurl4-openssl-dev lib32gcc1
复制
使用软件包管理器安装依赖
这样就安装了我们SteamCMD所需的前置依赖,也方便我们后续使用wget
下载SteamCMD和Mod等操作。
观察SteamCMD官方文档,SteamCMD需要用一个叫steam的用户,并在steam用户的“家”目录下的steam文件夹内操作。所以,我们提前创建:
# 创建一个用户叫steam
sudo useradd -m steam
# 给steam重置密码
sudo passwd steam
复制
添加Steam用户
之后,我们切换到steam用户,并创建文件夹:
mkdir ~/Steam && cd ~/Steam
复制
创建Steam文件夹
下载SteamCMD原始文件并解压:
curl -sqL "https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz" | tar zxvf -
复制
下载SteamCMD原始文件
到此,我们的SteamCMD前期的准备就完成了,准备接下来的CS GO服务器拉取以及初始化等操作。
本章节目录,所有操作均在Linux Server的Terminal内操作(SSH连接服务器后的“黑窗”),不是本地Windows或者macOS、Linux,特此提醒。
通过steamcmd创建游戏目录及安装对应游戏(这里重定向CS GO游戏的下载目录到Steam用户“家”目录下的Steam/my_csgo_server
内:
./steamcmd.sh +force_install_dir ~/Steam/my_csgo_server +login anonymous +app_update 740 +quit
复制
其中:
~/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
即可。
在进行CS GO社区服务器初始化前,我们需要获取一个steamaccount
创建的子ID,也就是CS GO配置文件的sv_setsteamaccount
;有了这个进行开服,小伙伴才可以使用Steam的账号登陆CS GO的游戏并使用自己Steam的用户资料进入。
获取的条件:
首先,我们进入Steam Account的官网:https://steamcommunity.com/dev/managegameservers并选择登录Steam账号:
登录
登录后,填写信息:
登录后,填写信息
最后,提交后,即可得到sv_setsteamaccount
:
得到sv_setsteamaccount
我们拿着这个sv_setsteamaccount
,后续开服会使用到,比较关键。
本章节目录,所有操作均在Linux Server的Terminal内操作(SSH连接服务器后的“黑窗”),不是本地Windows或者macOS、Linux,特此提醒。 并且,当前在
/home/steam/Steam
目录内,以下相对路径需要注意
首先,我们根据官方给的配置文件模版进行配置文件的创建,复制内容:
// ************************************************************************** //
// //
// Counter-Strike: Global Offensive - server.cfg //
// Version 120719 //
// //
// ************************************************************************** //
// .................................. Basic ................................. //
// Hostname - Name of the server.
hostname "" // 服务器名称
// RCON - remote console password.
rcon_password "" // OP 密码
// Server password - for private servers.
sv_password ""//进入服务器所需密码(如果不需要可以直接删除此行)
sv_setsteamaccount "" // Steamaccount(上文获取的sv_setsteamaccount)
// Email - Server admin email.
// Example: sv_contact "[email protected]"
sv_contact ""
// LAN mode - Server is a LAN server; can't connect from the internet. VAC (Valve Anti-Cheat) is disabled in this mode.
// Default: sv_lan 0
sv_lan 0
// Cheats mode - Server is disabled to use cheats by default;Commands like noclip,god are disabled to be exploited by the players. VAC (Valve Anti-Cheat) is disabled in this mode when value is set to '1'.
// Default: sv_cheats 0
// Cheats ON: sv_cheats 1
sv_cheats 0
// Tags - Used to provide extra information to clients when they're browsing for servers. Separate tags with a comma.
// Example: sv_tags "128-tick,deathmatch,dm,ffa,pistol,dust2"
sv_tags ""
// Region - The region of the world to report this server in.
// Default: -1
// 0 - US East, 1 - US West, 2 - South America, 3 - Europe, 4 - Asia, 5 - Australia, 6 - Middle East, 7 - Africa
sv_region -1
// ............................. Server Logging ............................. //
// Enable log - Enables logging to file, console, and udp < on | off >.
// Recommended: log on
log on
// Log bans - Log server bans in the server logs.
// Default: sv_logbans 1
// Recommended: sv_logbans 1
sv_logbans 1
// Log echo - Display log information to the server console.
// Default: sv_logecho 1
// Recommended: sv_logecho 1
sv_logecho 1
// Log file - Log server information in the log file.
// Default: sv_logfile 1
// Recommended: sv_logfile 1
sv_logfile 1
// One file log - Log server information to only one file.
// Default: sv_log_onefile 0
// Recommended: sv_log_onefile 0
sv_log_onefile 0
// Server Hibernation
sv_hibernate_when_empty 1
sv_hibernate_ms 5
// ............................. Server Query ............................. //
// More info at: https://www.gametracker.com/games/csgo/forum.php?thread=91691
host_name_store 1
host_info_show 1
host_players_show 2
// ................................ Ban List ................................ //
// User ban - Server banlist based on user steam ID.
// Recommended: exec banned_user.cfg
exec banned_user.cfg
// IP ban - Server banlist based on user IP.
// Recommended: exec banned_ip.cfg
exec banned_ip.cfg
// Write ID - Writes a list of permanently-banned user IDs to banned_user.cfg.
writeid
// Write IP - Save the ban list to banned_ip.cfg.
writeip
复制
在my_csgo_server/csgo/cfg
下创建一个叫server.cfg
的文件,粘贴内容到其中,你可以使用vim
,也可以本地配置好后,上传到服务器内对应文件夹内。
比如,使用vim
,创建并编辑文件:
# 当前在/home/steam/Steam目录下;如果你和我步骤一样,那么无需修改
vim my_csgo_server/csgo/cfg/server.cfg
复制
使用vim创建并编辑
修改配置项为自己内容:
编辑配置项
其中:
最后的文件目录效果:
编辑配置项
之后,就可以进行启动了。
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
):
./srcds_run
复制
之后,CSGO的服务器就会开始运行:
CS GO运行
可选内容=>
你也可以添加启动参数进行CS GO服务器的启动:
./srcds_run -game csgo -tickrate 128 -console -rcon -usercon -ip 0.0.0.0 +game_type 0 +game_mode 1 +mapgroup mg_active +map de_dust2 -maxplayers_override 10 +port 27015 +tv_port 27020 -autoupdate -steam_dir "../steamcmd" -steamcmd_script "../steamcmd/update_csgo.txt" +net_public_adr "IP"
复制
其中:
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
的文件夹,并追加内容:
force_install_dir ~/Steam/my_csgo_server
login anonymous
app_update 740
quit
复制
出现sv_setsteamaccount
的数值,说明CSGO运行成功:
CS GO运行成功
这个时候,我们的CS GO就可以进行本地与服务器的连接了。但是还是需要对防火墙进行放行。
这里提供一个可选项,如果你需要关闭服务器,只需要在控制台上输入quit
即可安全关闭CS GO服务器:
安全关闭
现在,我们需要对服务器防火墙进行放行。本着用那个端口就放行那个的原则,CS GO默认使用的是UDP协议的27015
端口,为了确保端口联通,我们把TCP也放行:
腾讯云后台放行CSGO的UDP端口
之后,就可以服务器连接了,可以看看下一章节。
本章节目录,所有操作没有特别说明,均在本地Windows、macOS上操作哦;特此提醒。
本地,其实很多种方法连接到远程服务器;比如,你可以在开始游戏后,在社区服务器浏览器内查找你的服务器;也可以更简单点,直接使用开发者控制台进行连接,我们就使用这个建党的方法。
打开本地的CS GO,选择各项设置菜单,选择启动开发者控制台:
启动控制台
之后,我们按~
即可打开控制台:
打开控制台
在之后,一次输入:
password "你的服务器密码"
connect "你的服务器IP"
复制
即可进行连接:
远程连接
进入游戏成功:
远程连接成功
服务器上的控制台也有成功加入的日志反馈:
远程连接成功
添加管理员,其实是依靠CS GO的社区插件SourceMod
;而SourceMod
需要前置依赖MetaMod
,一些第三方插件,还需要前置依赖Ptah
;总的来说:
MetaMod 这个是相当于 Framework
SourceMod 相当于 Admin
Ptah 相当于 Extension
其他的mod(皮肤,死斗啥的。。) 才相当于 Plugins
-- 博哥
复制
Ptah安装,其实和MetaMod和SourceMod一样,这里我们就演示这两个。
现在,我们安装我们的MetaMod
,这个是相当于所有插件的前置依赖。
我们首先进入MetaMod
的官网:Metamod:Source - Snapshots
下载MetaMod的插件包到本地:
下载MetaMod到本地
下载后,并解压文件:
MetaMod解压后,得到addons文件夹
这个时候,打开FileZilla软件,上方填入我们的服务器信息:
下载MetaMod到本地
之后,左边就是本地,右边就是服务器。我们这边定位到addons文件夹(MetaMod解压出的addons文件夹),右边定位到CSGO下载目录下的csgo文件夹内,并移动addons到其中:
上传addons到服务器(拖拽即可)
到此,Metamod就安装好了。(是不是很神奇?合并大法好呀);
我们重启CS GO就会生效(也就是先quit,之后再启动CS GO服务器)。
接下来,我们来安装SourceMod
,其实安装的方法也很简单,也是简单的下载、合并。
我们首先进入SourceMod
的官网:SourceMod: Half-Life 2 Scripting
下载SourceMod的插件包到本地:
下载SourceMod到本地
下载后,并解压文件:
SourceMod解压后,得到的文件夹
这个时候,回到FileZilla软件,右键刷新一下本地目录,打开SourceMod解压后的文件夹:
FileZilla打开SourceMod文件夹
之后,可以看到有addons
和cfg
文件,我们打开addons
,将里面文件合并到服务器内addons
文件夹内,注意是合并,而不是替换,比如:addons下metamod
合并后的效果:
合并后的效果
同理,将cfg
文件夹合并到服务器上与addons
同级的cfg
文件夹内:
合并后的效果
到此,SourceMod就安装好了,我们可以重启CS GO服务进程,之后,就可以使用命令看看CS GO是否有sm命令了:
sm plugins list
复制
使用SourceMod的sm命令,查看已经安装的插件
如果出现命令不存在,那就是没有安装对哦,可以再检查一下后,重新启动CS GO服务器再看看。
更多的SourceMod命令,可以查看官方文档:Category:SourceMod Documentation - AlliedModders Wiki
现在,我们就来设置管理员,其实很简单。首先,我们客户端登录CS GO,呼出控制台(上文设置的按~
),输入status
:
获取SteamID
这里我们就获取了用户的SteamID,比如是这样的:
STEAM_1:0:9999999999
复制
我们只需要打开CS GO游戏目录下的csgo/addons/sourcemod/configs/admins_simple.ini
:
# 当前在CS GO目录下
vim csgo/addons/sourcemod/configs/admins_simple.ini
复制
修改admins_simple.ini
在文件的末尾追加:
"STEAM_1:0:9999999999" "99:z"
复制
其中:STEAM_1:0:9999999999
替换为你的ID哦。
保存并退出。重启服务器,用户就是管理员了(如果你CS GO在screen内并没有关闭,也可以直接执行sm_reloadadmins
,这样不需要重启服务器,也可以设置好管理员)。
PS:管理员在控制台(~
)内输入sm_admin
可激活控制面板:
sm_admin使用效果
因为我使用macOS登录CS GO,所以字库不全。
服务器迁移其实很简单,你可以把所有自己的配置文件打包备份,不过我建议你可以直接备份CS GO安装目录下的CSGO:
备份该文件
这样备份,可以保存服务器配置的同时,插件也保存下来,避免二次配置的麻烦。
其实就是如何挂起CS GO,可以在screen内启动CS GO,并让screen后台运行即可。
首先,你备份CSGO服务器前,建议先备份CS GO安装目录下的CSGO,之后,到SteamCMD所在目录下,执行:
./steamcmd.sh +force_install_dir ~/Steam/my_csgo_server +login anonymous +app_update 740 +quit
复制
等待完成后,即可更新完成。
修改服务器配置,如:允许传送等配置。但是客户端查看服务器却没有生效,可以排查:
其实,使用创意工坊的地图很简单,需要添加启动参数:
+host_workshop_map
:创意工坊地图ID-authkey
:Steam Web API,用于远程拉取验证;获取Steam Web API参考:https://steamcommunity.com/dev?l=schinese创意工坊的地图ID,其实就是地址栏的Get
请求:
获取创意工坊地图路径
获取地图ID
而authkey
获取就也很简单,打开https://steamcommunity.com/dev/apikey进行申请:
获取authkey
获取authkey
最后,在CS GO启动时候,启动参数内添加即可。
比如,原本的启动是:
./srcds_run
复制
添加上启动参数:
./srcds_run +host_workshop_map 223333 -authkey 332222
复制
其中:22333
和332222
需要替换为真实数值。
比如,我的启动参数:
./srcds_run -game csgo -tickrate 128 -maxplayers_override 10 +host_workshop_map 243702660 -authkey 27E42**************
复制
更改地图
最后,成功加载到地图:
地图加载完成
启动后连接:
客户端载入地图
需要注意:
CSGO服务器安装地址/csgo/maps/workshop/
,根据地图ID,查看地图下载情况,判断地图是否成功下载。host_workshop_map
后,无法连接服务器,这个时候……可能是因为你服务器无法连接Steam的创意工坊。可以多重启CS GO试试看。或者手动安装地图。