求生之路2Linux纯净服务器搭建总结

您所在的位置:网站首页 求生之路2mod使用教程 求生之路2Linux纯净服务器搭建总结

求生之路2Linux纯净服务器搭建总结

2023-06-09 00:11| 来源: 网络整理| 查看: 265

Linux服务器创建记录总结 前言

​ 之所以突然想要自己折腾一个服务器,其实是因为之前不会找服务器,随便找了几个服务器,结果我当时还不懂药抗和包抗的区别,进去玩了两把,然后被求生暴躁老哥打飞了(虽然确实是因为自己打的不好),就非常的搞我心态。后来学会用openserverbrowser找服务器了,就去打了几天的包抗,可还是动不动就被队友压力。

​ 我寻思着,我自己一个学过Linux的人,搭个服务器自己玩不好嘛,谁压力我,我就把谁拉黑了就完事了。于是乎,我就开始着手研究用Linux搭建L4D2的游戏服务器。从一开始就想的是要用Linux来开服的,我在折腾的时候才发现用Windows开服也是可以的,不过Linux的服务器肯定是要比Windows更稳定的。

云服务器以及操作系统选择

​ 其实没什么好说的,理论上市面上所有的云服务器都可以,1核2G足矣。1M的带宽就可以带动战役,8人对抗的话现在还在尝试中,据说多特模式带宽可能需要4M以上才能保证稳定,我对多特不是很有兴趣,所以没有尝试,但是普通的对抗和战役,最便宜的云服务器就可以支持。

​ 操作系统其实也没有太大的要求,因为最开始就是想用Linux,所以作为开源系统,用CentOS、Ubuntu或者红帽什么的,好像也没什么差别。当然了,我这里自己用的是阿里云使用版的CentOS 7.9 64位的操作系统。因为是试用版的,所以之后可能会换服务器,所以这篇也是写给我自己看的。

关于云服务器防火墙的设定

​ 这个非常重要,最好在一开始就提前设定好,我就是由于没有设置服务器防火墙的设定,明明服务器已经成功开起来了,但是却始终处于一个无法链接的状态。

​ 已断开连接

​ connection failed after 10 retries

在这里插入图片描述

在这里插入图片描述

​ 同样还是以阿里云的服务器举例,我们需要在安全组规则中添加两个策略,协议类型分别为TCP和UDP,授权对象直接为0.0.0.0,端口范围设置为1/65535(如果是腾讯云的服务器,可以在端口设置中输入“ALL”)

在这里插入图片描述

​ 在完成这些设置之后,就可以着手开始服务器的搭建了。

配置Linux相关环境及下载SteamCMD、L4D2游戏服务器端 1.配置Linux环境

​ 在使用Linux搭建L4D2游戏服务器时,需要用到SteamCMD,而SteamCMD由于V社长时间不更新,目前只有32位的版本,因此需要在32位的Linux环境下运行。

​ 所谓SteamCMD,即steam的一个命令行版本,带有Steam基础api,包括账户登陆,邮箱验证,游戏下载等功能。安装他的时候也会在磁盘上写入和桌面版steam相关的链接库,用做游戏调用。也就是说通过SteamCMD下载的游戏是可以正常运行的。

SteamCMD平时并不作为游戏下载工具,因为游戏必定有图形界面,那么既然有图形界面一定会使用更方便的桌面版steam。SteamCMD的正确用法是用来下载游戏服务端(虽然有些游戏服务端就是游戏本体),然后在服务器上运行游戏服务端作为游戏服务器使用。

​ 如果使用的Linux系统是64位的系统,那么可以通过安装 glibc.i686解决这个问题,而为了保证yum库处于最新状态,可以在装新软件之前进行更新。

yum update

​ 利用如下指令安装glibc.i686依赖库:

yum install glibc.i686 libstdc++.i686

​ 另外,或许你此前已经安装了这个库,可以使用如下指令,检查是否安装了该库

ldd --version //若出现如下提示,则说明已经安装了该库

在这里插入图片描述

2.创建一个普通用户

​ 由于SteamCMD不能再root用户下运行,因此我们需要提前添加一个用户user

