RocyLinux搭建官方纯净CS2服务器教程

Linux

1.系统版本

NAME="Rocky Linux"
VERSION="9.1 (Blue Onyx)"

用户:root、kiosk(普通用户)

2.安装libgcc.i686、libstdc++.i686

sudo yum install epel-release -y
sudo yum install tmux -y
sudo yum install libgcc.i686 -y
sudo yum install libstdc++.i686 -y

此时报错软件包冲突,我们采用手动强制安装的方式解决

image-20250614112202394

# 安装依赖
sudo rpm -ivh https://mirrors.orcy.net.cn:10101/Steam/glibc-2.34-168.el9_6.19.i686.rpm
sudo rpm -ivh https://mirrors.orcy.net.cn:10101/Steam/glibc-gconv-extra-2.34-168.el9_6.19.i686.rpm
# 强制安装 libstdc++.i686
sudo rpm -ivh --force https://mirrors.orcy.net.cn:10101/Steam/libstdc++-11.5.0-5.el9_5.i686.rpm
  • 软件安装包和依赖已经使用的是国内镜像地址

image-20250614113347271

3.下载并安装SteamCMD

创建文件

mkdir ~/Steam/ -p  # 注意用户是kiosk
cd ~/Steam/

下载并解压SteamCMD文件

wget https://mirrors.orcy.net.cn:10101/Steam/steamcmd_linux.tar.gz
tar -zxvf steamcmd_linux.tar.gz

继续安装SteamCMD

./steamcmd.sh

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

image-20250614114532507

退出SteamCMD

exit

4.下载并校验CS2服务器文件

以下操作,均在Steam>后输入命令

指定CS2服务器文件的安装目录

force_install_dir /home/kiosk/Steam/cs2-ds

使用匿名账号登录SteamCMD

login anonymous

注:

  • 可以使用steam账号登录SteamCMD,命令格式:login 账号 密码,如果绑定了steam手机令牌,接下来还要输入steam令牌验证码;

  • 目前CS2的游戏端和服务器端使用的是相同的游戏文件,若使用自己的steam账号登录SteamCMD后,下载或更新CS2的同时也会将已订阅的创意工坊地图下载到CS2的服务器端,文件路径:~/Steam/cs2-ds/steamapps/workshop/content/730/,会占用较大磁盘空间。

下载并校验CS2服务器文件

app_update 730 validate

image-20250614123214657

下载和校验完成后退出Steam>

exit 

注:

  • 如果下载较慢,可尝试使用代理;

  • 如果下载时报错:错误代码0x2,可能为网络问题,多次重试下载;

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

5.配置server.cfg

将当前目录切换到cfg文件夹

cd ~/Steam/cs2-ds/game/csgo/cfg

编辑server.cfg文件

vim server.cfg
hostname "ORCY's CS2 Server" //设置CS2服务器的名称

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

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

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

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

mp_drop_knife_enable 1 //可以扔掉匕首

sv_cheats 1  //打开作弊

注:

  • 关于CS2服务器名称 hostname,以前csgo会在游戏内Tab计分板上显示此信息,现在更新CS2后只在国际服的社区服浏览器内显示此服务器名称
  • 截止于2024.11.14测试后,目前 rcon 功能仍处于不可用状态,可以通过从github下载fake-rcon插件来实现 rcon 功能,有些插件比如MatchZy也自带rcon功能
  • 可以在server.cfg中添加指令 host_workshop_map 来加载创意工坊地图
  • 如果CS2服务器强制要求添加开服令牌,则可以加入指令:sv_setsteamaccount "xxxxxxxxxx" 也可在CS2服务器的启动项中添加开服令牌
  • 令牌申请链接:https://steamcommunity.com/dev/managegameservers
  • 以上指令并非全都要写入的,可以根据个人需求增减,其他的指令请参考CS2官方社区文档:https://developer.valvesoftware.com/wiki/List_of_Counter-Strike_2_console_commands_and_variables

创建软连接steamservice.so

mkdir ~/.steam/sdk64 ~/.steam/sdk32 -p
#
ln -s /home/kiosk/Steam/linux64/steamclient.so /home/kiosk/.steam/sdk64
ln -s /home/kiosk/Steam/linux32/steamclient.so /home/kiosk/.steam/sdk32

6.启动CS2服务器

方式一:命令启动(不推荐)

cd ~/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 +sv_logfile 1 -serverlogging -maxplayers_override 10

方式二:编写启动脚本

cd ~/Steam/cs2-ds
vi start-cs2.sh

内容如下:

/home/kiosk/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 +sv_logfile 1 -serverlogging -maxplayers_override 10
chmod +x start-cs2.sh

启动

./start-cs2.sh

注:

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

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

  • CS2启动项说明

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

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

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

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

    • -nomaster //隐匿CS2服务器(防止别人恶意攻击服务器)

    • -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 x.x.x.x //设置CS2服务器ip,如果需要将CS2服务器绑定到特定ip时会用到(这个启动项似乎与rcon功能有关联,如果使用rcon功能时控制台返回信息:Unable to connect to remote server,则可以添加启动项 -ip 0.0.0.0 ,但截止2024-07-07,CS2自带的rcon功能仍不生效,只能通过安装插件来实现rcon功能)

    • -sv_logfile 1 和 -serverlogging //开启CS2服务器日志并保存,默认保存在CS2服务器的 /game/csgo/ 路径下的 logs 文件夹内。除了添加启动项,另一种方法是在 server.cfg 内添加 sv_logfile 1 和 log on 两条命令也可以开启CS2服务器日志并保存

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

  • CS2游戏模式说明

  • CS2地图说明

    • 【远古遗迹 Ancient】de_ancient

    • 【阿努比斯 Anubis】de_anubis

    • 【炙热沙城2 Dust II】de_dust2

    • 【炼狱小镇 Inferno】de_inferno

    • 【荒漠迷城 Mirage】de_mirage

    • 【核子危机 Nuke】de_nuke

    • 【死亡游乐园 Overpass】de_overpass

    • 【火车停放站 Train】de_train

    • 【冰火岛 Basalt】de_basalt

    • 【爱丁堡 Edin】de_edin

    • 【殒命大厦 Vertigo】de_vertigo

    • 【意大利小镇 Italy】cs_italy

    • 【办公室 Office】cs_office

    • 【行李仓库 Baggage】ar_baggage

    • 【山林小寨 Shoots】ar_shoots

    • 【泳池派对 Pool Day】ar_pool_day

    • 参考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服务器启动项中可以不指定地图组,指定地图名和游戏模式即可

7.停止CS2服务器

在服务器端输入命令

quit

8.更新CS2服务器文件

方式一:

按本文步骤4,重新下载一遍CS2服务器文件(不会下载完整的CS2,它会自动下载需要更新的部分)

方式二:

vim ~/Steam/update-cs2.sh 
#!/bin/bash
./steamcmd.sh +force_install_dir /home/kiosk/Steam/cs2-ds +login anonymous +app_update 730 +quit
chmod +x update-cs2.sh

需要更新CS2服务器时,执行检查更新的命令

cd ~/Steam/
./update-cs2.sh 

9.使用tmux启动

使用tmux启动,可以防止shell退出时,CS服务器停止

sudo ln -s /home/kiosk/Steam/cs2-ds/start-cs2.sh /usr/local/bin
tmux
start-cs2.sh