一篇关于如何在 Windows 和 Linux 上创建并运行带有 mods 的 Left 4 Dead 2 服务器的指南!
Left 4 Dead 2 是一款广受欢迎的第一人称射击僵尸恐怖游戏,故事背景设定在一个被丧尸占领的末日世界。该游戏拥有出色的模组支持,许多 mods 可以通过 Steam Workshop 或 SourceMod plugins 获取。
运行带有 mods 的服务器可以让玩家连接进入,并使用服务器已安装的 mods 享受共同的自定义体验。
本指南中我们将specifically针对的两个操作系统是 Windows 11 和 Debian 12 (Linux)。
在继续本指南之前,我想先说明几点。
directory(在 Linux 中称呼)和folder(在 Windows 中称呼)这两个术语可以互换使用。为了简单起见,我们大多数情况下会使用 directory。- 同样,我们全文将使用
/like/this这种结构的文件路径。这种格式用于 Linux,但在 Windows 上,你需要改用\like\this这种文件路径结构。
Requirements
Hardware & Network
与 Minecraft 和 Rust 等其他游戏的服务器相比,Left 4 Dead 2 服务器对 RAM 的占用相当低。默认情况下,在运行 COOP、Scavenge 等游戏模式时最多可支持 四名玩家 同时游玩,而 Versus 模式最多可支持 八名玩家 同时游玩。还有一些 SourceMod 插件可以将服务器的 maxplayers 提升至 32!
关于硬件和网络要求的信息,我建议阅读以下主题。
https://moddingcommunity.com/blog/hardware-network-requirements-for-source-engine-servers/
Port Forwarding
如果你打算让服务器可以从互联网访问,你可能需要通过路由器对 UDP 和 TCP 的 27015 端口进行端口转发。本指南不会具体讲解端口转发,不过我想提供一些其他有用的指南,教你如何转发我刚才提到的端口。
- NordVPN - How to open ports on your router
- No-IP - How to Port Forward – General Guide to Multiple Router Brands
- PortForward - How To Forward a Port
如果你的局域网以 NAT 网络的方式运行,你可能还需要创建一条 NAT 规则。
Downloading The Server Files
下一步是使用 SteamCMD 下载服务器文件。请阅读以下主题,并记住 Left 4 Dead 2 服务器的应用程序 ID 是 222860。
https://moddingcommunity.com/blog/how-to-download-run-steamcmd/
Running The Left 4 Dead 2 Server
为了节省时间,我们将为 Left 4 Dead 2 服务器创建启动脚本。我们将分别为 Linux 和 Windows 创建脚本,用于启动运行 c8m1_apartment 地图的服务器,该地图是 No Mercy campaign 的第一关。服务器将绑定到所有 IP 地址和接口(0.0.0.0),使用 UDP 27015 端口。
Windows
通过文件资源管理器查看新的服务器文件时,你应该会看到一个名为 srcds.exe 的文件。
我们将创建一个名为 start-server.bat 的 Batch 文件/脚本来运行服务器。在创建此文件之前,你需要确保能够设置文件的扩展名,即确保你能够查看文件名的扩展名。如果无法查看文件扩展名,请阅读这里。
创建 Batch 文件后,添加以下内容。
@echo off
.\srcds.exe -game left4dead2 -console -ip 0.0.0.0 -port 27015 +maxplayers 4 +map c8m1_apartment
现在你应该可以双击新创建的 Batch 文件来启动服务器了!
Linux
通过执行 cd ~/l4d2 或类似命令导航到服务器文件所在目录后,你应该能在该目录中看到 srcds_run 和 srcds_linux 文件。我们将创建一个简单的 Bash 脚本来启动服务器。
有许多不同类型的文本编辑器可以用来创建脚本,例如 Nano 和 Vim,在本教程中我们将使用 Nano。我们将脚本命名为 start-server.sh。
首先,使用以下命令开始编辑新文件。
nano start-server.sh
接下来,将以下内容粘贴到文件中。
#!/bin/bash
./srcds_run -game left4dead2 -console -ip 0.0.0.0 -port 27015 +maxplayers 4 +map c8m1_apartment
完成后,按下 CTRL + X 然后回车以保存文件。如果你想查看文件内容,可以执行 cat start-server.sh。
保存文件后,你还需要给该用户执行该文件的权限,可以通过下面的命令完成。
chmod u+x start-server.sh

最后,你可以使用以下命令启动服务器。
./start-server.sh