adduser user //添加用户 su user //切换用户,这里用user指代 cd ~ // cd 波浪线(ESC下面的那个)回到user用户下的根目录 3.下载SteamCMD

​ 先在根目录创建一个文件夹,在其中使用Linux中的wget命令,下载SteamCMD的安装包,

mkdir Steam cd Steam wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz

​ 解压SteamCMD的安装包

tar xvf steamcmd_linux.tar.gz

​ 打开SteamCMD,准备下载求生之路2游戏服务端

./steamcmd.sh

​ 匿名登录SteamCMD,当然也可以选择登录自己的账号

Steam> login anonymous //匿名账号直接登录 4.下载L4D2游戏服务器端

​ 先指定下载目录,之后下载求生之路2游戏服务器端

Steam> force_install_dir ./l4d2server //此处以 l4d2server 为例,以自己的文件名替换 Steam> app_update 222860 validate //通过下载代码,下载游戏服务端

​ 此处下载游戏服务端大约需要10~15分钟,大小约为9.2GB(2023.6.7)

​ 下载完成后,使用以下指令退出SteamCMD

Steam> exit

​ 至此SteamCMD的历史使命就完结了QAQ,至少我在这之后就没有用到过了

下载相关插件并整合

​ 首先我们需要安装 SourceMOD 和 MetaMOD,这两个东西除了提供 API 可供开发插件外,也提供了一些基本的功能,如果是完全纯净的服务器,是可以不装这两个插件的,但是提前下好这两个玩意,后续会方便很多,游戏内左侧权限选择也需要这两个插件。

​ 我看到的绝大多数的教程中,很多人都提到要将这两个文件下载在本地,整合在一起之后,再利用Xftp上传到云端的Linux系统中,对于不熟悉Linux系统的人,这让做当然更友好,但是我认为这么做更加麻烦。

​ 因此,我在做到这一步的时候,选择直接将这两个插件下载到Linux系统上,进行整合。

1.下载前的准备

​ 此处是为了方便整合,如果你能自己将文件整合好,可以忽略这些麻烦的操作

如下操作的目标是:

​ 两个压缩包下解压得到的addons和cfg目录下的所有文件整合到一起,然后一起复制到游戏客户端目录Left 4 dead 2文件夹下的addons和cfg目录中

cd ~ //返回根目录 mkdir mod //创建一个名为mod的文件夹 cd mod //进入mod文件夹 mkdir SourceMOD //创建一个名为SourceMOD的文件夹 mkdir MetaMOD //创建一个名为 MetaMOD的文件夹 mkdir new //创建一个名为 new 的文件夹 cd new //进入new文件夹 mkdir addons //创建一个名为addons的文件夹 2.压缩文件下载

​ 分别在不同的两个mod文件夹下,下载SourceMOD 和 MetaMOD这两个插件

cd SourceMOD wget https://sm.alliedmods.net/smdrop/1.11/sourcemod-1.11.0-git6934-linux.tar.gz cd .. cd MetaMOD wget https://mms.alliedmods.net/mmsdrop/1.11/mmsource-1.11.0-git1148-linux.tar.gz cd ..

​ 此时,用户处于 ~/home/user/mod文件夹下,而下载的两个压缩包也在这个目录的两个文件夹下,如果不清楚当前位置,可以使用下面的Linux命令查看当前位置

pwd //查看当前目录 3.插件整合

利用如下命令,将sourcemod压缩包解压,分别得到如下文件

cd SourceMOD tar xvf sourcemod-1.11.0-git6934-linux.tar.gz

得到如下文件

addons cfg //两个文件夹

其中addons中,又有两个文件夹,分别是 metamod sourcemod

addons/metamod文件夹下,有一个sourcemod.vdf文件

addons/sourcemod文件夹下,是mod相关的其他文件

使用移动(复制)命令,将addons下所有的文件,metamod和sourcemod包括都复制到new/addons文件中

mv -f /home/[你的用户名]/mod/sourcemod/addons/. home/[你的用户名]/mod/new/addons/.

回到mod目录下,进入MetaMOD文件夹,如果不记得你此时所在的目录,可以直接使用如下指令

cd /home/[你的用户名]/mod/MetaMOD

利用如下命令,将压缩包解压,分别得到如下文件

