求生之路2服务器搭建(Linux-Debian)
1 前言
本文使用debian-11.5系统搭建求生之路2(l4d2)服务器,搭建l4d2服务器本身并不复杂,只是涉及到linux的一些常用操作,导致文章较长,目录也懒得做了,建议用浏览器自带的搜索功能(快捷键 Ctrl+F)查找想了解的部分
本教程看起来可能比你在网上搜索到的其他教程更长(也可能更啰嗦),是因为我希望将我所知道的所有关于搭建服务器的内容全部写入教程,每当我了解到新内容时也会对本文进行更新,本文的更新日志在第7.16章节


2 准备工作
2.1 准备debian系统
带公网IP的电脑或云服务器,安装debian-11.5 x64版本的系统
注:
① 没有公网IP,则搭建的服务器只能在局域网内使用,解决办法是内网穿透
② 服务器硬盘可用空间最好不低于15G(l4d2服务器文件约9.5G,其他空间预留给游戏更新包、插件、Mod、第三方地图)
③ 建议安装无图形化界面的debian系统以节省资源开销,提高服务器性能
④ 有些云服务器提供的系统镜像是旧版本debian,例如我使用的百度云轻量应用服务器只提供debian-10.8版本系统镜像,可参考本文7.15章节升级到最新版(2023年2月的debian最新版本号是11.6)
2.2 准备插件
以下是常用的3个插件,均下载linux版本,注意分辨 “l4d” 和 “l4d2”
SourceMOD 下载地址:https://www.sourcemod.net/downloads.php?branch=stable
MetaMOD 下载地址:http://metamodsource.net/downloads.php?branch=stable
Tickrate Enabler 下载地址:https://github.com/accelerator74/Tickrate-Enabler
注:
① SourceMOD和MetaMOD是大多数插件运行的基础,强烈建议安装
② Tickrate Enabler 用于解锁服务器最高30tick的限制,不需要可不装
2.3 下载安装WinSCP和Putty软件
WinSCP用途:① windows与debian之间传输插件、地图、Mod等文件 ② 如果不喜欢使用linux命令的话,可以在WinSCP里进行新建文件夹、解压文件、编辑文档等操作
Putty用途:通过ssh连接debian系统
WinSCP下载页面:https://winscp.net/eng/docs/lang:chs
WinSCP中文语言包下载页面:https://winscp.net/eng/translations.php
Putty下载页面(仅下载putty.exe即可):https://www.putty.be/latest.html
注:
① WinSCP和Putty使用方法在本文7.11章节
② 可用Xftp代替WinSCP,用Xshell代替Putty。但Xshell破解版曾被曝出过安全隐患,使用官网的免费版Xshell和Xftp即可

3 搭建l4d2服务器
3.1 更新apt源
使用Putty连接到debian,以root用户登陆,首先更新apt源列表,命令:apt update

注:
① root用户本身具有管理员权限,因此以root用户执行命令时不需要加sudo,当然,将命令写成sudo apt update也没问题
② 对于国内的云服务器,例如百度云轻量应用服务器提供的系统镜像的apt源默认是百度镜像源,这样执行apt upgrade升级命令时的下载速度会很快,如果是从debian官网下载的系统镜像,它的apt源一般在国外导致下载速度较慢,可以自行百度更换apt源的方法,也可以参考本文7.15.2-7.15.4章节的方法更换为清华软件源
3.2 安装SteamCMD所需的依赖库
安装命令:sudo apt install lib32gcc-s1

3.3 安装vim文本编辑器
安装vim命令:sudo apt install vim -y
注:
① debian自带的vi和nano我不会用,所以安装vim来编辑文本
② 用WinSCP连接debian系统后,直接双击文件调用自带编辑器编辑文本更方便
3.4 新建一个普通用户
新建一个普通权限的用户aaa,命令:adduser aaa
然后输入两次密码,会提示填Full Name等信息,直接按回车键略过,最后输入y确认

