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

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
此时报错软件包冲突,我们采用手动强制安装的方式解决
# 安装依赖
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
- 软件安装包和依赖已经使用的是国内镜像地址
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下载使用的是国内镜像地址
- 其他地址:https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz
继续安装SteamCMD
./steamcmd.sh
安装完成后,命令行会变成以Steam>
开头
退出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
下载和校验完成后退出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游戏模式说明
-
休闲模式: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 1 game_mode 0
-
自定义模式: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
-
【火车停放站 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