最近求生之路2有了更新,发了一张新地图,决定叫回小伙伴们来玩一玩。因为都不出在同一地理位置下,大家学校的网络都在严密的NAT中,故在公有云服务器上建立一个求生之路2服务器是最好的选择。

服务器信息

我使用的是之前在腾讯云买的学生机,10元/月,1C2G那种,1M小水管,但是这个配置对于几个人的私有求生之路服务器来说完全是绰绰有余。
服务商:腾讯云
系统:CentOS 8
CPU:1核
内存:2GB
硬盘:50GB
带宽:1Mbps on IPv4

初始工作

直接以root身份连接上服务器的SSH,先执行一波更新

#更新系统软件包
#如果没更新过这一步会非常慢
#简易搜索切换国内源来加速更新
yum update
yum upgrade -y
//安装L4D2服务端相关依赖库
yum install glibc.i686 libstdc++.i686 -y

安装SteamCMD

如果以后还要开更多steam上游戏的服务器的话可以考虑新建一个steam用户,专门用来放置SteamCMD。我这里只打算这次装L4D2服务端,不做它用,所以直接建一个l4d2用户,将SteamCMD放在一起

建立用户

#创建新用户来登录L4D2
adduser l4d2 #l4d2是用户名
passwd l4d2 #设置l4d2用户名的密码
#看到new password输入密码不少于7位即可,成功显示sucessfully
#登录新创建的用户l4d2
su l4d2
cd ~

安装SteamCMD以及L4D2服务端

mkdir l4d2 && cd l4d2 #在l4d2用户的主目录建立一个名为l4d2的文件夹并进入

#下载并解压SteamCMD
wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz #此链接非官方源,如果担心可以用下一行被注释的命令,速度可能较慢
#wget http://media.steampowered.com/installer/steamcmd_linux.tar.gz && tar -xzvf steamcmd_linux.tar.gz

#运行SteamCMD安装脚本
./steamcmd.sh

经过漫长的等待,当屏幕上出现下图时,SteamCMD的安装就大功告成啦
steamCMD安装完成
此时按下Ctrl+C可以退出SteamCMD的命令行模式

现在开始安装求生之路2服务端

#匿名登录SteamCMD并安装求生之路服务端(222860)并退出
./steamcmd.sh +login anonymous +force_install_dir ./l4d2 +app_update 222860 validate +quit

出现下图代表安装完成
l4d2服务端安装完成
完成这些步骤后,就是在服务器上安装完成了一个求生之路服务端(完全纯净)

安装MOD

自建求生之路服务端的理由有很多,什么特殊玩法,解锁玩家数量上限之类的,而实现这些功能的方法就是添加MOD。

安装基础MOD环境

首先去安装基础的MOD环境,记得选用自己的环境对应版本,比如本教程针对Linux环境下的服务端配置,就应该下载Linux版本的MOD。
SourceMod https://www.sourcemod.net/downloads.php?branch=stable
Metamod https://www.sourcemm.net/downloads.php?branch=stable
将mmsource和sourcemode解压后放在一起。得到如下两个文件夹
modsDir

第三方插件以及基础设置

