ubuntu下进行cs2服务器搭建

1.前言

买服务器是必不可少的,根据搭建,服务器有以下要求

  • 2核2g,1人1M带宽
  • 50G以上存储容量
  • 不建议使用ubuntu18.04版本,我踩了很多坑最后换版本了,我使用的ubuntu22.04

2.建角色

#root用户执行,以下game可以修改成你自己想要的名字,这将提示你输入新用户的密码及其他信息。
adduser game
#切换到newuser
su game
#切换到自己目录,在根目录视角下会切换到/home/newuser
cd ~
#新建一个目录steam,方便安装steam服务端
mkdir ./steam
cd ./steam
mkdir ./steamcmd
cd ./steamcmd

3.下载steam

#64位机器执行,这里用root执行
sudo add-apt-repository multiverse
sudo dpkg --add-architecture i386
sudo apt update
#安装steamcmd
sudo apt install steamcmd
#若上面安装steamcmd不行则进行下面的操作,下载压缩包版本并解压
wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz
tar -zxvf steamcmd_linux.tar.gz

4.下载cs2

#执行steamcmd脚本
bash /home/game/steam/steamcmd/steamcmd.sh

接下来都会在steam>这个窗口进行操作,大概长下面这样

steam>

进行以下指令

#自定义下载路径,第一次感觉可以不执行,我这么设置了还是会下载到奇怪的地方
force_install_dir /home/game/steam/steamcmd/CS2_SERVER
#匿名登录steam
login anonymous
#下载cs2
app_update 730 validate

接下来就开始愉快等待吧

附录踩坑记录

# 如果你在执行最后一步时报错了,里面有这么一段,说明是你的内存空间不足了,清理一些内存吧
Error! App '730' state is 0x202 after update job

5.配置,开服

更新完了,可以进行配置了

配置

进入游戏目录文件夹/game/csgo/cfg下,里面有server.cfg,打开它进行简易配置,内容如下

//设置CS2服务器的名称
hostname "XXX's CS2 Server"

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

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

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

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

//可以扔掉匕首
mp_drop_knife_enable 1

//打开作弊
sv_cheats 1

开服

基本完成,可以先开服试一试

在游戏目录文件夹下新建一个脚本文件(便于开服),在内部写入如下内容

./game/bin/linuxsteamrt64/cs2 -dedicated -insecure -usercon -console -nomaster +port 27015 +map de_dust2 +game_type 3 +game_mode 0 +exec server.cfg -maxplayers_override 10

以下是参数的简易介绍

-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 //V社官方社区提供的一个开启日志的启动项,因为没找到log的保存位置我也不确定此启动项是否有效

模式介绍

#模式介绍
休闲模式: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
#地图介绍
【远古遗迹  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
【行李仓库  Baggage】ar_baggage
【山林小寨  Shoots】ar_shoots
#地图组
mg_bomb //拆除地图组
mg_casualsigma //炸弹拆除地图组I号
mg_casualdelta //炸弹拆除地图组II号
mg_hostage //人质解救地图组
mg_reserves //后备生涯地图组
mg_demolition //爆破模式地图组
mg_armsrace //军备竞赛地图组

附录

如果你在开服的时候报错了,有以下信息

with error:
/home/game/.steam/sdk64/steamclient.so: cannot open shared object file: Permission denied
[S_API] SteamAPI_Init(): Failed to load module '/home/game/.steam/sdk64/steamclient.so'
Failed to initialize Steamworks SDK for gameserver.  Failed to load module '/home/game/.steam/sdk64/steamclient.so'
 0 Failed to initialize Steamworks SDK for gameserver.  Failed to load module '/home/game/.steam/sdk64/steamclient.so'

官方是这么解释的

无法加载模块/home/your_user/.steam/sdk64/steamclient.so
这是一个常见问题,解决方法相当简单。
此错误的原因是SteamCMD没有将文件放在它应该放置的文件夹中,因为游戏通常会在那里查找它。所以你需要做的是以下内容。您甚至可能必须创建 ~/.steam/sdk64 目录。

创建文件的符号链接(快捷方式),如下所示:

#创建软链接
ln -s /home/your_user/PATHTOYOUR/steamcmd/linux64/steamclient.so /home/your_user/.steam/sdk64/

我的解决方案是在角色目录文件夹下创建了.steam/sdk64文件夹,然后把在steamcmd/linux64/下的steamclient.so复制到我新建的.steam/sdk64目录下,再运行就解决了