tar xvf mmsource-1.11.0-git1148-linux.tar.gz

得到如下文件

addons //一个文件夹

其中addons下,一共有三个文件和一个文件夹,分别是

metamod metamod.vdf metamod_x64.vdf

​ 例如上述的移动(复制)命令,将addons下所有的文件,复制到new/addons中,这个步骤不再赘述,值得注意的是,sourcemod和MetaMOD的两个压缩包解压得到的addons文件夹中,都有metamod这和文件夹,在整合得到时候一定要注意区分。里面的内容全部都要放到new/addons/metamod这个文件夹下。

​ 整合这两个文件的原则是,addons目录下,只有一个metamod文件,无论是在本机上整合,还是在Linux系统上整合,都要遵守这个原则。

​ 整合后的addons目录下,应有如下文件

​ metamod metamod.vdf metamod_x64.vdf readme.txt sourcemod

4.将整合后的内容移动到游戏服务端下

​ 将home/[你的用户名]/mod/new/addons下的所有文件,移动到/home/[用户]/[Steam下载时输入的路径]/left4dead2/addons中

​ 将home/[你的用户名]/mod/sourcemod/cfg下的sourcemod文件,移动到/home/[用户]/[Steam下载时输入的路径]/left4dead2/cfg中

​ 至此,两个插件需要的内容已经全部移动到游戏服务端中。

5.安全相关 (1)管理员权限

​ 给你自己的Steam账号赋予这个服务器的管理员权限

​ 来到游戏服务端的addons/sourcemod/configs下,注意,如果你是按照上面的方法进行整合,这里指的是插件整合后的游戏服务端,千万不要弄混了,地址应为:

​ ``/home/[用户]/[Steam下载时输入的路径]/left4dead2/addons/sourcemod/configs`

​ 使用Linux的vi/vim打开其中的admins_simple.ini文件,对应的指令如下

cd /home/[用户]/[Steam下载时输入的路径]/left4dead2/addons/sourcemod/configs` vim admins_simple.ini

​ 打开之后是这样的 在这里插入图片描述

​ 这个文档的这些东西,已经全部被注释了,全部都不用管。

​ 按下键盘上的"i",进入vi/vim的输入模式,在最下方没有注释的地方,补充如下内容

​ 当进入输入模式,界面下方将会显示

在这里插入图片描述

"STEAM_0:0:111111111" "99:z"

​ 此处只是示例,具体内容输入你自己的SteamID,个人推荐最亲民的SteamID查询方式是:

​ 打开l4d2游戏进入任意地图关卡,控制台输入status就会显示玩家的SteamID。

​ 将SteamID输入该文件后,使用如下指令保存文件,按下Esc,再按下shift+;(即输入英文冒号 “:”)

在这里插入图片描述

​ 按下回车,保存并粘贴

(2)服务器执行脚本

​ 创建或加入一个Steam组,记录其组id,下面的配置可以让你的服务器在对应的组上显示,如果你想和其他小伙伴一起游玩你的服务器,你们需要在这一个Steam组下。

​ 来到游戏服务端的cfg文件下,添加server.cfg文件。

​ 对应的指令如下:

cd /home/[用户]/[Steam下载时输入的路径]/left4dead2/cfg/server.cfg vim server.cfg

​ 如果是战役服,输入如下代码:

hostname "服务器名称" // 这是游戏右下角显示的服务器名称,在没有插件的情况下默认只能为全英文 sv_allow_lobby_connect_only 0 // 是否允许从大厅选择「组服务器」来连接,建议 0 ,也就是 false sv_tags hidden // 在浏览服务器的地方隐藏 sv_steamgroup 你的组id // 就是前面你建立的组的 ID sv_steamgroup_exclusive 1 // 设置组为私有 sm_cvar sv_gametypes coop // 游戏模式为合作 z_difficulty Normal //游戏难度为普通

​ 前面的部分是纯净的服务器就能执行的,下面的两行是安装了那两个插件才会执行的。

​ 如果是对抗服,输入如下代码:

