【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,并将其与操作系统的其余部分隔离。

  1. 以root用户登录服务器,创建steam用户:

    sudo useradd -m steam
    sudo passwd steam 
  2. 切换用户并进入用户目录

    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

看到下图字眼时,说明更新并启动成功

SteamCMD启动成功

配置软链接
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_modegame_typegame_alias
    竞技10competitive
    搭档20wingman
    休闲00casual
    死斗21deathmatch
    自定义03custom

连接服务器

进入游戏,打开控制台,输入:

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命令

最后修改:2023 年 11 月 26 日
如果觉得我的文章对你有用,请随意赞赏