Apache License 2.0

项目介绍

LaoYutang/l4d2-server-next 是一个托管在 GitHub 上的开源项目,主要使用 SourcePawn 编写,采用 Apache License 2.0 许可证,目前获得 93 个 Star、9 次 Fork。

仓库全名
LaoYutang/l4d2-server-next
开源许可证
Apache License 2.0
Star 数
93
Fork 数
9
未关闭 Issue
1

README 摘要

l4d2-server-next 新一代求生之路 2 (L4D2) 服务器与 Web 管理后台。 提供 Docker 镜像与 Windows 原生程序,内置完整的整合包和大量优质插件,开箱即用! 支持地图管理、插件管理、服务器状态监控、RCON 控制台等功能,让服务器管理变得简单高效。 ✨ 功能特性 🖥️ 多平台支持 Docker: 提供完整的游戏服镜像(l4d2-pure)与管理器镜像(l4d2-manager-next),一键部署。 Windows: 提供原生 .exe 管理器,无需 Docker 即可管理现有的 Windows 服务器。 Linux: 支持管理宿主机直接运行的 L4D2 服务端。 🗺️ 地图管理 支持 .vpk 及 .zip/.rar/.7z 压缩包拖拽上传。 自动解压安装地图文件到正确目录。 地图下载任务:支持后台下载地图文件到服务器。 可视化地图列表,支持一键切换地图、修改游戏模式、修改难度…

完整内容见 GitHub 原始 README 或本页 。

常见问题

l4d2-server-next 用什么语言开发?

主要使用 SourcePawn 编写,采用 Apache License 2.0 许可证,目前有 93 个 Star。

l4d2-server-next 可以免费商用吗?

仓库采用 Apache License 2.0 许可证,可免费使用与修改,商业使用请遵守许可证条款(例如保留版权声明与许可声明)。

如何获取 l4d2-server-next 的源码?

可以直接克隆仓库:git clone https://github.com/LaoYutang/l4d2-server-next.git,默认分支为 master;安装与运行步骤见仓库 README。

l4d2-server-next 最近还在维护吗?

仓库最近一次更新为 3 天前,当前有 1 个未关闭 Issue;Star 数为 93,可作为社区活跃度的参考。

简要分析

热度分
113
价值分
58
活跃状态
活跃

语言占比

Batchfile
C
C++
CSS
Dockerfile
Go
HTML
JavaScript
PLpgSQL
Pawn
Shell
SourcePawn
TypeScript
Vue

Release

贡献者

README

l4d2-server-next

新一代求生之路 2 (L4D2) 服务器与 Web 管理后台。 提供 Docker 镜像与 Windows 原生程序,内置完整的整合包和大量优质插件,开箱即用! 支持地图管理、插件管理、服务器状态监控、RCON 控制台等功能,让服务器管理变得简单高效。

