left4devops/l4d2"哦,天啊!这简直就像反恐精英!"
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
默认情况下,服务器对使用大厅中最佳可用专用服务器设置的所有玩家开放。设置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 ***
NET_CON_PASSWORD
设置网络控制台密码:
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"
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务