CS2服务器怎么搭建 CS2服务器搭建教程

CS2服务器怎么搭建?这是cs2官方推出的服务器搭建方法,小编也只是将之转移过来,顺便告诉大家怎么更简便的完成这些教程,希望大家能够用上。

CS2服务器搭建教程:

1、准备debian系统

带公网IP的电脑或云服务器,安装debian-11.8 x64或debian-12 x64系统

注:

① 一定要有公网IP,其他玩家要根据公网ip来连接CS2服务器。如果没有公网IP,则CS2服务器只能在局域网内使用,有些软件能实现异地的虚拟局域网,或者内网穿透这些技术可能解决无公网IP的问题,需要自己探索学习,不要来问我

② 服务器硬盘可用空间最好不低于40G(CS2游戏文件约35G,其他空间预留给游戏更新包、插件、Mod、第三方地图)

以我的一个40G硬盘的云服务器为例,在安装完debian系统和CS2服务器后,硬盘仅剩约1G可用空间,2023.10.3日V社推送一个3G的更新包导致硬盘爆满,无法增量更新,解决方法在4.4章节

③ 建议安装无图形化界面的debian系统以节省资源开销,提高服务器性能

④ 如果想购买云服务器,这是一些建议:硬盘可用空间不低于50G;CPU方面无法给出建议;内存不低于4G;网络带宽方面,csgo时代5Mbps满足10人对战,CS2时代的带宽要求更高,10人对战可能需要8Mbps甚至10Mbps带宽

2.2 下载安装FinalShell

下载页面:http://www.hostbuf.com/t/988.html

FinalShell的功能介绍和用法请自行百度或在B站找教程,选择它作为ssh终端是因为能方便的监控CPU、内存、磁盘和网络等资源的使用情况,对新手比较友好且免费(也可以购买高级版支持一下作者)

在linux系统中,复制、移动、编辑文件都需要使用对应的命令来操作,对新手不太友好,可以通过FinalShell来进行这些操作

2.3 简单配置debian系统

2.3.1 更新apt源

使用FinalShell连接到debian系统,以root用户登录

更新apt源列表,命令:apt update

注:

① root用户本身具有管理员权限,因此执行命令时不需要加sudo,不过将命令写成sudo apt update也没问题

② 对于国内的云服务器,例如百度云轻量应用服务器提供的系统镜像的apt源默认是百度镜像源,这样执行apt upgrade升级命令时的下载速度会很快;如果是从debian官网下载的系统镜像,它的apt源一般在国外导致下载速度较慢,请自行搜索更换apt源的方法

2.3.2 安装vim

安装vim命令:apt install vim -y

2.3.3 安装wget

安装wget命令:apt install wget -y

2.3.4 安装sudo

安装sudo命令:apt install sudo -y

2.3.5 新建一个普通用户

新建一个普通权限的用户aaa,命令:adduser aaa

然后输入两次密码,会提示填Full Name等信息,直接按回车键略过,最后输入y确认

注:

有些人觉得新建普通用户没啥用就跳过此步骤,全程用root用户来操作,表面上也能正常运行服务器,实则暗藏了很多隐患

2.3.6 为用户aaa添加权限

作为普通用户,aaa有时需要执行一些需较高权限的命令,切换root用户又麻烦,所以执行以下操作后,在命令前加sudo即可暂时拥有管理员权限

① 给sudoers文件添加“写”权限,命令:chmod u+w /etc/sudoers

② 使用vim编辑sudoers文件,命令:vim /etc/sudoers

先按 i 键进入编辑模式,将光标移到要改写的位置输入内容,写完后按键盘esc键退出编辑模式,输入:wq执行保存和退出操作(w代表保存,q代表退出)


③ 撤销sudoers文件的“写”权限,命令:chmod u-w /etc/sudoers

注:

其实root用户可以直接编辑sudoers文件,最后用 :wq! 强制保存并退出即可,无需修改sudoers的写权限,但考虑到linux系统版本众多可能有不适用的情况,所以两种方式任选一种即可

