L4D2 Linux 服务器管理脚本
l4d2-server-next 项目的配套管理脚本现已上线!告别手动编写 docker-compose.yaml,告别繁琐的端口配置和数据卷管理,一条命令搞定 L4D2 服务器的全生命周期运维。
适合谁用?
- 新手:完全不懂 Docker 也能一键部署服务器
- 老手:快速搭建多实例服务器,告别重复劳动
- 运维:统一管理镜像、配置、实例,日常维护更高效
功能特性
| 功能 | 说明 |
|---|---|
| 一键安装启动 | 自动检测/安装 Docker、配置镜像加速源、交互式部署首个实例 |
| Docker 环境管理 | 一键安装 Docker,国内环境自动使用清华镜像源 |
| 镜像管理 | 拉取/更新游戏服和管理面板镜像,支持镜像加速源配置 |
| 多实例部署 | 单台服务器可运行多个独立的 L4D2 服务器实例 |
| 交互式配置 | 添加/修改实例全程向导,自动检测端口冲突 |
| 状态监控 | 查看所有实例的运行状态、资源占用、日志 |
| 旧版兼容 | 自动导入已有的 docker-compose.yaml 配置 |
快速开始
运行管理脚本
Cloudflare 加速(推荐国内用户):
bash <(curl -sL l4d2-manage.laoyutang.cn)官方源:
bash <(curl -sL https://raw.githubusercontent.com/LaoYutang/l4d2-server-next/master/manifest/install/manage.sh)前置要求
需要 root 权限或 sudo 权限,因为脚本会安装 Docker 和管理容器。
首次安装向导
首次运行脚本时,如果检测到没有实例,主菜单会显示 "一键安装启动" 选项:
- Step 1/3 - 安装 Docker:脚本自动检测 Docker 是否安装,未安装则自动下载安装(国内自动走清华源)
- Step 2/3 - 配置镜像加速源:默认使用
docker.1ms.run,可自行修改或留空使用官方源 - Step 3/3 - 配置服务实例:
- 设置 Web 管理后台密码
- 设置游戏端口(默认 27015)
- 设置管理面板端口(默认 27020)
- 选择 Tick 率(30/60/100,推荐 100)
- RCON 密码自动生成,无需手动设置
确认配置后,脚本会自动拉取镜像并启动服务。首次启动需要下载约 5GB 的游戏数据,请耐心等待。
安装完成
游戏地址: 服务器IP:27015
管理面板: http://服务器IP:27020主菜单功能详解
脚本启动后进入一个交互式菜单界面,所有操作通过数字选项完成。
Docker 环境管理
- 安装 Docker:一键安装,国内环境自动使用清华镜像源
- 查看状态:显示 Docker 版本、Docker Compose 版本、服务状态、磁盘占用
如果你已有 Docker 环境,此菜单主要用于查看状态;如果没有,先在这里安装。
镜像管理
| 选项 | 功能 |
|---|---|
| 拉取/更新游戏服务器镜像 | 更新 laoyutang/l4d2-pure:latest |
| 拉取/更新管理面板镜像 | 更新 laoyutang/l4d2-manager-next:latest |
| 拉取/更新全部镜像 | 同时更新上述两个镜像 |
| 设置镜像加速源 | 配置国内镜像加速地址,如 docker.1ms.run |
| 查看本地镜像信息 | 查看镜像大小、创建日期 |
| 重建所有实例 | 拉取新镜像后,重建所有实例以应用更新 |
镜像更新
当 l4d2-server-next 发布新版本时,先在此菜单更新镜像,然后选择 "重建所有实例" 即可平滑升级,数据不会丢失。
服务实例管理
这是日常最常用的功能模块,支持对服务器实例进行全生命周期管理。
添加新服务实例
支持在同一台服务器上运行多个独立的 L4D2 服务器:
- 管理密码:设置 Web 后台登录密码
- 端口配置:
- 游戏端口(自动建议,首个实例 27015,后续 +10)
- 管理面板端口(自动建议,首个实例 27020,后续 +10)
- 自动检测端口冲突,避免配置错误
- Tick 率:30 / 60 / 100(推荐 100)
- VAC 验证:是否开启 Valve 反作弊验证
- 历史性能监控:是否开启历史性能数据收集
- Steam API Key:用于查询玩家游戏时长(可选)
- Bind 挂载(高级):将数据目录挂载到指定路径,如独立数据盘
多开建议
第二个实例建议端口为 27025/27030,第三个为 27035/27040,以此类推,保持 +10 的间隔避免混淆。
修改服务实例配置
支持修改已有实例的配置,分为两个子菜单:
游戏服务器设置:
- 修改游戏端口
- 修改 Tick 率
- 开关 VAC 验证
管理面板设置:
- 修改面板端口
- 修改管理密码
- 开关历史性能监控
- 修改 Steam API Key
修改保存后会自动重新生成 docker-compose.yaml 并重启实例。
删除服务实例
安全删除指定实例,包括:
- 停止并删除容器
- 删除数据卷(
l4d2-data、l4d2-plugins) - 删除配置文件
- 清理软链接
注意
删除操作不可恢复!如需保留数据,请先备份。
查看所有实例状态
显示所有实例的运行状态总览:
- 容器运行状态(运行中 / 已停止)
- 游戏端口和管理面板端口
- 资源占用情况
- 最近日志片段
重启指定实例
快速重启某个实例,适用于修改游戏配置后需要重启生效的场景。
多实例部署详解
实例命名规则
脚本采用规范的实例命名方式:
- 第一个实例:
l4d2/l4d2-manager - 第二个实例:
l4d2-1/l4d2-1-manager - 第三个实例:
l4d2-2/l4d2-2-manager
数据隔离
每个实例拥有独立的数据卷:
- 游戏数据:
l4d2-data、l4d2-1-data、l4d2-2-data... - 插件数据:
l4d2-plugins、l4d2-1-plugins、l4d2-2-plugins...
便捷目录软链接
脚本会自动在 /data/l4d2/ 目录下创建软链接,方便直接访问游戏文件:
/data/l4d2/left4dead2→ 第一个实例的游戏目录/data/l4d2/left4dead2-1→ 第二个实例的游戏目录
可以直接在这些目录下手动修改 cfg、addons 等文件,修改后重启实例即可生效。
进阶功能
镜像加速源配置
国内服务器拉取 Docker 镜像可能较慢,脚本内置加速源支持:
- 进入 镜像管理 → 设置镜像加速源
- 输入加速源地址,如
docker.1ms.run - 确认同步更新
docker-compose.yaml
常用加速源
docker.1ms.run(默认)docker.m.daocloud.iodocker.ghcr.io(GitHub 容器镜像)
加速源随时可更换或清空恢复官方源。
Bind 挂载模式
如果你有独立的数据盘(如 /mnt/data),可以在添加实例时启用 Bind 挂载:
- 游戏数据目录挂载到指定路径
- 插件数据目录挂载到指定路径
- 适合多实例共享数据,或数据盘扩容场景
注意
Bind 挂载配置后不可更改。实例删除后,绑定路径不会自动删除,需手动清理。
旧版配置自动导入
如果你之前使用手动 docker-compose.yaml 部署过服务器,脚本会自动检测并导入配置:
- 识别镜像加速源
- 提取游戏端口、面板端口、密码等配置
- 迁移到新的实例管理系统
- 自动创建
left4dead2软链接替换旧版的addons/cfg软链接
常见问题
Q: 脚本需要什么权限?
A: 需要 root 或 sudo 权限。脚本会安装 Docker、创建 /data/l4d2 目录、管理系统服务和容器。
Q: 可以管理已有的 Docker 部署吗?
A: 可以。如果检测到 /data/l4d2/docker-compose.yaml 存在,脚本会自动导入配置。建议先将已有的 compose 文件放到 /data/l4d2/ 目录下再运行脚本。
Q: 如何修改已部署实例的端口?
A: 进入 服务实例管理 → 修改服务实例配置 → 游戏服务器设置/管理面板设置 中修改端口,保存后会自动重启。注意新端口不能被其他实例占用。
Q: 如何查看服务器日志?
A: 脚本目前主要通过 查看所有实例状态 显示最近日志片段。如需查看完整日志,可手动执行:
docker logs -f l4d2 # 游戏服务器日志
docker logs -f l4d2-manager # 管理面板日志Q: 如何备份和迁移服务器?
A: 游戏数据存储在 Docker Volume 中,可通过以下方式备份:
# 备份第一个实例的游戏数据
docker run --rm -v l4d2-data:/data -v $(pwd):/backup alpine tar czf /backup/l4d2-data.tar.gz -C /data .迁移时在新服务器运行脚本创建相同实例,然后恢复数据卷即可。
Q: 非 Docker 部署的 L4D2 服务器能用这个脚本管理吗?
A: 不能。这个脚本专门用于管理 Docker 部署的 L4D2 服务器。如果你已有宿主机直接运行的 L4D2 服务器,建议参考 L4D2 Server Next 中的 仅部署管理器 方案。
小结
L4D2 Linux 管理脚本让服务器运维变得前所未有的简单:
- ✅ 零基础部署 — 一条命令,全程向导
- ✅ 多实例管理 — 单台服务器轻松开多个服
- ✅ 交互式配置 — 告别手动编辑配置文件
- ✅ 自动冲突检测 — 端口冲突提前拦截
- ✅ 镜像自动更新 — 一键升级到新版本
- ✅ 数据隔离清晰 — 每个实例独立管理
有任何问题欢迎在评论区留言或在 GitHub 提交 Issue!