✨ 功能特性

  • 🖥️ 多平台支持
    • Docker: 提供完整的游戏服镜像(l4d2-pure)与管理器镜像(l4d2-manager-next),一键部署。
    • Windows: 提供原生 .exe 管理器,无需 Docker 即可管理现有的 Windows 服务器。
    • Linux: 支持管理宿主机直接运行的 L4D2 服务端。
  • 🗺️ 地图管理
    • 支持 .vpk 及 .zip/.rar/.7z 压缩包拖拽上传。
    • 自动解压安装地图文件到正确目录。
    • 地图下载任务:支持后台下载地图文件到服务器。
    • 可视化地图列表,支持一键切换地图、修改游戏模式、修改难度。
  • 🔌 插件管理
    • Web 端查看已安装的所有 SourceMod 插件。
    • 支持在线上传插件文件。
    • 支持在线启用/禁用插件。
    • 内置整合包: 镜像中已包含 SourceMod、Metamod 以及大量热门实用插件,开箱即玩。
    • 在线插件商店:直接在 Web 端浏览、搜索、安装 SourceMod 插件。插件商店
  • 📊 服务器监控
    • 实时仪表盘:显示 CPU、内存占用率。
    • 网络状态:监控服务器网络延迟与丢包率。
    • 游戏状态:显示当前地图、模式、难度、玩家数等。
    • 玩家列表:查看当前在线玩家、SteamID、连接时长、Ping 值。
  • 💻 RCON 控制台
    • Web 端直接发送 RCON 指令,无需登录游戏。
    • 支持快捷指令菜单。
    • 快捷操作:踢出玩家、封禁 SteamID、修改服务器参数。
  • 🛡️ 安全与权限
    • Web 后台密码保护,防止未授权访问。
    • 支持可视化配置服务器管理员(无需手动编辑 admins_simple.ini)。
    • GeoIP 访问控制: 支持按地区(如“中国”)拦截非法 IP 访问管理后台,保障面板安全。
  • 💾 备份与恢复
    • 支持一键备份当前服务器的插件配置、管理员列表、服务器信息与服务器设置。
    • 支持导入备份文件,批量恢复配置。
    • 查看备份详情:包括插件配置列表、管理员列表、服务器信息快照、服务器设置快照。
  • 🔑 授权码与自助服务
    • 支持生成临时授权码,可配置过期时间,方便分享面板访问权限。
    • 支持自助服务模式:授权码持有者可在有限权限下使用面板。
  • 🎮 玩家游戏时长查询
    • 通过 Steam API 查询玩家在 L4D2 的总游戏时长与实际游玩时长。
  • 📦 插件预设
    • 支持预设插件方案,一键批量应用预配置的插件组合。
    • 通过 preset.yaml 管理预设配置。
  • 📝 插件配置管理
    • 在线查看和编辑插件的 CVAR 配置项。
    • 显示每个 CVAR 的当前值、默认值和说明。

📸 预览截图

首页 系统信息与授权码
插件管理 插件配置
rcon控制台 性能监控
地图管理 地图下载

🚀 Linux 部署

1. 完整部署 (游戏服务器 + 管理器)

适合从零开始搭建服务器的用户。

方式一:一键脚本 (推荐) 【支持安装与管理】【多开/安装/删除/更新】

Cloudflare加速:

bash <(curl -sL l4d2-manage.laoyutang.cn)

官方源:

bash <(curl -sL https://raw.githubusercontent.com/LaoYutang/l4d2-server-next/master/manifest/install/manage.sh)
方式二:Docker Compose

创建 docker-compose.yaml:

volumes:
  l4d2-data:
  l4d2-plugins:
  l4d2-manager-data:

networks:
  l4d2-network:

services:
  # 游戏服务器
  l4d2:
    image: laoyutang/l4d2-pure:latest
    container_name: l4d2
    restart: unless-stopped
    ports:
      - "27015:27015"
      - "27015:27015/udp"
    volumes:
      - l4d2-data:/l4d2/left4dead2
      - /etc/localtime:/etc/localtime:ro # 同步宿主机时区
      - /etc/timezone:/etc/timezone:ro
    networks:
      - l4d2-network
    security_opt:
      - seccomp:unconfined # Docker 29.3+ 默认 seccomp 与 32 位 srcds 不兼容,低版本可省略此项
    environment:
      - L4D2_TICK=100 # 30,60,100,128
      - L4D2_VAC=false # false: 添加-insecure, true: 不添加
      - L4D2_PORT=27015
      - L4D2_RCON_PASSWORD=[rcon密码] # 请修改此处

  # 管理器
  l4d2-manager:
    image: laoyutang/l4d2-manager-next:latest
    container_name: l4d2-manager
    restart: unless-stopped
    ports:
      - "27020:27020"
    volumes:
      - l4d2-data:/left4dead2 # 与游戏服务器共享数据卷
      - l4d2-plugins:/plugins # 插件数据持久化
      - l4d2-manager-data:/data # 管理器运行数据持久化(key/监控/配置)
      - /proc:/host/proc:ro # 挂载宿主机进程信息用于监控
      - /etc/localtime:/etc/localtime:ro # 同步宿主机时区
      - /etc/timezone:/etc/timezone:ro
      - /var/run/docker.sock:/var/run/docker.sock # 允许管理器访问 Docker API(可选,若使用docker方式重启L4D2)
    environment:
      - L4D2_RESTART_BY_RCON=true
      - L4D2_MANAGER_PASSWORD=[web管理密码] # 请修改此处
      - L4D2_RCON_URL=l4d2:27015
      - L4D2_RCON_PASSWORD=[rcon密码] # 与上方保持一致
      - L4D2_GAME_PATH=/left4dead2
    networks:
      - l4d2-network

启动:

docker-compose up -d

关于 security_opt 配置:Docker 29.3+ 版本的默认 seccomp profile 收紧了对部分 32 位 syscalls 的放行规则,导致 srcds_linux 无法正常启动。如果你使用的是 Docker 29.3 以下版本,可以删除上述 security_opt 字段。

2. 仅部署管理器 (Linux)

适合已有 L4D2 服务器(Docker 或宿主机部署),只需添加 Web 管理功能的用户。

docker run -d \
  --name l4d2-manager \
  --restart unless-stopped \
  --net host \
  -v /path/to/your/l4d2/left4dead2:/left4dead2 \
  -v l4d2-plugins:/plugins \
  -v l4d2-manager-data:/data \
  -v /proc:/host/proc:ro \
  -v /etc/localtime:/etc/localtime:ro \
  -v /etc/timezone:/etc/timezone:ro \
  -e L4D2_MANAGER_PORT=27020 \
  -e L4D2_MANAGER_PASSWORD=[web管理密码] \
  -e L4D2_GAME_PATH=/left4dead2 \
  -e L4D2_RCON_URL=127.0.0.1:27015 \
  -e L4D2_RCON_PASSWORD=[游戏服RCON密码] \
  -e L4D2_RESTART_BY_RCON=true \
  laoyutang/l4d2-manager-next:latest

注意修改 /path/to/your/l4d2/left4dead2 为实际的游戏目录。


💻 Windows 部署

适合在 Windows 机器上运行 L4D2 服务器的用户。

  1. 下载管理器: 前往 Releases 页面,下载最新的 l4d2-manager-windows-amd64-vX.X.X.zip。

  2. 解压: 解压压缩包到任意目录(建议不要包含中文路径)。

  3. 配置: 右键编辑 start_manager.bat 文件,修改以下配置:

    • L4D2_MANAGER_PASSWORD: 设置 Web 管理后台密码。
    • L4D2_GAME_PATH: 设置 L4D2 游戏目录(例如 D:\SteamCMD\steamapps\common\Left 4 Dead 2 Dedicated Server\left4dead2)。
    • L4D2_RCON_URL: 游戏服务器 IP:端口(通常是 127.0.0.1:27015)。
    • L4D2_RCON_PASSWORD: 游戏服务器的 RCON 密码(需在 server.cfg 中配置 rcon_password)。
  4. 启动: 双击运行 start_manager.bat。

  5. 访问: 打开浏览器访问 http://localhost:27020(或服务器 IP:27020)。


⚙️ 环境变量说明

变量名 描述 默认值/必填
L4D2_MANAGER_PASSWORD Web 管理后台登录密码 必填
L4D2_GAME_PATH L4D2 游戏目录路径 (left4dead2 文件夹) 必填
L4D2_RCON_URL RCON 地址 (IP:Port) 推荐配置,否则无法切图/看状态
L4D2_RCON_PASSWORD RCON 密码 推荐配置
L4D2_VAC 游戏服是否启用 VAC false(默认添加 -insecure)
L4D2_RESTART_BY_RCON 是否通过 RCON 命令重启服务器 false (推荐 true)
STEAM_API_KEY Steam API Key (用于查询玩家时长) 可选
REGION_WHITE_LIST GeoIP 区域白名单 (如: 中国) 可选 (不填则不拦截)
L4D2_MANAGER_PORT 管理器监听端口 27020

🔌 插件 ZIP 格式规范

Web 面板的“上传插件”功能只接受 .zip 文件。ZIP 内部必须按 L4D2 的 left4dead2 游戏目录组织文件,支持单插件包和多插件包两种格式。

单插件 ZIP

如果压缩包内的根目录就是 left4dead2/,会被识别为一个插件。插件名称取自 ZIP 文件名(去掉 .zip 后缀)。

MyPlugin.zip
├── README.md
└── left4dead2/
    ├── addons/sourcemod/plugins/my_plugin.smx
    ├── addons/sourcemod/gamedata/my_plugin.txt
    └── cfg/sourcemod/my_plugin.cfg

多插件 ZIP

如果一个 ZIP 内包含多个插件,每个一级目录就是一个插件名称,并且每个插件目录下应包含 left4dead2/ 目录。

plugins-bundle.zip
├── PluginA/
│   ├── README.md
│   └── left4dead2/
│       └── addons/sourcemod/plugins/plugin_a.smx
└── PluginB/
    ├── readme.md
    └── left4dead2/
        ├── addons/sourcemod/plugins/plugin_b.smx
        └── cfg/sourcemod/plugin_b.cfg

插件根目录可以放 .md 说明文件,推荐命名为 README.md 或 readme.md,面板会将它作为插件详情显示;如果存在多个 .md 文件,会优先使用 README.md。

常见文件路径示例:

left4dead2/addons/sourcemod/plugins/*.smx
left4dead2/addons/sourcemod/configs/
left4dead2/addons/sourcemod/gamedata/
left4dead2/addons/sourcemod/translations/
left4dead2/cfg/sourcemod/*.cfg

放在 left4dead2/cfg/sourcemod/ 下的 .cfg 文件会随插件启用复制到服务器,并在“插件配置”中作为可编辑配置项显示(可识别其中的 SourceMod CVAR 配置)。

注意事项:

  • 不要在 ZIP 根目录放 readme.txt 等零散文件;单插件 ZIP 根目录只放 left4dead2/ 和可选 .md 说明文件,多插件 ZIP 根目录只放插件文件夹。
  • 单插件 ZIP 不要再套一层插件名目录,除非你要使用多插件 ZIP 格式。
  • 插件名称不能和现有插件重复:单插件取 ZIP 文件名,多插件取一级目录名。
  • __MACOSX/ 和 .DS_Store 会被自动忽略,中文文件名支持 UTF-8/GBK 编码。

💾 服务器备份与迁移

迁移服务器时建议同时导出“备份文件”和“插件文件”。备份文件保存的是当前启用插件列表、已修改的插件配置、管理员列表、服务器信息和服务器配置;插件文件需要通过“插件管理”单独批量导出。只导入备份文件但没有对应插件文件时,还原会跳过新服务器上不存在的插件。

旧服务器导出

  1. 进入 Web 面板的“备份管理”,点击“新建备份”,输入一个容易识别的名称,例如 迁移前备份。
  2. 在备份列表中点击单个备份的“导出”,下载该备份的 .yaml 文件;如果要一次导出全部备份,点击“全部导出”,下载 backups_all.yaml。
  3. 进入“插件管理”,点击“导出所有插件”,等待压缩完成后浏览器会下载 plugins_all.zip。导出过程中会占用服务器 CPU 和带宽,建议避开游戏高峰期。

新服务器导入与恢复

  1. 先部署并启动新服务器和管理器,确认 L4D2_GAME_PATH、L4D2_RCON_URL、L4D2_RCON_PASSWORD 等环境变量已经配置正确。
  2. 进入新服务器 Web 面板的“插件管理”,上传旧服务器导出的 plugins_all.zip,等待插件批量导入完成。(建议清理预设插件后再导入)
  3. 进入“备份管理”,点击“导入”,选择旧服务器导出的 .yaml 文件或 backups_all.yaml。如果导入的备份名称已存在,系统会自动追加 (1)、(2) 等后缀。
  4. 在备份列表中选择目标备份,点击“还原”。还原会重置当前启用插件、管理员列表、服务器信息和服务器配置;如果某些插件没有先导入,会在提示中列为已跳过。
  5. 还原完成后重启 L4D2 服务器,让插件启用状态和配置文件完全生效。

注意事项:

  • 备份文件不包含地图、监控数据库、登录密钥或完整游戏目录文件;这些内容如需迁移,请按实际部署方式单独复制或重新安装。
  • 建议保留同一时间点导出的 .yaml 备份文件和 plugins_all.zip,两者配套使用最稳妥。

评论

暂无评论