2.4 申请CS2开服令牌

【提示:目前CS2服务器不需要开服令牌,此章节仅供参考】

与csgo时代搭建服务器相同,需要申请 Steam account token 并添加在server.cfg中,否则网络上的玩家无法连接到自己搭建的CS2服务器。在CS2服务器启动过程中,可以看到有添加token的提醒,如下图所示

V社已经给CS2专用服务器分配了 app id:2347773,但可能因为目前CS2服务器端和游戏端共用一套游戏文件,即共用 app id:730。截止于2023-12-25,是否添加token并不影响CS2服务器的运行

先放上申请token的链接(国内需开加速器打开链接)https://steamcommunity.com/dev/managegameservers

首次打开链接需在网页右上角登录steam账号

检查steam账号是否符合要求,如下图所示

若不满足要求,那就换个steam账号,如果你搭建CS2服务器后还会安装一些插件,例如全皮肤插件,那最好换手机号重新创建一个steam小号,因为无论VAC还是GSLT封禁,绑定同一个手机号/邮箱的steam号要连坐的

接下来看网页最下端,填写app id后就可以创建令牌,如下图所示

根据个人经验,新申请的令牌,如果在一周内没有使用,就会过期,如果曾经使用过令牌,一个月内没有再次使用,令牌也会过期,过期的令牌就失效了,需要重新申请。目前搭建CS2服务器并不需要令牌,可以不申请

如果有一天需要用到开服令牌,可以参考3.4或3.6章节的步骤来设置开服令牌

3 搭建CS2服务器

3.1 安装SteamCMD所需的依赖库

安装命令:apt install lib32gcc-s1

3.2 下载并安装SteamCMD

① 从用户root切换到用户aaa,命令:su aaa

② 在/home/aaa路径下新建Steam文件夹,SteamCMD相关的东西都放这里,命令:mkdir /home/aaa/Steam

注:

SteamCMD相当于windows系统下的steam客户端,只不过它没有图形化界面,只能通过输入命令来执行各种操作

③ 打开Steam文件夹,命令:cd /home/aaa/Steam

④ 下载SteamCMD安装包,命令:sudo wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz

注:

首次使用sudo命令时,可能需要输入用户aaa的密码

⑤ 解压并删除SteamCMD安装包,命令:tar xvf steamcmd_linux.tar.gz && rm steamcmd_linux.tar.gz

⑥ 保持当前路径/home/aaa/Steam,继续安装SteamCMD,命令:./steamcmd.sh

安装完成后,命令行会变成以Steam>开头

注:

需要升级SteamCMD程序时,执行步骤⑥即可自动更新升级SteamCMD

⑦ 退出SteamCMD,命令:quit 或 exit

3.3 下载并校验CS2服务器文件

① 进入SteamCMD的安装目录,命令:cd /home/aaa/Steam

运行SteamCMD,命令:./steamcmd.sh

注:接下来步骤②③④⑤的操作均是在Steam>后输入命令

② 指定CS2服务器文件的安装目录,命令:force_install_dir /home/aaa/Steam/cs2-ds

③ 使用匿名账号登录SteamCMD,命令:login anonymous

注:

也可以使用steam账号登录SteamCMD,命令格式:login 账号 密码

如果绑定了steam手机令牌,接下来还要输入steam令牌验证码

因为目前CS2的游戏端和服务器端使用的是相同的游戏文件,若使用自己的steam账号登录SteamCMD后,下载或更新CS2的同时也会将已订阅的创意工坊地图下载到CS2的服务器端,文件路径:/home/aaa/Steam/cs2-ds/steamapps/workshop/content/730/ ,这部分文件只是白白浪费服务器硬盘空间,因此建议匿名登录SteamCMD

④ 下载并校验CS2服务器文件,命令:app_update 730 validate

要下载的CS2服务器文件大小约35G,下图为安装成功的截图

⑤ 下载和校验完成后退出Steam>,命令:quit 或 exit

注:

① 如果下载时报错,错误代码0x2,可多次重试下载或改天再试,可能是网络问题

