参考
搭建私服
下载服务端数据
完整结构
.
├── bin
├── dedicatedserver_readme.txt
├── hl2
├── hlds_steamgames.vdf
├── l4d2-devkit.sh
├── left4dead2
├── left4dead2.dat
├── left4dead2_dlc1
├── left4dead2_dlc2
├── left4dead2_dlc3
├── left4dead2.exe
├── left4dead2.ico
├── left4dead2_lv
├── platform
├── srcds_linux
├── srcds_run
├── steam_appid.txt
├── steamapps
└── update
docker构建
Dockerfile
FROM debian:12-slim
LABEL org.opencontainers.image.source=https://github.com/HoshinoRei/l4d2server-docker
LABEL L4D2_VERSION=2243
ENV LANG=C.UTF-8
ENV LC_ALL=C.UTF-8
ENV LANGUAGE=C.UTF-8
RUN rm -f /etc/apt/sources.list /etc/apt/sources.list.d/debian.sources && \
echo "deb http://deb.debian.org/debian bookworm main contrib non-free non-free-firmware" > /etc/apt/sources.list && \
echo "deb http://deb.debian.org/debian bookworm-updates main contrib non-free non-free-firmware" >> /etc/apt/sources.list && \
echo "deb http://security.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware" >> /etc/apt/sources.list && \
apt-get update && \
apt-get install -y --no-install-recommends ca-certificates && \
rm -rf /var/lib/apt/lists/*
RUN rm -f /etc/apt/sources.list && \
cat > /etc/apt/sources.list.d/debian.sources <<'EOF'
Types: deb
URIs: https://mirrors.tuna.tsinghua.edu.cn/debian
Suites: bookworm bookworm-updates
Components: main contrib non-free non-free-firmware
Architectures: amd64 i386
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
Types: deb
URIs: https://mirrors.tuna.tsinghua.edu.cn/debian-security
Suites: bookworm-security
Components: main contrib non-free non-free-firmware
Architectures: amd64 i386
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
EOF
RUN dpkg --add-architecture i386 && \
apt-get update && \
apt-get install -y --no-install-recommends curl lib32gcc-s1 lib32stdc++6 lib32z1 lib32ncurses6 lib32tinfo6 libcurl4 libcurl4:i386 && \
apt-get clean && \
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* && \
adduser --home /home/steam --disabled-password --shell /bin/bash --gecos "user for running steam" --quiet steam
USER steam
WORKDIR /home/steam
RUN curl -sSL https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz \
| tar zxvf -
RUN ./steamcmd.sh +quit
# COPY ./left4dead2_server /home/steam/left4dead2_server
EXPOSE 27015 27015/udp
构建镜像ld42_server
docker build -t l4d2_server .
配置文件
服务器信息
宿主机下新建server.cfg
服务端路径left4dead2/cfg/server.cfg
// 服务器名称
hostname "dmjcb"
// Steam group
sv_steamgroup "123456"
// whether to make the server Steam group private
sv_steamgroup_exclusive "1"
// whether or not to allow people with different mods to enter the server
sv_consistency "0"
// hidden server
sv_tags "hidden"
// region, 255 means all
sv_region "255"
欢迎信息(可选)
宿主机新建motd.txt
服务端路径left4dead2/cfg/motd.txt
Welcome to My L4D2 Server!
Enjoy your stay!
建立服务端
创建容器
docker run -itd --net="host" --name=l4d2_mini -v ./left4dead2_server:/home/steam/left4dead2_server -v ./server.cfg:/home/steam/left4dead2_server/left4dead2/cfg/server.cfg l4d2_mini:latest
建图
获取目标地图代码, 执行命令建立地图
docker exec -it l4d2_mini sh /home/steam/left4dead2_server/srcds_run -game left4dead2 -secure -insecure +map 地图代码 -maxplayers 8 -condebug +exec /home/steam/left4dead2_server/left4dead2/cfg/server.cfg -nomaster
三方图
若要使用三方图, 须将地图文件拷贝到容器内/home/steam/l4d2server/left4dead2/addons路径下
- 示例, 使用广州增城地图
拷贝vpk文件到容器指定路径
docker cp ./2396847377.vpk l4d2:/home/steam/l4d2server/left4dead2/addons
修改地图代码为增城第一关, 启动
docker exec -it l4d2 sh /home/steam/l4d2server/srcds_run -game left4dead2 -secure -insecure +map zc_m1 -maxplayers 8 -condebug +exec /home/steam/l4d2server/left4dead2/cfg/server.cfg -nomaster
连接
创建大厅
选择完成战役-与好友一起玩游戏-创建新战役大厅
设置服务器
服务器类型选目前最佳专用
按~启动控制台, 设置强制使用指定服务器, 开始游戏
mm_dedicated_force_servers 服务器IP:端口
- 示例, 设服务器IP为112.126.28.203, 端口默认27015
mm_dedicated_force_servers 112.126.28.203:27015
连接成功后服务端显示用户已经加入
服务端能正常显示游戏内容
控制台指令
基础
队友传送
Warp_all_survivors_here
作弊
Sv_Cheats 1
无敌
god 1
穿墙
noclip
第三人称
thirdpersonshoulder 1
绑定按键
- 示例, 绑定到按键 g
bind g "thirdpersonshoulder 1"
武器
无限弹药不换弹夹
sv_infinite_ammo 1
激光
upgrade_add laser_sight
榴弹
give weapon_grenade_launcher
m60
give rifle_m60
地图
map 地图代码
突变模式
map 地图代码 模式名
猎头者
map 地图代码 mutation2