这里强烈推荐望夜大大制作的MOD合集,包含了很多常用的MOD
链接:[[原创]]( +++【2201】-★★★整合插件★★★2020-9-29+++
该网页有详细介绍MOD的正确食用方式
网页中提到的B站视频链接:B站链接https://www.bilibili.com/video/BV1BK411P7Tg/

服务器基础配置

//房间名称
hostname "YourRoom"

//RCON管理密码
rcon_password "0"

//游戏模式
sm_cvar mp_gamemode "coop"

//设为1可防止玩家加入感染者方,仅战役模式
sm_cvar director_no_human_zombies "1"

//服务器人数破解
l4d_maxplayers 12
sv_maxplayers 12
sv_visiblemaxplayers 12
sv_removehumanlimit 1
sv_force_unreserved 1

//服务器难度锁定
// Difficulty Setting: easy, normal, hard, impossible 分别是简单,普通,困难,专家
z_difficulty "impossible"

//限制投票
sm_cvar sv_allow_votes "1"

//正版服务器匹配参数限制
sv_region 4 
sv_steamgroup "114514"
sv_steamgroup_exclusive 0

//插件开关 1=ON/0=OFF
sm_advertisements_enabled 1

//广告播放延时默认30s
sm_advertisements_interval 60
ads_delay 45

//不允许正版大厅匹配到
sv_allow_lobby_connect_only 0

//地区代码:
sm_cvar sv_region "4"

// 作弊开关(1\0)
sv_cheats 0  

//关闭模型[MOD]冲突
sm_cvar sv_consistency 0

//隐藏服务器 这个非常重要,求生之路有很多炸服狗会DDoS去打别人服务器,造成影响和损失
sv_tags hidden
sv_tags "hidden"

//tick
sm_cvar fps_max 300
sm_cvar sv_minrate 100000
sm_cvar sv_maxrate 100000
sm_cvar sv_minupdaterate 100
sm_cvar sv_maxupdaterate 100
sm_cvar sv_mincmdrate 100
sm_cvar sv_maxcmdrate 100
sm_cvar nb_update_frequency 0.1
sm_cvar net_splitrate 2 
sm_cvar net_splitpacket_maxrate 100000
sm_cvar sv_client_min_interp_ratio 1
sm_cvar sv_client_max_interp_ratio 1

// 防止人数不足而自动关闭
sm_cvar sb_all_bot_game 1

//玩家死亡时电脑组成队伍继续游戏
sm_cvar allow_all_bot_survivor_team 0

将以上内容保存为server.cfg,保存至一开始解压出来两个文件夹中的cfg文件夹中
MOD文件夹

管理员相关设置

毫无疑问,建立服务器之后需要有管理员权限来执行一些指令。

在刚才解压得到的文件夹的addons\sourcemod\configs中打开admins_simple.ini文件,翻到文件末尾,添加如下内容:

"STEAMSTEAM_1:1:12345678" "99:z"

这行代码中,第一个双引号中的内容是真实Steam数字ID,查询方法↓
第二个双引号中冒号前的数字代表管理员权重,管理员权重较低的人不能对权重较高的管理进行操作,而冒号后面的z代表root权限,这个具体的字符代表权限的定义在此文件同目录下的admin_levels.cfg文件中有定义

admin_levels.cfg文件中管理员权限详细定义


"reservation" "a" //Reserved slots 保留的位置
"generic" "b" //Generic admin, required for admins 基础权限,所有管理员必须
"kick" "c" //Kick other players 踢其他玩家的权限
"ban" "d" //Banning other players ban其他玩家的权限
"unban" "e" //Removing bans 取消ban其他玩家的权限
"slay" "f" //Slaying other players 杀死其他玩家的权限
"changemap" "g" //Changing the map 更改当前地图的权限
"cvars" "h" //Changing cvars 更改cvars的权限,cvars可以理解为已加载插件的可配置参数等
"config" "i" //Changing configs 修改配置的权限
"chat" "j" //Special chat privileges 特殊的聊天权限
"vote" "k" //Voting 投票的权限
"password" "l" //Password the server 给服务器设置密码的权限
"rcon" "m" //Remote console 使用RCON控制台的权限
"cheats" "n" //Change sv_cheats and related commands 修改sv_cheats以及相关指令的权限
"root" "z"
/**

  • Root is a magic access flag that grants all permissions.
  • This should only be given to trusted administrators.
  • Root users can target anyone regardless of immunity,
  • however, they themselves are not automatically immune.
    */


关于望夜大大以及其他第三方插件的配置可以在前面推荐的页面查看,这里不再赘述

上传至服务器

上面这些配置完毕之后上传到服务器就完成了MOD的安装与配置,上传方式有很多,可以选择自行建立一个FTP服务器用于上传,亦或是直接使用sftp通过ssh协议进行上传,Windows下的sftp软件有很多,如xshell带的sftp,或是配合putty使用的WinScp,将前文配置好之后的addonscfg两个文件夹上传至之前服务器中安装游戏的目录中的left4dead2文件夹中。
例如,我的steamcmd是l4d2用户安装在自己主目录下的l4d2目录下,然后steamcmd在执行安装命令时又是将游戏安装在了执行目录下的l4d2目录下,最终我的游戏安装目录是在/home/l4d2/l4d2/l4d2/目录下 (禁止套娃),这两个文件夹上传到了/home/l4d2/l4d2/l4d2/left4dead2/目录中

服务器的启动与后台

第一次测试用可以先不放置后台,直接使用SSH连接服务器后在SSH中启动L4D2服务端

#以l4d2用户登录的服务器
cd ~/l4d2/l4d2 #实际进入了/home/l4d2/l4d2/l4d2目录中,根据你自己情况修改
./srcds_run -game left4dead2 -debug -insecure +port 27015 +map c2m1_highway +mp_gamemode "coop"  +exec server.cfg
#-debug显示调试信息 
#port指定游戏端口,默认为27015,若改为其他端口游戏中连接服务器时也需加上端口
#map指定游戏地图
#exec 指定服务器使用的配置文件,保持不变即可

经过一大串提示后,如果有出现如下的稳定不变j界面,则代表已经成功开服了
开服成功
注意,此时不要手贱关了SSH或者Ctrl+C结束了,此时服务端运行在前台,如果关闭SSH或者Ctrl+C则会终止服务端运行
启动游戏,打开控制台,输入如下指令

connect 你的服务器IP
//如果更改了默认端口,则以IP:端口形式连接

如果游戏正常加入服务器企鹅能正常体验,恭喜你,测试成功!服务器建立完毕!

后台服务器运行

不可能玩游戏时一直开着SSH,既不方便也容易出现问题,平常游玩时肯定推荐让其在后台运行,推荐使用软件screen,具体用法网上有很多教程,这里不再重复赘述。

关于获取自己的SteamID

方法1

https://steamid.io/lookup/在这个网站,输入自己STEAM个人资料的URL(Steam个人资料界面右键单击页面空白处会有复制当前页面URL选项)即可查询自己的steamid

方法2

打开求生之路2,先任意进入一局游戏,在游戏中按 键呼出控制台,然后输入status`并回车,即可得到类似如下的信息:

# userid name uniqueid connected ping loss state rate
#  2 1 "你的STEAM用户名" STEAM_1:1:12345678 04:00 99 0 active 30000
# 4 "Louis" BOT active
# 5 "Zoey" BOT active
#end

这个信息中STEAM_1:1:12345678指代的就是你的真实STEAM数字ID

Last modification:September 30, 2020
觉得有帮助的话,打赏一个呗~