欢迎光临散文网 会员登陆 & 注册

Windows Server下快速搭建CS2服务器教程

2023-11-19 15:31 作者:带带小恶人  | 我要投稿

CSGO更新到CS2后,由于没有特别让我中意的1v1solo服务器,这两天我便心血来潮想要尝试在Linux下搭建服务器,由于一些服务器与SM&MM插件的原因,同时为了节约时间,最终采用了在Windows Server 2019下快速部署CS2社区服务器并调试了CFG,关于Linux部分遇到的问题与思路会在这篇专栏的第四部分涉略

1.必要准备

参照

基础准备

搭建流程

插件CFG

这三篇CSGO时期的专栏,准备一个大于40GB(最好60GB)的带公网IP的云服务器(这个要求会在第三部分提及)即可,系统设置为Windows Server 2019镜像,在云服务器配置好密码后可以使用自己电脑的远程桌面连接快速连接至服务器,并进行本地文件与服务器文件的快速交互。

*计算机处输入云服务器公网IP,用户名后保存凭据,即可快速登陆,避免使用WebTerminal/VNC等工具,需要提前放通服务器3389端口

*远程桌面连接(RDP)后操作云服务器更加便捷、交互更迅速

2.主要流程

以下流程均参考自V社官方社区的CS2服务器介绍,参考网址如下 https://developer.valvesoftware.com/wiki/Counter-Strike_2/Dedicated_Servers

①下载steamcmd

在以下网址下载steamcmd压缩包并放置在云服务器桌面 https://developer.valvesoftware.com/wiki/SteamCMD#Downloading_SteamCMD

解压后打开steamcmd,在你想要的位置创建准备放置CS2服务器的文件夹,这里笔者选择的目录为C:\Users\Administrator\Desktop\CS 打开steamcmd,依次输入如下命令 force_install_dir C:\Users\Administrator\Desktop\CS\

login anonymous

app_update 730 validate

此时已经开始了CS2服务器文件的下载 *如果steamcmd一直提示Delay或Error,考虑使用steam代理转发服务(例如

steamcommunity302

),请参考 https://www.dogfight360.com/blog/686

②安装steam

*虽然这个步骤听起来很诡异,但在第三部分会提及具体的原因 去steam官网下载安装包后在默认目录安装即可,打开steam等待更新(大概300MB左右)完成后不需要登陆steam直接退出即可

③设置cs2启动脚本

在\game\bin\win64目录下创建start.bat文件,并写入如下命令即可简易启动。这里的启动项命令仅供参考,请阅读下面的参考意见了解参数的意义并自行设置 .\cs2.exe -dedicated maxplayers 4 +game_type 0 +game_mode 1 +map de_dust2 +host_workshop_map 3084291314 -tickrate 128

关于启动项命令,部分可以参考csgo时期部署的准则,参见

搭建服务器

中的3.3小节 *这里给出一些关于启动项的参考意见 -dedicated 目前为必需启动项,务必不要遗漏 -maxplayers +game_type +game_mode +map 不解释 +host_workshop_map 为V社在11月初更新CS2创意工坊后调用创意工坊地图的指定启动项,也有其他调用创意工坊地图的方法,但此处仅介绍这一种 +sv_setsteamaccount "xxx" 其中xxx为steam服务器令牌(GSLT),理论上不使用GSLT的服务器无法连接公网,只能在LAN下连接;但由于目前CS2服务器BUG较多,不使用GSLT依旧可以将服务器在公网暴露(截至2023/11/19可用) 关于申请GSLT及添加的方法,请参考

基础准备

4.6小节 -tickrate 128 在LinuxGSM参考文档中提及了此命令,LinuxGSM启动项也保留了此命令,故这里默认暂时使用,以下为LinuxGSM关于CS2服务器的文档链接 https://docs.linuxgsm.com/game-servers/counter-strike-2

这里LinuxGSM选择了在启动项添加-tickrate 128之外,在服务器CFG中添加了 sv_mincmdrate 128

sv_minupdaterate 128

两条命令,但在实际运行服务器的过程中,这两条CFG命令被忽略了

并且由于Subtick的原因,以及LinuxGSM文档更新时间滞后(11月初),故这里对tickrate的调整是否成功持怀疑态度。 +mapgroup mg_active *这条指令为设置地图组投票循环,由于我想要实现一张创意工坊地图的一直游玩,删除该指令会在地图回合结束后重新开始这张地图

④调整cfg及创意工坊地图

在设置好启动项后,进入\game\csgo\cfg目录打开启动项对应的CFG修改保存即可 *+game_type 0 +game_mode 1对应着gamemode_competitive.cfg 这里给出目前cfg额外添加仍然有效的三条指令,仅供参考,暂未尝试其他指令 *关于每回合启动时间的指令问题探讨,将在第三部分提及 mp_autokick      0

mp_drop_knife_enable     1

mp_round_restart_delay      2

创意工坊地图目录默认为steamapps\workshop\content\730,推荐大家在本地将创意工坊地图订阅后上传至服务器workshop目录,减少服务器与workshop的下载需求