3.5 为用户aaa添加权限
作为普通用户,aaa有时需要执行一些需较高权限的命令,切换root用户又麻烦,所以执行以下操作后,在aaa的命令前加sudo即可暂时拥有管理员权限
① 给sudoers文件添加“写”权限,命令:chmod u+w /etc/sudoers
② 使用vim编辑sudoers文件,命令:vim /etc/sudoers
先按i键进入编辑模式,将光标移到要改写的位置输入内容,写完后按键盘esc键退出编辑模式,输入:wq执行保存和退出操作(w代表保存,q代表退出)


③ 撤销sudoers文件的“写”权限,命令:chmod u-w /etc/sudoers
注:
其实root用户可以直接用编辑sudoers文件的内容,最后用:wq!强制保存并退出即可,不需要修改sudoers的写权限,但考虑到不同版本的debian系统可能有所不同,所以两种方式任选一种即可
3.6 安装wget
安装wget命令:sudo apt install wget -y
注:
wget相当于windows系统下的迅雷,就是一个下载工具,接下来要用wget下载SteamCMD安装包
3.7 下载并安装SteamCMD
① 从用户root切换到用户aaa,命令:su aaa
② 在/home/aaa路径下新建Steam文件夹,SteamCMD相关的东西都放这里,命令:mkdir /home/aaa/Steam
注:SteamCMD相当于windows系统下的steam客户端,只不过它没有图形化界面,只能通过输入命令来执行各种操作
③ 打开Steam文件夹,命令:cd /home/aaa/Steam
④ 下载SteamCMD安装包,命令:sudo wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz
此时可能需要输入用户aaa的密码
⑤ 解压并删除SteamCMD安装包,命令:tar xvf steamcmd_linux.tar.gz && rm steamcmd_linux.tar.gz

⑥ 保持当前路径/home/aaa/Steam,继续安装SteamCMD,命令:./steamcmd.sh
安装完成后,命令行会变成以Steam>开头

注:
接下来3.8章节的操作均是在Steam>后输入命令
3.8 下载并校验l4d2服务器文件
① 指定服务器端的l4d2的安装目录,命令:force_install_dir /home/aaa/Steam/l4d2-ds
② 匿名登录steam,命令:login anonymous
③ 下载并校验l4d2,命令:app_update 222860 validate
要下载的游戏文件大小约9.2G
④ 下载和校验完成后退出Steam>,命令:quit 或 exit


注:
① 如果下载时报错,错误代码0x2,可多次重试下载或改天再试,可能是网络问题
② 如果下载时报错:Error! app '222860' state is 0x202 after update job.,错误代码0x202,原因是安装l4d2的磁盘分区可用空间不足
3.9 安装SourceMOD和MetaMOD
① 按本文2.2章节所述下载SourceMOD和MetaMOD的linux版插件,然后解压
② 以安装SourceMOD为例,解压后得到addons和cfg两个文件夹,将这两个文件夹里的所有东西通过WinSCP分别传输到debian系统/home/aaa/Steam/l4d2-ds/left4dead2/路径下的addons和cfg中即可
③ 同样的操作也适用于安装MetaMOD

安装SourceMOD和MetaMOD后的addons文件夹内容

注:
SourceMOD和MetaMOD有一些文件是相同名称的,如果传输过程中有提示文件重复,选择全部覆盖
3.10 设置插件的管理员权限
需要修改插件的配置文件,命令:vim /home/aaa/Steam/l4d2-ds/left4dead2/addons/sourcemod/configs/admins_simple.ini
在文档末端另起一行,写入:
"STEAM_x:x:xxxxxx" "99:z"
保存并退出,对应steamID的玩家就有管理员权限了

注:
① 这里的STEAM_x:x:xxxxxx要替换为自己的steamID
② 如果还要添加更多的管理员,再另起一行按同样格式进行书写
③ 99:z指的是权限大小,一般不需要调整权限,照抄就行
④ 有两种获取steamID的方法
方法一:打开l4d2游戏进入任意地图关卡,控制台输入status就会显示玩家的steamID
方法二:在浏览器中登录steam网站,打开个人资料页面,将地址栏的网址复制到查询网站的搜索框即可搜索出steamID,SteamID查询网址:https://steamid.io/lookup/

