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专区搜索查找。
用户评论