注意 - 除非你特意禁用了 VAC,否则应该会看到 VAC secure mode is activated 消息。此外,如果你希望服务器能从互联网访问,还应该会看到 Public IP is <your WAN IP> 消息,该消息已从上方截图中删去。
要停止服务器,你可以通过服务器控制台执行 quit 命令,或按下 CTRL + C 发送信号终止服务器进程。
使用 Screen
安装完成后,你也可以使用 screen 命令让服务器在无需保持 Linux 终端窗口打开的情况下运行(在后台运行)。我建议阅读这篇关于 screen 命令的介绍。
首先,让我们安装 screen 软件包。你可能需要通过 exit 命令退出当前的 servers 用户,因为该命令必须以 root 身份或通过 sudo 执行。
Debian/Ubuntu
sudo apt install -y screen

接下来,复制服务器的启动命令,并在其前面加上 screen -S <name>。以下是一个示例。
screen -S l4d2 ./srcds_run -game left4dead2 -console -ip 0.0.0.0 -port 27015 +maxplayers 4 +map c8m1_apartment
这将在一个 screen 中启动服务器。默认情况下,你可以使用 CTRL + A + D 从该 screen 中分离出来。
要重新连接到该 screen,你可以运行 screen -r(如果只有一个 screen 处于打开状态,它会自动连接到那个唯一的 screen)或 screen -r <name>。在上面的命令中,我们创建了一个名为 l4d2 的 screen。因此,我们可以使用以下命令按名称连接到该 screen。
screen -r l4d2
你也可以修改服务器的启动脚本,像上面那样在前面加上 screen -S <name>,让脚本自动将服务器启动到一个 screen 中。
创建服务器配置文件
下一步是通过创建两个文件来配置服务器:autoexec.cfg 和 server.cfg。autoexec.cfg 用于设置服务器的游戏类型(例如 COOP、Versus 等),并且只在服务器启动时执行一次,而 server.cfg 文件则包含一般信息,例如主机名(在服务器浏览器中显示的名称),并在每张地图开始时执行。这两个文件都位于 left4dead2/cfg 目录中。
Left 4 Dead 2 在这些文件中使用的配置格式是 <ConVar> "<Value>"。
将以下内容粘贴到 autoexec.cfg 文件中。
sv_gametypes "coop,survival"
sv_gametypes ConVar 控制服务器将运行的游戏类型。你可以从 coop、realism、survival、versus、scavenge、dash、holdout 和 shootzone 这些值中选择。你也可以通过用逗号(,)分隔来指定多个值。例如:coop,versus,survival。
注意 - 你也可以通过在服务器的启动命令中添加 +sv_gametypes <...> 来设置 sv_gametypes ConVar 的值。不过,我个人更喜欢使用 autoexec.cfg 文件,因为在某些情况下,你可能想要限制某些用户访问命令行,但仍希望他们能够更改服务器的游戏类型等设置。
接下来,将以下内容粘贴到 server.cfg 文件中,并根据你的需求修改 ConVar 的值。
hostname "My Server Name"
sv_password ""
rcon_password "CHANGEME"
hostname是通过服务器浏览器或外部网站(任何通过 A2S 查询访问服务器的方式)可以看到的服务器名称。sv_password是玩家加入服务器前必须输入的密码。留空时,加入服务器不会弹出密码提示。rcon_password是 RCON 访问所需的密码。此密码应仅由可信的人员/工作人员知晓,因为拥有此密码的用户如果能够远程访问 RCON 所运行的 TCP 端口,就能够执行服务器命令。
Left 4 Dead 2 中还有许多其他你可能喜欢的 ConVar,可以通过 server.cfg 文件进行设置!这里有一份不错的 Left 4 Dead 2 ConVar 列表。
性能相关的 ConVar
有一些 ConVar 可以根据你的网络速度、可用带宽和服务器硬件来帮助提升服务器性能。
请阅读之前链接的指南中的以下部分!
https://moddingcommunity.com/blog/how-to-install-update-sourcemod-metamod/
如何为 Left 4 Dead 2 服务器安装 Mod
为 Left 4 Dead 2 服务器安装 Mod 有两种方法。
最常见的方法是在服务器上安装 SourceMod 和 MetaMod,并安装 SourceMod 插件。
较不常见的方法是通过 Left 4 Dead 2 的创意工坊订阅内容,并使用类似这个的工具来提取该 addon 的文件,然后将文件添加到服务器中。
推荐使用 SourceMod 和 MetaMod 为你的 Left 4 Dead 2 服务器安装 Mod,因为这样可以获得更多的插件和功能。
安装 SourceMod & MetaMod 插件
首先,你需要下载并在你的 Left 4 Dead 2 服务器上安装 SourceMod。我建议阅读我之前写的这篇关于如何操作的指南!
https://moddingcommunity.com/blog/how-to-install-update-sourcemod-metamod/
接下来,你需要从这里寻找插件。通常,插件的描述中会包含如何安装该插件的详细信息。不过,以下是一些通用的经验法则。
- 以
.sp扩展名结尾的文件包含用 SourcePawn 编写的插件源代码。 - 以
.smx扩展名结尾的文件是编译后的源代码,应放置在addons/sourcemod/plugins目录中。 - 文件名中包含
games.txt(或类似l4d2.txt)的文件通常是 gamedata 文件,应放置在addons/sourcemod/gamedata目录中。 - 文件名中包含
phrases.txt的文件是翻译文件,应放置在addons/sourcemod/translations目录中。 - 以
.so或.dll扩展名结尾的文件通常是 SourceMod 扩展(extensions),应放置在addons/sourcemod/extensions目录中。
在某些情况下,你可能需要编译插件的源代码。请阅读以下主题以获取相关操作说明!
https://moddingcommunity.com/blog/how-to-compile-sourcemod-plugins/
使用 Steam Workshop
在某些情况下,你想要的 mod 可能只能通过 Steam Workshop 获取。这在自定义战役中很常见。不幸的是,Left 4 Dead 2 服务器不像其他游戏(例如 Garry's Mod)那样原生支持 Steam Workshop。
因此,我们需要从 workshop 物品中提取文件,并将其添加到服务器文件中。
创建合集(Collection)
我们首先要做的是创建一个合集。你可以在 Steam 应用程序内进行,也可以通过 Steam 的网站进行。本指南中我们将使用 Steam 应用程序(两者的界面通常大致相同)。
首先,导航到 Community -> Workshop。

接下来,在“Search for a Workshop”处输入 Left 4 Dead 2。你可以从下拉菜单中点击该项目。

现在,点击屏幕左中部的 Browse 下拉菜单,然后点击 Collections。

之后,点击 Create Collection。

接下来你需要填写页面上的所有字段。在本指南中,标题将简单地设为“Test Collection”。

最后,点击右下方的 Save and continue 按钮以创建合集。

接下来,你需要记下合集的数字 ID,该 ID 位于 Steam 网址栏中 ?id= 之后。我们稍后会用到它。

例如,以下网址的合集 ID 为 3386575566。
https://steamcommunity.com/sharedfiles/managecollection/?id=3386575566
注意 - 如果合集已发布且对其他人可见,用户将能够一键订阅该合集中的所有 mod/addon。
将物品添加到新合集
在此浏览 Left 4 Dead 2 的 workshop 此处 找到要添加到合集中的 workshop 物品,或使用该物品的直接链接。
接下来,点击 Add to Collection 按钮。

这将弹出一个列出你所拥有的所有合集的复选框列表。请确保勾选你想要添加该物品的合集,然后点击 Ok。

发布合集
现在,返回到你创建的合集,点击 Publish 按钮进行发布。

提取 Addon 文件
建议使用此工具来提取合集中每个 addon 的文件。
该工具是用 Python 编写的,我建议阅读此文以了解如何在 Windows 上安装 Python,以及阅读此文以了解如何在 Linux 上安装 Python。
你可以直接从 GitHub 网站此处下载该工具,或者如果你的系统上安装了 Git,可以使用 git clone https://github.com/Geam/steam_workshop_downloader。
安装好 Python 并下载好工具后,执行以下命令。
./workshop.py <Collection ID>
其中 <Collection ID> 是我们上面获取到的 ID。例如:
./workshop.py 3386575566
在 Windows 上,你可能需要在上面的命令前加上 python,如下所示。
python .\workshop.py <Collection ID>
完成后,你应该会看到 *.vpk 文件。

现在,将这些文件上传/复制到你服务器的 addons/ 目录中,然后重启服务器!
服务器重启后,你添加到 addons/ 目录中的 VPK 文件应会自动挂载。如果添加了自定义战役,为了加载地图,你需要知道以 bsp 为扩展名的地图文件名。如果找不到此信息,可以尝试使用像 GCFScape 这样的工具从 VPK 文件中提取文件。这样你就可以找到地图文件的名称。
此外,你可以使用 show_addon_metadata 命令来显示已挂载 addon 的相关信息。例如,在我的 Linux L4D2 服务器上添加了 Resident Evil: Side A 自定义战役后,在服务器上执行该命令时看到的内容如下。
show_addon_metadata
MISSION: re2birkina (/home/servers/l4d2/left4dead2/addons/762591677.vpk)
连接到服务器
现在让我们连接到服务器吧!你可以在开发者控制台中执行 openserverbrowser 通过服务器浏览器进行连接,也可以直接连接到你的服务器。
要打开开发者控制台,请按下键盘上的 ` 或 ~ 键。如果开发者控制台无法使用,很可能是因为它被禁用了,你需要阅读这里了解如何启用它!
如果你想直接连接到服务器,你需要获取要连接的 IPv4 地址或主机名。如果你的服务器是通过专用主机托管商托管的,你应该可以在多个地方找到所需的 IPv4 地址/主机名,包括以下几处。
- 通过你的主机托管商的网页控制面板。
- 使用服务器启动时公布的公共 IP。
注意 - IPv4 的格式为 xxx.xxx.xxx.xxx,而主机名可以是一个名称或域名(例如 myserver 或 myserver.mydomain.com)。
如果你就在服务器上,或者服务器是本地托管的,你也可以通过列出网络接口和 IP 来获取服务器的 IP,在 Linux 上使用 ip a 或 ifconfig 命令,在 Windows 上使用 ipconfig /all 命令(使用命令提示符或 PowerShell)。
找到 IP 后,启动 Left 4 Dead 2 并按下键盘上的 \(或 ~)键以打开开发者控制台。
当开发者控制台显示后,你需要输入 connect <ip/hostname> 或 connect <ip/hostname>:<port>。由于我们已将服务器绑定到 Left 4 Dead 2 的默认端口 27015,这种情况下我们不需要输入端口。
我将使用我服务器在家庭网络下的内部主机名,它就是简单的 x-gs01。
connect x-gs01

现在你应该已经连接到你的 Left 4 Dead 2 服务器了!你可以在开发者控制台中输入 status 来确认。

常见问题
通过 SteamCMD 下载时收到“Invalid Platform”错误。
如果你在 Linux 上下载 Left 4 Dead 2 服务器文件时遇到此错误,你很可能遇到了 这个 于 2024 年末因 Steam 方面的更改而出现的问题。
根据我的了解,这个问题有两种解决方法。
-
在通过 SteamCMD 登录时使用你的 Steam 凭据。在本指南中执行
login命令时,输入你的 Steam 用户名,然后加一个空格,再输入你的密码。例如:login whoz MYPASSWORD。 -
通过一条命令依次运行两次 SteamCMD,先使用 Windows,最后使用 Linux,这样即可解决该问题。
# Use Windows as platform path really quick.
./steamcmd.sh +force_install_dir ../l4d2 +@sSteamCmdForcePlatformType windows +quit
# Finally use Linux which should then start the download successfully.
./steamcmd.sh +force_install_dir ../l4d2 +@sSteamCmdForcePlatformType linux +app_update 222860 +quit
如何将我自己或他人添加为服务器管理员?
如果你的 Left 4 Dead 2 服务器上已安装 SourceMod 和 MetaMod,你可以将自己或他人添加为管理员。
关于具体操作步骤,请阅读以下主题!
https://moddingcommunity.com/blog/how-to-manage-user-permissions-in-sourcemod/
如何在 Windows 中显示和编辑文件扩展名?
要在 Windows 11 中查看隐藏的文件扩展名,通过文件资源管理器,点击 查看 -> 显示,并确保勾选了 文件名扩展名 选项。
在其他版本的 Windows 中,这个过程也非常类似。
要在其他版本的 Windows 中显示文件名扩展名,我建议查看这篇指南!
我可以编写脚本自动更新服务器文件吗?
是的,这是可以的!
请阅读前面链接的指南中的以下部分!请记住,Left 4 Dead 2 服务器的应用程序 ID 是 222860!
https://moddingcommunity.com/blog/how-to-download-run-steamcmd/#automation-with-script-files
如何启用开发者控制台?
默认情况下,Left 4 Dead 2 的开发者控制台是未启用的。
要启用它,启动 Left 4 Dead 2 并点击 选项 菜单项。然后,从下拉菜单中点击 键盘和鼠标 项。

接下来,将 允许开发者控制台 选项从 禁用 切换为 启用。
最后,点击 完成 按钮!
现在你应该可以通过按住或按下键盘上的 ` 或 ~ 键来打开控制台了。

另请参阅
我只是想为希望改善 Left 4 Dead 2 服务器管理体验的服务器所有者提供一些有用的资源和工具。
- Pterodactyl - 一个非常流行的 Linux 开源 游戏服务器面板,提供了轻松创建和管理诸如 Left 4 Dead 2、Counter-Strike、Rust、Minecraft、FiveM 等游戏服务器的工具。
结语
这就是本指南的全部内容,但我希望未来能创作更多指南!到这一步,你应该已经拥有一个安装了一个或多个 mod/addon 的正常运行的 Left 4 Dead 2 服务器了。
如果你对本指南有任何问题或反馈,请在其论坛主题这里回复!本指南将会持续修订和完善。
加入我们的Discord 服务器!

