"哦,天啊!这简直就像反恐精英!"
GitHub 源码
我们还提供 Left 4 Dead Docker 镜像 - docker pull left4devops/l4d
运行一个原版服务器非常简单,命令如下:
shelldocker run --name l4d2 \ --network host \ left4devops/l4d2
[!IMPORTANT] 上述示例使用主机网络(
--network host),这是推荐的网络方式,因为它允许游戏服务器正确识别连接玩家的IP,便于封禁玩家或阻止任何试图强制访问RCON的网络***。在Windows或macOS上使用主机网络,需从Docker 4.29版本的实验性功能中启用主机网络。
尽管游戏服务器无法正确识别玩家IP,但你可以使用Docker默认的桥接网络模式。确保同时使用TCP和UDP协议发布游戏端口。
shelldocker run --name l4d2-bridged \ -p 27015:27015/tcp \ -p 27015:27015/udp \ left4devops/l4d2
"得有人去重启发电机!"
srcds_run 包含看门狗功能,可在服务器进程崩溃时自动重启。此外,你可能需要添加restart参数以确保服务器在系统重启后自动恢复:
shelldocker run --name l4d2-reboot \ --restart unless-stopped \ left4devops/l4d2
"我需要你们所有人立刻进来!"
此部分仍在完善中,更多详情请参见讨论。
有多种方式可以加入服务器:
mm_dedicated_force_servers [ip:端口],游戏将尝试使用你的服务器。STEAM_GROUP变量,在大厅中选择从Steam组服务器启动游戏。openserverbrowser命令)将服务器添加为收藏,它将在Steam组服务器列表中显示。connect [ip:端口]如果想在服务器上运行自定义战役或安装SourceMod,可以将包含自定义内容的目录挂载到/addons/目录。
例如,当前工作目录下有addons文件夹:
shelldocker run --name l4d2-server-addons \ -v $(pwd)/addons:/addons/ left4devops/l4d2
可通过环境变量配置服务器的多项常用设置。
服务器名称,将显示在服务器浏览器和Steam组服务器列表中。默认为Left4DevOps。
将主机名改为BILLS HERE:
shelldocker run --name l4d2-hostname \ -e HOSTNAME="BILLS HERE" \ left4devops/l4d2
"我需要你们所有人立刻进来!"
设置REGION环境变量可向Steam提示服务器位置,取值为以下数字之一:
| 位置 | REGION |
|---|---|
| 美国东海岸 | 0 |
| 美国西海岸 | 1 |
| 南美洲 | 2 |
| 欧洲 | 3 |
| 亚洲 | 4 |
| 澳大利亚 | 5 |
| 中东 | 6 |
| 非洲 | 7 |
| 全球(默认) | 255 |
若服务器位于欧洲:
shelldocker run --name l4d2-region \ -e REGION=3 \ left4devops/l4d2
将服务器关联到Steam组可简化加入流程。Steam组服务器显示在游戏菜单右下角,且在Left 4 Dead 2中可直接选为 hosting 选项。玩家可按h键查看每日消息并加入你的Steam组,以便日后再次找到服务器。Steam组ID可在组管理页面顶部找到。
shelldocker run --name l4d2-group \ -e STEAM_GROUP=666 \ left4devops/l4d2
默认情况下,服务器对使用大厅中最佳可用专用服务器设置的所有玩家开放。设置STEAM_GROUP_EXCLUSIVE为true可限制访问,仅组内成员可作为大厅主机启动游戏。
shelldocker run --name l4d2-group-exclusive \ -e STEAM_GROUP=666 \ -e STEAM_GROUP_EXCLUSIVE=true \ left4devops/l4d2
[!NOTE] 非组内成员仍可通过
mm_dedicated_force_servers命令选择你的服务器。
游戏默认会从27015开始查找可用端口。使用桥接网络时,通常会自动选择27015。你可通过此变量硬编码游戏端口,简化端口转发或防火墙配置。游戏流量和RCON使用相同端口。
使用主机网络更改端口:
shelldocker run --name l4d2-port \ -e PORT=27016 \ --network host \ left4devops/l4d2
使用桥接网络时需暴露新端口:
shelldocker run --name l4d2-port-bridged \ -e PORT=27016 \ -p 27016:27016/tcp \ -p 27016:27016/udp \ left4devops/l4d2
为简化端口修改,可使用变量:
shellPORT=27017 docker run --name l4d2-port-var \ -e PORT=$PORT \ -p $PORT:$PORT/tcp \ -p $PORT:$PORT/udp \ left4devops/l4d2
[!WARNING] 使用桥接网络发布端口时,确保容器端口与主机端口相同。否则匹配系统会广播错误端口,导致新玩家无法连接。
设置服务器首次加载时的地图。默认为各游戏的最新地图。不同游戏的地图名称不同,可在开发者控制台输入maps获取完整地图列表。启动L4D2服务器时加载"死亡中心":
shelldocker run --name l4d2-map \ -e DEFAULT_MAP=c1m1_hotel \ left4devops/l4d2
设置服务器首次加载时的游戏模式。默认为合作模式(coop),但可从大厅更改。
shelldocker run --name l4d2-mode \ -e DEFAULT_MODE=versus \ left4devops/l4d2
限制服务器允许的游戏模式。不设置则允许所有模式。可选值包括coop,realism,survival,versus,scavenge,dash,holdout,shootzones
shelldocker run --name l4d2-modes \ -e GAME_TYPES="versus,mutation19" \ left4devops/l4d2
在同一容器中运行多个游戏实例,端口自动分配(忽略PORT变量)。可通过挂载多个server##.cfg文件自定义不同实例的行为。
shelldocker run --name l4d2-forked \ --network host \ -e FORK=2 -v $pwd/server01.cfg:/cfg/server01.cfg -v $pwd/server02.cfg:/cfg/server02.cfg left4devops/l4d2
以局域网模式运行服务器,无需连接Steam,但玩家需通过本地IP连接。
shelldocker run --name l4d2-lan \ --network host \ -e LAN=true \ left4devops/l4d2
"孩子,我们是免疫者,我们很累,树林里有感染者。别废话,让我们进去!"
设置RCON密码可在游戏中向服务器发送命令。登录RCON还可获得投票踢人免疫权限。设置密码:
shelldocker run --name l4d2-rcon \ --network host \ -e RCON_PASSWORD=cuttheshitandletusin \ left4devops/l4d2
加入服务器后,打开开发者控制台输入:
rcon_password cuttheshitandletusin rcon
[!NOTE] 密码需设置为唯一值,因为***者常尝试字典。
srcds_run会在多次失败尝试后封禁IP,使用桥接网络时可能导致所有玩家被封禁。
与RCON类似,网络控制台允许通过telnet客户端管理服务器。若未设置密码,强烈建议通过防火墙阻止公网访问该端口。启动监听端口***:
shelldocker run --name l4d2-netcon \ --network host \ -e NET_CON_PORT=*** \ left4devops/l4d2
使用telnet客户端连接:
shelltelnet localhost ***
设置网络控制台密码:
shelldocker run --name l4d2-netcon-password \ --network host \ -e NET_CON_PORT=*** \ -e NET_CON_PASSWORD=cuttheshitandletusin \ left4devops/l4d2
通过telnet客户端连接后,输入PASS和密码:
shelltelnet localhost *** PASS cuttheshitandletusin
镜像中包含telnet客户端,可通过docker exec连接:
shelldocker exec -it l4d2 telnet localhost ***
添加其他少量设置。例如增加大型尸潮的生成频率:
shelldocker run --name l4d2-args \ -e EXTRA_ARGS="+z_mega_mob_size 100 +z_mega_mob_spawn_min_interval 180 +z_mega_mob_spawn_max_interval 600" \ left4devops/l4d2
srcds_run会查找server.cfg文件。若有大量配置,可将其保存到文件并挂载到/cfg/server.cfg。
shelldocker run --name l4d2-server-cfg \ -v $(pwd)/server.cfg:/cfg/server.cfg left4devops/l4d2
可通过启动容器时提供参数完全替换环境变量配置:
shelldocker run --name l4d2-command-line \ left4devops/l4d2 +hostname "Vannah Hotel"
来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像加速服务
在 Docker Desktop 配置镜像加速
Docker Compose 项目配置加速
Kubernetes 集群配置 Containerd
在宝塔面板一键配置镜像加速
Synology 群晖 NAS 配置加速
飞牛 fnOS 系统配置镜像加速
极空间 NAS 系统配置加速服务
爱快 iKuai 路由系统配置加速
绿联 NAS 系统配置镜像加速
QNAP 威联通 NAS 配置加速
Podman 容器引擎配置加速
HPC 科学计算容器配置加速
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名加速
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429