//100tick sm_cvar fps_max 0 sm_cvar net_splitpacket_maxrate 30000 sm_cvar nb_update_frequency 0.06 sm_cvar sv_minrate 100000 sm_cvar sv_maxrate 101000 sm_cvar sv_mincmdrate 100 sm_cvar sv_maxcmdrate 100 sm_cvar sv_minupdaterate 100 sm_cvar sv_maxupdaterate 100 sm_cvar sv_client_min_interp_ratio -1 sm_cvar sv_client_max_interp_ratio 2 sm_cvar sv_maxplayers 8 sm_cvar sv_visiblemaxplayers 8 sm_cvar sv_allow_lobby_connect_only 1 sm_cvar mp_gamemode "versus"// 设定为对抗模式 sv_gametypes versus// 设定为对抗模式 sm_cvar sb_all_bot_game 1// 防止人数不足而自动关闭 sm_cvar sb_all_bot_team 1 sm_cvar allow_all_bot_survivor_team 1// 真人玩家死亡后由电脑玩家组队进行游戏 sm_cvar sb_escort 1 // 强制电脑玩家紧随其后 sm_cvar director_allow_infected_bots 0// 关闭AI特感 sv_allow_wait_command 0// 封禁wait指令 sm_cvar fps_max 0// fps sm_cvar sv_region 4// 设定服务器区域为亚洲 最后开服设定 1.写启动脚本

​ 回到游戏服务端的根目录

cd /home/[用户]/[Steam下载时输入的路径]/ vim start.sh

​ vi/vim的使用上面已经简单介绍,不会可以自己查找其他资料

​ 在脚本文件中输入如下内容:

./srcds_run -game left4dead2 -insecure +hostport {此处是端口号} -condebug +exec server.cfg -nomaster

稍作解释:

​ srcds_run 就是启动服务端用的;game 参数不多说了;insecure 是禁用 VAC,一些客户端的 mod 不禁用这个的话容易被制裁,比如说自动 BunnyHop 的 mod;hostport 是端口,默认是27015,建议修改;condebug 是输出 debug 的信息;exec 是执行前面写的server.cfg;nomaster 同样是隐藏服务器用的。保存如上脚本,然后赋予对应的执行权限。

chmod +x start.sh 2.执行启动脚本

​ 使用如下指令执行该脚本

./start.sh

​ 当出现一大段执行内容,最后出现如下提示时,说明服务器已经开启。 在这里插入图片描述

​ 此时,即可打开游戏,使用“~”键打开控制台,输入

connect 服务器公网IP:设置的端口号 //按下回车

在这里插入图片描述

即可进入服务器。

当然你要是有域名的话,也可以写一个域名解析,这样就不用记 IP 了。

3.关闭服务器

​ 此时服务器端,也就是Linux端,服务器程序正在执行,输入quit即可结束服务器进程,此时如果游戏中存在玩家,则全部踢出,服务器完成关闭。

4.服务器进程托管

​ 首先要安装screen来进行托管

yum install screen //安装screen screen -s L4D2 //创建一个隐藏的Linux窗口 cd /home/[用户]/[Steam下载时输入的路径]/ vim start.sh //像上面一样,执行服务器启动程序

​ 这个时候,在关闭Linux服务端命令终端的情况下,只要云服务器仍在运行中,都可以接入游戏

​ 下面是一些简单的screen指令,可以根据需要进行操作

1.screen创建: screen -S 屏幕名称 2.进入指定screen screen -r 屏幕名称 screen -d -r 屏幕名称 3.展示screen列表 screen -ls 4.关闭指定的screen 先用”screen -ls “找到screen对应ID 然后输入: screen -S 对应ID -X quit ID就是屏幕名称之前的一串数字 5.从当前窗口切回主屏幕(不关闭屏幕) ctrl+A+D 6.结束进程 kill +进程号

以下是参考文档: 番外:在CentOS上搭建求生之路2服务器 Left 4 Dead 2求生之路2专用服务器搭建对抗模式,药抗模式,特殊模式 求生之路2服务器搭建(Linux-CentOS)作者:KOFXIII 出处:bilibili 视频可参考: 『求生之路2/药抗服务器搭建』零基础搭建Ubuntu系统药抗Zonemod服务器,傻瓜式指引 Left 4 Dead 2求生之路2专用服务器搭建对抗模式,药抗模式,特殊模式的视频教程

感谢上面内容的分享者,侵删



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3