② 如果下载时报错:Error! app '730' state is 0x202 after update job.,错误代码0x202,原因是安装CS2的磁盘分区可用空间不足

3.4 配置server.cfg

server.cfg文件里包含服务器的各种设置选项

① 将当前目录切换到cfg文件夹,命令:cd /home/aaa/Steam/cs2-ds/game/csgo/cfg

② 编辑server.cfg文件,命令:vim server.cfg

写入以下内容(//之后是注释内容,可以不写):

hostname "XXX's CS2 Server" //设置CS2服务器的名称

sv_region 4 //设置服务器区域为亚洲

sv_password "" //在引号内填写客户端连接服务器的密码,引号内不填就是不设密码

rcon_password "" //在引号内填写远程连接服务器控制台的密码,引号内不填就是不设密码

mp_autokick 0 //防止因 挂机、友伤、自杀 等原因被服务器踢出房间

sv_falldamage_scale 0 //关闭摔伤

mp_drop_knife_enable 1 //可以扔掉匕首

sv_cheats 1 //打开作弊

写入后按下键盘的Esc键,然后输入:wq即可保存并退出

注:

① 关于CS2服务器名称 hostname,目前还是无效状态,可以不写这条命令

② 目前 rcon 功能还未开放,可以通过从github下载fake-rcon插件来实现 rcon 功能

③ 可以在server.cfg中添加指令 host_workshop_map 来加载创意工坊地图,具体用法请参考我的另一篇专栏点击跳转

④ 如果CS2服务器强制要求添加开服令牌,则可以加入指令:sv_setsteamaccount "xxxxxxxxxx" 也可在CS2服务器的启动项中添加开服令牌,参考3.6章节,效果是一样的

⑤ 以上指令并非全都要写入的,可以根据个人需求增减,其他的指令请参考CS2官方社区文档:

https://developer.valvesoftware.com/wiki/List_of_Counter-Strike_2_console_commands_and_variables

3.5 解决找不到steamservice.so的报错

根据V社的文档,linux系统下会遇到steamservice.so missing/failed to load的报错,如下图所示

以下是解决办法

①打开用户aaa的目录,命令:cd /home/aaa

列出所有文件目录,命令:ls -al

查看有没有名为 .steam 的文件夹,如果有则检查它是否包含 sdk64 和 sdk32 两个文件夹,如果没有则按以下步骤继续操作

② 创建并进入 .steam 文件夹,命令:mkdir .steam && cd .steam

③ 创建两个文件夹,命令:mkdir sdk64 && mkdir sdk32

④ 创建第一个软连接,命令:ln -s /home/aaa/Steam/linux64/steamclient.so /home/aaa/.steam/sdk64

创建第二个软连接,命令:ln -s /home/aaa/Steam/linux32/steamclient.so /home/aaa/.steam/sdk32

3.6 启动CS2服务器

有两种方式启动CS2服务器

方式一(不推荐,因为每次启动服务器太麻烦)

打开指定目录,命令:cd /home/aaa/Steam/cs2-ds/game/bin/linuxsteamrt64/

再输入命令:

./cs2 -dedicated -insecure -usercon -console -nomaster +port 27015 +map de_dust2 +game_type 0 +game_mode 0 +exec server.cfg -maxplayers_override 10

稍等片刻,看到GC Connection established for server version 2000168, instance idx 1,代表CS2服务器启动完成

方式二(推荐)

打开CS2服务器文件目录,命令:cd /home/aaa/Steam/cs2-ds

创建一个包含启动项的启动脚本,命令:vim start.sh,按下键盘的i键进入编辑模式,写入:

/home/aaa/Steam/cs2-ds/game/bin/linuxsteamrt64/cs2 -dedicated -insecure -usercon -console -nomaster +port 27015 +map de_dust2 +game_type 0 +game_mode 0 +exec server.cfg -maxplayers_override 10

写入时注意每个启动项之间只能有一个空格

写入后按下键盘的Esc键,再输入 :wq 即可保存并退出

然后给脚本赋予可执行权限,命令:chmod +x start.sh

最后通过此脚本启动CS2服务器,命令:./start.sh

注:

① 注意要在云服务器的安全组或debian防火墙设置中开放27015端口

② CS2启动项说明

-dedicated //起源2专用服务器(目前没有CS2专用服务器)

-insecure //禁用VAC(-secure是启用VAC)

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

-console //启用控制台输出(csgo时代的启动项,CS2里效果未知)

-nomaster //隐匿服务器的公网IP(防止别人恶意攻击服务器)

-debug //打开调试模式(csgo时代的启动项,CS2里效果未知)

+port 27015 //服务器端口默认是27015,可更改端口号(要在服务器防火墙或安全组里打开此端口的TCP和UDP)

+mapgroup mg_bomb //设置地图组为拆弹地图组

+map de_dust2 //设置默认打开的地图,这里de_dust2指炙热沙城2

+game_type 0 //设置game_type

+game_mode 1 //设置game_mode

+exec server.cfg //服务器启动时自动执行server.cfg

-maxplayers 10 //设置服务器的最大玩家数量

-maxplayers_override 10 //设置服务器的最大玩家数量

+sv_setsteamaccount xxxxxx //CS2新增的一种添加开服令牌的方法,需将 xxxxxx 替换为自己申请的token

-ip //设置CS2服务器ip(个人最痛恨的启动项,虽然它出现在CS2官方社区文档里,很多人从别的教程里抄来这个启动项导致无法连接CS2服务器,还要我来帮他排查问题!而我从来没用过这个启动项也不影响我运行CS2服务器。猜测docker里会用到)

备注:CS2官方社区文档给出的是 -maxplayers 启动项,但实测 -maxplayers_override 也能实现相同效果

③ CS2游戏模式说明

休闲模式:game_type 0 game_mode 0

竞技模式:game_type 0 game_mode 1

搭档模式:game_type 0 game_mode 2

死亡竞赛:game_type 1 game_mode 2

自定义模式:game_type 3 game_mode 0

参考CS2官方社区文档:https://developer.valvesoftware.com/wiki/Counter-Strike_2/Dedicated_Servers#Game_Modes_.26_Types

④ CS2地图说明

【远古遗迹 Ancient】de_ancient

【阿努比斯 Anubis】de_anubis

【炙热沙城2 Dust II】de_dust2

【炼狱小镇 Inferno】de_inferno

【荒漠迷城 Mirage】de_mirage

【核子危机 Nuke】de_nuke

【死亡游乐园 Overpass】de_overpass

【殒命大厦 Vertigo】de_vertigo

【意大利小镇 Italy】cs_italy

【办公室 Office】cs_office

参考CS2官方社区文档:https://developer.valvesoftware.com/wiki/Counter-Strike_2/Maps

⑤ csgo地图组说明

mg_bomb //拆除地图组

mg_casualsigma //炸弹拆除地图组I号

mg_casualdelta //炸弹拆除地图组II号

mg_hostage //人质解救地图组

mg_reserves //后备生涯地图组

mg_demolition //爆破模式地图组

mg_armsrace //军备竞赛地图组

这是csgo的地图组,有一部分不适用于CS2。CS2服务器启动项中可以不指定地图组,指定地图名和游戏模式即可

3.7 关闭CS2服务器

在服务器端输入命令:quit 或 exit

3.8 向CS2服务器添加创意工坊地图

这部分我单独写了专栏,点击此处跳转

4 日常使用

4.1 启动CS2服务器

启动方法在本文3.6章节,根据地图和游戏模式来调整启动项

4.2 玩家连接CS2服务器

玩家在CS2游戏的控制台输入连接指令:connect xx.xx.xx.xx:27015

如果在服务器端server.cfg中设置了连接密码,则连接指令变为:connect xx.xx.xx.xx:27015;password xxx

注:

① 这里的 xx.xx.xx.xx 要替换为服务器的公网ip,同时将27015替换为启动项中指定的端口号,将 xxx 替换为连接密码

② 第一次连接成功后电脑会记住密码,以后的连接指令里可不写;password xxx

③ 如果使用的是默认的27015端口,连接指令里可以不写:27015

④ 如果玩家连接失败,请再检查连接指令是否写错,同时检查服务器端是否有开放指定的端口号,或者CS2的服务器文件需要更新

4.3 更新CS2服务器文件

如果玩家连接CS2服务器时出现客户端已过期之类的弹窗,其实是CS2服务器文件需要更新。有两种方式更新CS2服务器文件,原理是相同的

【备注】目前CS2服务器更新后,像server.cfg这种修改过内容的文件可能会被还原为初始内容,因此升级更新前请做好备份

【方式一】

按本文3.3章节的步骤,重新下载一遍CS2服务器文件(不是下载完整的CS2,只下载需要更新的部分)

【方式二】

在debian系统中,打开路径/home/aaa/Steam,确保能找到steamcmd.sh(如果没有,则按照本文3.2章节的步骤重新下载并解压),在同路径下创建一个脚本用来更新CS2服务器文件,命令:vim update-cs2.sh ,写入:

#!/bin/bash

./steamcmd.sh +force_install_dir /home/aaa/Steam/cs2-ds +login anonymous +app_update 730 +quit

然后保存并退出

(说明一下,上面蓝色部分是两行命令,B站新版页面显示存在bug,如果你复制时中间多了空行或者第二行多了#号,请手动删除)

给脚本赋予可执行权限,命令:sudo chmod +x update-cs2.sh

以后每次需要更新CS2服务器时,就先打开路径 /home/aaa/Steam

再执行检查更新的命令:./update-cs2.sh

4.4 解决硬盘可用空间不足的问题

首先说明一下CS2的更新机制:假如更新包为2G,硬盘可用空间为800M,CS2更新时会先删除一部分旧文件腾出一部分空间,再下载安装一部分新文件,然后再删除一部分旧文件,如此循环进行,也就是说当硬盘可用空间比更新包小的时候,也是有可能完成更新的

如果更新过程中确实因为可用空间不足而报错,有以下两种解决办法

【方法一】完全删除CS2服务器文件,再重新下载安装

【方法二】熟悉linux系统的可以卸载一些不需要的软件以腾出空间;也可以打开CS2的服务器文件目录:/cs2-ds/game/csgo/maps/ 删除几个官方地图,也能腾出一部分硬盘空间,等CS2完成更新后,执行本文3.3章节的步骤,对CS2服务器文件进行完整性校验(主要是 validate 这个命令),这样就可以把缺失的地图重新下载回来

4.5 后台运行CS2服务器的方法

4.5.1 安装screen

Screen是能防止网络异常中断和同时控制多个远程终端窗口的程序,使用screen启动服务器的好处是即使断开FinalShell与debian的远程连接,CS2服务器仍可继续运行

安装screen,命令:sudo apt install screen -y

4.5.2 新建托盘

新建一个托盘用来运行CS2服务器,命令:screen -S cs2

注:

“cs2”是托盘名称,可按自己喜好来命名。为防止多个托盘名字相同,系统会给托盘名称前面添加id,示例:4764.cs2

4.5.3 启动CS2服务器

启动方法在本文3.6章节

4.5.4 将CS2服务器切换到后台运行

方法:键盘上先按Ctrl+A,再按Ctrl+D

4.5.5 打开指定托盘

命令:screen -r cs2

如果只有1个托盘,命令简化为:screen -r

4.5.6 查看现有的所有托盘

命令:screen -ls

4.5.7 关闭指定托盘

命令:screen -S 4764.cs2 -X quit

4.5.8 查看screen的所有指令

命令:screen -h

总结:

以上这些内容就是特玩网小编给大家搜集来的关于CS2服务器搭建教程的介绍,希望您能喜欢,如果您想了解更多有关于cs2的消息,欢迎现在就来特玩网csgo专区搜索查找。

相关推荐

相关文章