3.11 配置server.cfg
server.cfg文件里包含服务器的各种设置选项
① 将当前目录切换到cfg文件夹,命令:cd /home/aaa/Steam/l4d2-ds/left4dead2/cfg
② 新建server.cfg文件并编辑它,命令:vim server.cfg
写入以下内容(//代表注释,可以不写)
注:
① 以上是基础的开服配置指令,更多指令在本文7.2章节
② 此处 sv_gametypes 和 mp_gamemode 两个指令经过实测是不生效的,暂不清楚怎么解决。如需更换游戏模式请参考本文4.4章节
③ 此处sv_password指令的用法也不清楚。如果是在隐藏服务器前提下设置密码,会导致玩家连接不上l4d2服务器;如果是在公开服务器前提下设置密码,任何玩家不用密码也能连接到l4d2服务器,暂不清楚怎么解决
④ 可从V社的wiki查看l4d2可用的游戏模式,网址:https://developer.valvesoftware.com/wiki/L4D2_Gamemodes.txt_File
3.12 两种方式启动l4d2服务器
3.12.1 方式一(不推荐)
使用srcds_run配合启动项来启动l4d2服务器,
① 打开srcds_run文件所在目录,命令:cd /home/aaa/Steam/l4d2-ds
② 启动l4d2服务器,命令:
./srcds_run -game left4dead2 -insecure +hostport 27015 -condebug +map c1m2_streets +exec server.cfg -nomaster
稍等片刻,看到Connection to Steam servers successful. VAC secure mode disabled.,代表l4d2服务器启动完成
3.12.2 方式二(推荐)
① 新建一个启动脚本,命令:vim /home/aaa/Steam/l4d2-ds/start.sh
写入以下内容后保存并退出:
/home/aaa/Steam/l4d2-ds/srcds_run -game left4dead2 -insecure +hostport 27015 -condebug +map c1m2_streets +exec server.cfg -nomaster
② 给start.sh赋予可执行权限,命令:chmod +x start.sh
③ 运行start.sh启动l4d2服务器,命令:./start.sh
注:
① 服务器启动项说明
② 每个启动项之间只能有一个空格,连续的空格会使后面的启动项失效
③ 需要检查debian的防火墙和云服务器的安全组是否开放了27015端口的udp协议,参考本文7.12和7.13章节
④ 服务器常见故障处理办法在本文7.1章节
⑤ 服务器端更新l4d2的方法在本文7.10章节
⑥ 官方战役各地图的名称,可查看V社的wiki,网址:https://developer.valvesoftware.com/wiki/Left_4_Dead_2:zh-cn
3.13 关闭l4d2服务器
在服务器端输入命令:quit 或 exit
3.14 自定义今日消息内容
玩家连接服务器进入地图后会显示一个今日消息的显示窗口(按H键打开),此内容保存在服务器端的motd.txt中,文件所在路径为:/home/aaa/Steam/l4d2-ds/left4dead2
如需自定义内容,建议在同路径下新建一个motd1.txt文档,将要展示的内容写在里面,同时在服务器端的server.cfg中添加一条指令:motdfile "motd1.txt"
注:
① 今日消息的内容有字数限制,超出限制的部分不显示
② 如文本显示乱码,需要将motd1.txt以utf-8编码进行保存
③ 今日消息不仅能显示文本,也能显示图片和网页,B站其他UP主有视频教学

4 日常使用
4.1 启动服务器
启动方法在本文3.12章节
4.2 连接服务器
玩家打开l4d2游戏,打开控制台,输入服务器ip地址和端口号,指令:connect xx.xx.xx.xx:27015
注:将xx.xx.xx.xx替换为服务器的公网IP,同时将27015替换为启动项里指定的端口号
4.3 使用插件
有插件管理员权限的玩家可以按Y打开游戏内聊天框,输入命令 !admin 或 /admin 打开插件的功能菜单
注:
如果输入!admin没有出现菜单,可能的原因有
① !admin命令要使用英文感叹号
② 插件没安装好,MetaMOD和SourceMOD相关内容在本文7.3章节
③ 没有设置插件管理员权限,按本文3.10章节的步骤进行配置
4.4 更换地图关卡或游戏模式
4.4.1 方法一
更换地图关卡的命令格式:map 地图关卡名
示例:map c1m2_streets
更换游戏模式的命令格式:map 地图关卡名 游戏模式
示例:map c1m2_streets survival
以上命令需要在l4d2服务器端输入,运行命令后服务器会与所有玩家断开连接,需要重连
注:
① 查询地图关卡名称的方法在本文7.9章节
② 切换游戏模式时要注意所选地图是否支持此模式,例如官方图c1m3_mall不支持survival模式
4.4.2 方法二
更换地图关卡的命令格式:rcon map 地图关卡名
示例:rcon map c1m2_streets
更换游戏模式的命令格式:rcon map 地图关卡名 游戏模式
示例:rcon map c1m2_streets survival
以上命令需要在游戏内控制台输入,运行命令后服务器会与所有玩家断开连接,需要重连
注:
使用rcon命令前需要先在控制台输入rcon密码,rcon的具体用法在本文7.1.4章节
4.4.3 方法三
更换地图关卡的命令格式:changelevel 地图关卡名
示例:changelevel c1m2_streets
此命令需要在l4d2服务器端输入,运行命令后玩家自动进入新地图关卡,无需重连
4.4.4 方法四
有插件管理员权限的玩家可以按Y键打开游戏内聊天框,输入!admin或!map打开菜单更换地图,如果有安装切换游戏模式的插件,也可以在游戏聊天框输入命令(一般是!mode)切换游戏模式
4.5 开启作弊
4.5.1 方法一
启动l4d2服务器后,在l4d2服务器端输入命令:sv_cheats 1
4.5.2 方法二
有插件管理员权限的玩家在游戏内控制台使用指令:sm_cvar sv_cheats 1
4.5.2 方法三
知道rcon密码的玩家在游戏内控制台使用命令:rcon sv_cheats 1
注:
通过观察三种方法的命令格式可以发现规律,在服务器端通常是直接输入命令,而在控制台输入则需要在命令前添加sm_cvar或rcon。sm_cvar是基于插件来实现不开启作弊的情况下使用作弊指令,例如无敌命令:sm_cvar god 1;但获取物品类的命令不需要加sm_cvar或rcon,例如获取AK的命令:give rifle_ak47

5 服务器设置60tick / 100tick
5.1 服务器端需要做的配置
5.1.1 安装Tickrate Enabler
① 按本文2.2章节下载 linux版Tickrate Enabler压缩包,然后解压得到一个addons文件夹
② 将addons文件夹内所有文件通过WinSCP传输到debian路径/home/aaa/Steam/l4d2-ds/left4dead2/addons文件夹内
5.1.2 修改server.cfg
打开debian的路径/home/aaa/Steam/l4d2-ds/left4dead2/cfg/,找到server.cfg
如果是设置60tick,则在server.cfg里新增以下指令:
如果是设置100tick,则在server.cfg里新增以下指令:
5.1.3 添加启动项
参照本文3.12章节,在启动项里添加一项:-tickrate 60 或 -tickrate 100
5.2 玩家的游戏端需要做的配置
5.2.1 新建autoexec.cfg
玩家打开自己的l4d2游戏安装路径:\Steam\steamapps\common\Left 4 Dead 2\left4dead2\cfg,在cfg文件夹中新建一个autoexec.cfg文件,写入以下命令:
5.2.2 设置客户端的lerp值
在autoexec.cfg中继续添加以下两条指令:
注:
客户端较低的lerp值配合服务器端的100tick可以有效降低游戏延迟,关于lerp的说明在本文7.4章节

6 保持服务器后台运行
6.1 安装screen
Screen是能防止网络异常中断和同时控制多个远程终端窗口的程序,使用screen启动服务器的好处是即使断开Putty与debian的远程连接,l4d2服务器仍可继续运行
安装screen,命令:sudo apt install screen -y
6.2 新建托盘
新建一个托盘用来运行l4d2服务器,命令:screen -S qiusheng
此时Putty的界面会刷新,相当于新开了一个终端
注:
“qiusheng”是托盘名称,可按自己喜好来命名。为防止多个托盘名字相同,系统会给托盘名称前面添加id,示例:4764.qiusheng
6.3 启动服务器
启动方法在本文3.12章节
6.4 将l4d2服务器切换到后台运行
方法:键盘上先按Ctrl+A,再按Ctrl+D
6.5 打开指定托盘
命令:screen -r qiusheng
如果只有1个托盘,命令简化为:screen -r
6.6 查看现有的所有托盘
命令:screen -ls
6.7 关闭指定托盘
命令:screen -S 4764.qiusheng -X quit
6.8 查看screen的所有指令
命令:screen -h

7 补充说明
7.1 常见服务器故障
7.1.1 无法启动l4d2服务器或l4d2服务器反复自动重启
① 可能是Tickrate Enabler版本过旧造成的(2021年l4d2有一次大更新),按本文2.2章节提供的网址安装的最新版本Tickrate Enabler插件即可解决
② 正常情况下l4d2服务器启动成功,最后一句是:Connection to Steam servers successful. VAC secure mode disabled.,某次启动l4d2服务器后的最后一句变成:Master server communicatiion disabled.,向上翻看启动日志,看到一个提示(见下图),我误以为是缺少了什么文件导致的启动失败,在网上找了半天也没个解决办法,后来又过了一天再次启动l4d2服务器就恢复正常了,因此我猜测是l4d2服务器与steam之间的网络连接故障造成的启动失败

7.1.2 玩家无法连接到l4d2服务器
① 检查connect 公网ip:端口号是否写错,是否使用的是默认27015端口
② 是否在l4d2服务器端的server.cfg里设置了服务器连接密码,不设密码再试试
③ 检查debian的防火墙是否有开启udp协议的端口,或者云服务器控制台的安全组有没有开放相应的udp协议的端口
④ 如果玩的是第三方地图,玩家的addons文件夹里没有对应的地图文件,且地图版本号要与服务器端的地图版本号一致
⑤ 注意本文3.12章节,每个启动项之间只能有一个空格,连续的空格会使后面的启动项失效,导致服务器某些功能缺失甚至服务器启动失败
7.1.3 无法进入地图的下一章节
可能是第三方插件造成的,可以将addons文件夹重命名为addon,这样所有插件都会失效,此时再运行l4d2服务器观察是否恢复正常,若仍不能进入地图的下一章节,使用sv_cheats 0关闭作弊再试,若服务器恢复正常,则需要挨个排查已安装的插件
7.1.4 RCON无效
通过百度百科搜索RCON可以了解其功能,使用前需要在l4d2服务器的server.cfg中设置rcon密码。例如将rcon密码设置为1234,即:rcon_password "1234"
知道rcon密码的玩家可以在l4d2游戏控制台输入:rcon_password "1234",然后就可以通过控制台输入命令来远程控制l4d2服务器。例如打开作弊,即:rcon sv_cheats 1
① 如果输入rcon命令后控制台提示:Bad RCON password,可能是没有预先在控制台输入rcon密码或输入的rcon密码不正确
② 如果输入rcon命令后控制台提示:Unable to connect to remote server (ip:27015),则需要在debian的防火墙或云服务器的安全组里开放27015端口的tcp协议(如果l4d2服务器使用的不是27015端口,则开放自定义的端口的tcp协议)
③ 如果输入rcon命令后控制台提示:Lost RCON connection, please retry command (UNKNOWN ERROR),可能是网络原因,多试几次
7.2 服务器端server.cfg补充指令
注:
① 参考V社的wiki,网址:https://developer.valvesoftware.com/wiki/List_of_L4D2_Cvars
② 如果server.cfg里添加了上述指令,在启动l4d2服务器时会提示一些Unknown command "sm_cvar",这个可以忽略。如果删除指令前的sm_cvar会导致指令失效,因为其中大部分指令生效的前提是sv_cheats 1
7.3 MetaMOD和SourceMOD
7.3.1 MetaMOD
MetaMOD是SourceMOD功能实现的基础,所以MetaMOD没有正常运行时,SourceMOD和其他大多数插件都会失效。
当MetaMOD故障时,可以打开/addons/metamod/bin目录,找到metamod-fatal.log,里面会显示故障原因
故障示例:

因为MetaMOD无故障时不会生成此文件,这里拿csgo服务器里的MetaMOD故障日志做示范
MetaMOD故障示例
很明显是找不到libstdc++.so.6导致的故障,接下来以它为关键词在网上搜索解决方法即可
如果MetaMOD能正常运行,在启动l4d2服务器后,输入命令:meta
可以看到MetaMOD的菜单
查看MetaMOD下的所有已安装插件,命令:meta list
查看MetaMOD的版本信息,命令:meta version

7.3.2 SourceMOD
大多数插件都是安装在SourceMOD下的,如果插件出现故障,可以打开/addons/sourcemod/logs目录,查看名称含有errors的log文件,里面会显示故障原因
故障示例:

通过错误日志可以判断是nextmap.smx插件与l4d2游戏不兼容,因为这个插件是安装SourceMOD时自带的,是为起源引擎相关游戏编写的通用插件,出现不兼容情况也可以理解,用l4d2专用的换图插件代替即可,当然也可以不作任何处理,忽略此故障
如果SourceMOD能正常运行,在启动l4d2服务器后,输入命令:sm
可以看到SourceMOD的菜单
查看SourceMOD下的所有已安装插件,命令:sm plugins list
查看SourceMOD的版本号,命令:sm version

7.4 客户端修改lerp
以修改50 lerp为例,在控制台输入以下两条指令(或者将指令添加到autoexec.cfg中)
注:
① cl_interp的默认值是0.1(即100 lerp),最大值0.5(即500 lerp) 最小值0(即0 lerp),数值越大,HitBox和贴图的偏离度就越大
② cl_interp_ratio的默认值是2,最低为0
想要0~10 lerp的把此值设为0,其他情况下把值设成1
③ 多数玩家的lerp值设为0或50,这个没有好坏之分,依自己实际游戏体验来设置
7.5 验证lerp和100tick是否设置成功
玩家在l4d2游戏中打开网络参数信息,控制台指令:net_graph 1
如果这些参数信息影响视线,可以使用以下指令调整其位置:
net_graphpos 3 //此参数控制其在水平方向的位置(1偏右、2居中、3偏左)
net_graphheight 1030 //此参数控制其在垂直方向的位置,与电脑屏幕显示分辨率有关
以下是对网络参数的解释

rate 客户端每秒接收数据包大小的上限,默认值为10000(Byte字节)
cl_updaterate 客户端每秒向服务器请求刷新的次数,默认值为20 (即20tick)。如果值过大,超过了服务器的tick值的那部分算是浪费资源
cl_cmdrate 客户端每秒向服务器汇报的次数上限,默认值为30(即30tick),最大值为100。如果值过大,超过了服务器的tick值的那部分算是浪费资源
7.6 插件获取渠道
7.6.1 方法一
从SourceMOD论坛获取,论坛网址:https://www.sourcemod.net/plugins.php
下图以夜视仪插件为例,下载完解压得到smx格式的夜视仪插件

在论坛搜索夜视仪插件

7.6.2 方法二
网上搜索大佬们制作的插件整合包
常用的有望夜插件整合包和豆瓣酱插件整合包
7.7 服务器端的插件安装方法
从各渠道获取的插件一般包含addons和cfg文件夹,按文件路径将其传输到l4d2服务器端的addons和cfg文件夹里对应路径即可完成安装,如果得到的插件没有addons文件夹,可按文件拓展名来分别放在l4d2服务器端的对应目录
注:一般在cfg格式的文件中可以找到插件的使用说明和参数调整说明
7.8 添加第三方地图到服务器
7.8.1 下载第三方地图
常用的地图下载网站:https://www.gamemaps.com/
下载后解压得到vpk格式的地图文件
7.8.2 安装第三方地图
打开debian的路径/home/aaa/Steam/l4d2-ds/left4dead2/addons/,将vpk格式的地图文件通过WinSCP传输到addons文件夹
7.8.3 打开第三方地图
参照本文4.4章节更换到第三方地图
如果服务器提示找不到地图,或用插件更换地图时找不到对应地图关卡,可能是地图文件名含有特殊字符,例如“.”。经测试空格、汉字不会影响服务器识别地图
以地图“广州增城”为例,地图名中含有“Lv7.3”,把它改成“v7_3”就能被服务器识别了,这个只修改服务器端的地图名,游戏端不用修改
注:玩家也要在自己的l4d2游戏安装目录中的addons文件夹中放入相同版本的vpk地图文件,否则玩家会连接不上服务器
7.9 获取地图关卡名称
7.9.1 下载安装GCFScape
地图解包软件GCFScape的下载地址:https://nemstools.github.io/pages/GCFScape-Download.html
7.9.2 查看关卡名
在GCFScape中打开vpk格式的地图文件,找到missions文件夹,打开里面的txt文档,即可找到每个关卡的名称

7.10 服务器端更新l4d2
① 打开debian的路径/home/aaa/Steam,找到steamcmd.sh(如果没有,则按本文3.7章节的步骤重新下载),同路径下新建一个脚本用来更新l4d2,命令 :vim update-l4d2.sh
写入以下内容后保存并退出:
然后给脚本赋予可执行权限,命令:chmod +x update-l4d2.sh
② 当l4d2游戏端需要更新时(现在几乎不更新了),l4d2服务器端也需要更新
打开debian的路径/home/aaa/Steam,运行更新脚本,命令:./update-l4d2.sh

7.11 WinSCP和Putty使用方法
7.11.1 下载安装WinSCP汉化包
① 下载安装WinSCP
② 打开WinSCP语言包下载页面,找到Simplified Chinese,点击Download得到chs.zip
③ 将chs.zip解压得到WinSCP.chs文件
④ 将WinSCP.chs复制到WinSCP的安装目录,覆盖原有的WinSCP.chs文件即可完成汉化
7.11.2 安装Putty
① 在Putty官网下载得到putty.exe
② 将putty.exe放在合适位置,建议放在WinSCP的安装目录里
③ 运行WinSCP,打开【选项】菜单,在左侧找到【应用程序】,填写putty.exe的路径

7.11.3 新建会话
① 运行WinSCP,点击【新建会话】-【新建站点】

② 同理,可以再添加一个站点,方便以root用户来登陆debian
7.11.4 使用Putty
在WinSCP登陆debian后,在菜单栏打开Putty

因为新建站点时已经保存过用户名和密码,打开Putty后会自动登陆aaa或root账户
注:
① 在Putty里,用鼠标拉黑的内容自动复制到剪切板,在其他地方直接粘贴即可
② 如需向Putty里复制内容,先将输入光标移动到合适位置,鼠标右键即可粘贴
7.11.5 windows和debian互传文件

7.12 云服务器的安全组设置
如果把debian系统比喻成家,那debian自带防火墙UFW就是家的大门,而云服务器提供的安全组就相当于在家的四周又建了一圈围墙,所以在传输数据过程中要保证游戏数据能顺利通过围墙和大门,同时围墙和大门要拒绝其他试图通过的数据
以我使用的百度轻量应用服务器为例,它的安全组(或叫防火墙)默认是允许所有数据通过的,所以要先删除它默认的规则,然后新增两项规则,一条规则用于放行22端口的tcp协议通信,另一条规则用于放行27015端口的udp协议通信

7.13 debian的防火墙相关命令
debian的防火墙名为UFW(Uncomplicated Fire Wall)
7.14 debian的常用命令
7.14.1 查看debian系统信息
① 检查debian版本,命令:cat /etc/debian_version
② 检查linux系统版本,命令:lsb_release -a
③ 检查linux内核版本,命令:uname -mrs
④ 安装neofetch展示系统详细信息,命令:sudo apt install neofetch
运行neofetch命令:neofetch

7.14.2 查看磁盘占用情况
① 查看debian的磁盘整体占用情况,命令:df -hl
② 查看l4d2服务器的整体大小:du -h --max-depth=0 /home/aaa/Steam/l4d2-ds
③ 查看l4d2服务器中addons文件夹的大小,命令:du -h --max-depth=0 /home/aaa/Steam/l4d2-ds/left4dead2/addons
④ 查看l4d2服务器中addons里每个文件的大小,命令:du -h --max-depth=0 /home/aaa/Steam/l4d2-ds/left4dead2/addons/*
7.14.3 查看内存占用情况
① 运行free命令:free -h
② 每5秒刷新一次内存占用情况,命令:free -h -s5
③ 关闭每5秒刷新方法:键盘Ctrl+C
7.14.4 查看资源占用情况
① 运行top命令:top
使用键盘按键可以改变显示形式:
② 退出top方法:键盘Ctrl+C
7.15 将debian-10.8升级到debian-11.5
【重要声明】大版本升级有风险,如果你的debian系统还有其他用途,不要按本文操作升级(因为我的linux水平不高,只能保证把我自己的debian升级成功),如果是在云服务器新装的debian系统,可以尝试升级,升级中如果出现故障可以随时快速的重装系统
7.15.1 更新debian-10.8
使用root用户登陆debian,依次使用以下命令(//代表注释)
sudo apt update //更新apt列表
sudo apt upgrade //升级现有的软件
sudo apt --purge autoremove //升级后清除多余的包
sudo systemctl reboot //重启debian
7.15.2 备份sources.list
备份命令:sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup
7.15.3 更新sources.list
更新方法一
将sources.list文件内容里的所有buster替换为bullseye
命令:sudo sed -i 's/buster/bullseye/g' /etc/apt/sources.list
然后用vim将sources.list文件内容里的bullseye/updates改为bullseye-security
更新方法二
参考清华源的使用帮助页面:https://mirrors.tuna.tsinghua.edu.cn/help/debian/

7.15.4 更新apt源
命令:sudo apt update
7.15.5 升级debian系统
命令:sudo apt upgrade
升级期间可能会弹出声明,输入:q退出声明
如果遇到Restart services during package upgrades without asking?选择yes



7.15.6 重启debian系统
命令:sudo systemctl reboot
7.15.7 验证是否升级成功
检查debian版本是否为11.5,命令:cat /etc/debian_version
注:当前debian最新版本为11.5,以后按此方法升级后的debian版本可能比11.5新
7.16 本教程更新日志
7.16.1 更改了SteamCMD的安装目录(2023.2.10)
详细说明:
本文初版写于2022年12月7日,当时的SteamCMD的安装目录是/home/aaa/steam,l4d2服务器安装目录是/home/aaa/l4d2-ds,安装SteamCMD后会在/home/aaa/目录下自动生成一个Steam文件夹存放log文件,这样看起来就有“Steam”和“steam”两个相似的文件夹,强迫症看起来有些难受。根据V社的服务器搭建文档,推荐手动在/home/aaa目录下新建一个Steam文件夹,将SteamCMD安装在Steam文件夹下,同时l4d2-ds服务器文件也安装在Steam文件夹下,这样debian的文件目录显得更加整洁
8 总结
在l4d2游戏中打开控制台,输入指令:openserverbrowser,选择自定义后稍等片刻,在刷出来的列表里找服务器名称里带“纯净”的服务器,双击即可进入,这样也挺好的,何必费时费力自己搭服务器