⑤设置更新脚本

在steamcmd文件夹内创建update.txt,并依次写入 force_install_dir C:\Users\Administrator\Desktop\CS\

login anonymous

app_update 730

quit

需要更新时,打开steamcmd,输入 runscript update.txt

即可自动更新

3.搭建服务器遇到的问题

①启动CS2服务器端时闪退

在安装过程结束后,直接运行会导致服务器在弹出报错后闪退,进入\game\bin\win64目录后可以发现服务器cmd自动保存了.mdmp错误报告

打开报告后,可以发现在Consolo History下显示SteamSDK错误

参照官方的建议,安装完整的steam客户端可以修复SteamSDK错误,且官方文档说明此错误会导致闪退,不容易被发觉

在正常安装steam客户端后,服务器显示如下界面(紫色host)表示正常

②容量问题

由于CS2新版服务器融合在CS2游戏文件中,总大小约为34GB,相比CSGO服务器(15GB)体量庞大,标准普通云服务器40GB的容量已经不足以支撑CS2服务器更新与稳定运行,请提前注意服务器硬盘大小,必要时调整挂载硬盘空间大小

这里笔者给出一个略微缩减空间的办法,如果我们搭建服务器的目的是为了运行创意工坊地图,我们可以删除游戏文件中自带的原版地图,能腾出大概3G的空间。只要指定启动地图修改一下,便可节省宝贵的存储空间,如下图

③内存占用

由于众所周知的原因,Windows Server的开销要比Linux大,开启CS2服务器要比CSGO时期占用更多内存,建议云服务器内存最好不要小于2G,3G或4G为宜

*这里我开始怀疑近期官方服务器\部分社区服务器有可能仍参考CSGO时代的开销布置,导致服务器频繁出现网络卡顿、崩溃等现象,大家仁者见仁,智者见智。

④回合冻结时间

CS2中,回合开始时间由以下两条命令叠加控制 mp_freezetime   

mp_force_pick_time     

*同时要注意到,在竞技模式每个半场第一回合中,由于官方默认预留了开场动画的时间,即使将以上两个命令的值调整为0,仍然会在开局时增加大概6-8秒的冷却时间,在第二回合开始时这段时间将不再存在

⑤插件相关

关于SourceMod/MetaMod插件的下载与安装,可以参考

插件CFG

1.2小节的部分,采用类似Linux的方法,下载.zip文件在指定目录新建文件夹解压缩即可 由于CS2现有插件数量不多,很多实用插件尚未从CSGO中移植过来,此处不详细介绍CS2中插件的表现

⑥性能差距

由于Windows Server带有GUI界面,且Windows服务器开销较大,在CSGO时期,相同配置的Windows服务器与Linux服务器相比,Windows服务器会出现跳Var、跳sv的情况;CS2中由于subtick的影响,Windows服务器表现不是很理想,也会出现以上旧问题,也有概率导致服务器卡顿、hitbox延迟等问题。

4.LinuxGSM出现的部分问题与思路

笔者在使用Windows Server搭建CS2服务器前,曾经尝试了一下用CentOS7借助LinuxGSM搭建服务器,遇到了一些问题,在这里和大家分享一下问题与解决思路

①Github无法访问导致文件下载失败

这个问题在CSGO服务器教程中也出现过,这里给出一个hosts解决办法,打开如下网址 https://raw.hellogithub.com/hosts

将会自动下载一份带时间戳的hosts文件,将其按照

基础准备

4.5小节的方法添加至服务器hosts并重启即可

②Glibc 版本报错

在公有云镜像中,默认部署的CentOS7(7.6-7.9版本)下Glibc默认为2.17 在CS2官方文档中,要求服务器默认Glibc版本为2.31

关于如何将glibc升级,请参考 https://blog.csdn.net/carefree2005/article/details/117559312

③steamservice.so丢失

这个错误的原因是steamcmd丢失了对CS2服务器文件的关联 *关联方式在windows下即为更新脚本中第一句force install的目录关联,Linux下实现方式不同 运行以下命令即可 ln -s /home/your_user/.local/share/Steam/steamcmd/linux64/steamclient.so /home/your_user/.steam/sdk64/

ln -s /home/your_user/.local/share/Steam/steamcmd/linux32/steamclient.so /home/your_user/.steam/sdk32/

*将此处的your_name换成你在Linux下的用户名即可

5.总结

CS2目前给我的感觉还是一个未完成的半成品,本体如此,服务器端的设置、插件亦然,在目前搭建服务器尚且有困难的情况下,建议稍微观望V社更新再跟进 CSGO预计2023年底彻底停用,希望届时CS2服务器端能够与游戏端彻底剥离,缩减大小,提高性能,增加更多功能并恢复至CSGO时代的高可用性、高可玩性 prtFrater/带带小恶人于2023/11/20

Windows Server下快速搭建CS2服务器教程的评论 (共 条)

分享到微博请遵守国家法律