【CS2服务器搭建】Linux搭建CS2服务器
本文参考自官方服务器搭建文档: Counter-Strike 2 - Dedicated Servers
1. 准备工作
系统要求
官方文档对系统配置的要求如下:
Linux:
- Minimum RAM: 2GB
- Storage: 33GB
- Requires Glibc 2.31
Glibc 要求意味着需要至少 Ubuntu 20.04、Debian 11 或 Enterprise Linux 9。
2. 安装SteamCMD
创建一个名为steam的用户账户,以安全地运行SteamCMD,并将其与操作系统的其余部分隔离。
以root用户登录服务器,创建steam用户:
sudo useradd -m steam sudo passwd steam
切换用户并进入用户目录
sudo -u steam -s cd /home/steam
Ubuntu
sudo add-apt-repository multiverse; sudo dpkg --add-architecture i386; sudo apt update
sudo apt install steamcmd
Debian
sudo apt update; sudo apt install software-properties-common; sudo apt-add-repository non-free; sudo dpkg --add-architecture i386; sudo apt update
sudo apt install steamcmd
Docker
docker run -it --name=steamcmd cm2network/steamcmd bash
手动安装
安装依赖
Ubuntu/Debian (x86-64)
sudo apt-get install lib32gcc-s1
Enterprise Linux (x86-64)
yum install glibc.i686 libstdc++.i686
切换到普通用户
su - steam
如果不是以root用户登录,而是使用sudo进行管理操作,可以使用以下命令切换到steam用户:
sudo -iu steam
创建steamcmd文件夹
mkdir ~/Steam && cd ~/Steam
下载SteamCMD软件包
curl -sqL "https://steamcdn-a.akamaihd.net/client/installer/steamcmd_osx.tar.gz" | tar zxvf -
启动SteamCMD
下载完成后,Steam文件夹下只有以下文件:
直接执行以下命令启动即可,首次启动会自动下载更新
./steamcmd.sh
看到下图字眼时,说明更新并启动成功
配置软链接
cd ~ && mkdir .steam
cd .steam
mkdir sdk64 && mkdir sdk32
ln -s /home/steam/Steam/linux64/steamclient.so /home/steam/.steam/sdk64
ln -s /home/steam/Steam/linux32/steamclient.so /home/steam/.steam/sdk32
该方法可以解决服务端启动时未找到steamservice.so
导致的报错
3. 指定安装目录,并下载游戏文件
指定安装目录
运行SteamCMD后,输入以下命令指定安装目录
force_install_dir /data/cs2_server/
下载游戏文件
匿名登录SteamCmd
login anonymous
验证并安装游戏
app_update 730 validate
首次启动时需包含
validate
参数,之后若不需校验文件,直接执行app_update 730
即可进行服务端更新
- 如果出现
Error! App '730' state is 0x202 after update job.
,说明当前安装目录磁盘空间不足- 如果错误代码为
0x2
,可能为网络问题,可以多次重试或等待一段时间后再执行
4. 服务端参数设置
Server.cfg配置
进入CS2安装目录:
cd /data/cs2_server/game/csgo/cfg
创建server.cfg
配置文件,命令为vim server.cfg
,参考内容:
hostname "hxuanyu's CS2 Server" //设置CS2服务器的名称
sv_setsteamaccount "B810FF2*************8E2F3DA"
sv_region 4 //设置服务器区域为亚洲
sv_password "" //在引号内填写客户端连接服务器的密码,引号内不填就是不设密码
rcon_password "" //在引号内填写远程连接服务器控制台的密码,引号内不填就是不设密码
mp_autokick 0 //防止因 挂机、友伤、自杀 等原因被服务器踢出房间
sv_falldamage_scale 0 //关闭摔伤
mp_drop_knife_enable 1 //可以扔掉匕首
sv_cheats 0 //打开作弊
填写完成后保存并退出即可
完整指令见:https://developer.valvesoftware.com/wiki/List_of_Counter-Strike_2_console_commands_and_variables
5. 启动服务器
方式一 手动启动
- 打开CS2安装目录
输入命令:
./cs2 -dedicated -insecure -usercon -console -debug -nomaster +port 27015 +map de_dust2 +game_type 0 +game_mode 0 +exec server.cfg -maxplayers_override 10
方式二 脚本启动
- 打开在安装目录下创建
start.sh
脚本文件,并使用chmod a+x start.sh
授予执行权限 编辑
start.sh
,写入如下命令:/data/cs2_server/game/bin/linuxsteamrt64/cs2 -dedicated -insecure -usercon -console -debug -nomaster +port 27015 +map de_dust2 +game_type 0 +game_mode 0 +exec server.cfg -maxplayers_override 10
- 服务器安全组需开启对应UDP端口
启动项说明:
- -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 //设置服务器的最大玩家数量
游戏模式说明
模式 game_mode game_type game_alias 竞技 1 0 competitive 搭档 2 0 wingman 休闲 0 0 casual 死斗 2 1 deathmatch 自定义 0 3 custom
连接服务器
进入游戏,打开控制台,输入:
connect [IP]:[PORT];password [密码]
服务器更新
进入SteamCMD安装目录,创建cs2-update.sh
脚本,并写入以下内容:
#!/bin/bash
./steamcmd.sh +force_install_dir /data/cs2_server/ +login anonymous +app_update 730 +quit
需要对服务器进行更新时,只需执行该脚本即可
6. 使用Screen对服务端进行管理
安装Screen
sudo apt install screen -y
创建session
screen -S cs2
启动服务器
按照第5节的内容启动服务器,启动完成后,按下Ctrl
+A
,再按Ctrl
+D
即可分离当前窗口,若要回到当前窗口,则使用screen -dr cs2
命令