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
目录下,再运行就解决了