2026 年 CS 1.6 死斗服务器开服指南(Linux)

背景:笔者想搞一个无聊时可以和小伙伴之间激情对枪的轻量级射击游戏,要求“轻量,画面现代也能接受,手感不错,土豆机也能流畅运行,可离线部署,自托管”。简单看了一圈下来 CS 1.6 似乎是最好的选择,尽管画面落后,但即便以如今视角来看也不算很难受,并且依然有丰富的社区资源支撑。但在 CS1.6 经历半条命 25 周年大更新以及各路第三方修复与扩展的充实下,在 2026 年要正确开启一个 CS 1.6 服务器远远不是简单的下载 Dedicated Server 并启动那么简单,以往的教程也略显过时。本文旨在给出 CS 1.6 的服务器架设指南,目标是架设一个现代的、轻量的带 Bot 的 CS 1.6 死斗服务器,以允许闲时和小伙伴激情对战或者快速练习。

CS 起源其实也很好,但是如今 CS 起源的社区支持不佳,甚至远不及 CS 1.6,很多插件年久失修,没有人维护。而即便要自己做扩展开发,起源引擎的游戏做扩展开发也非常痛苦:作为同时具备过时技术与 DEAD GAME 双重 debuff 的游戏,如今在 CS 起源上进行开发的投入产出比极低,评估下来我认为没有理由过多去投入精力折腾。或许等 AI 继续发展下去,能够帮助实现绝大部分功能后才有去折腾的理由。

此外,对于有相似需求的读者,竞技场 FPS,例如 Warsow(Warfork)也是一个很值得考虑的选择。

1. 技术信息简介

  • 客户端:原版最新版 CS 1.6,不作任何更改
  • 服务端:基于 legacy 版本的服务端,配合 ReHLDS + ReGameDLL_CS + Metamod-R & AMX Mod X 完成基架搭建,使用 ReDeathmatch 实现死斗模式,使用 YaPB 实现 Bot 功能,使用 Reunion 实现跨联机协议(47/48)以及非 Steam 客户端之间的互通联机功能。

本教程假定读者有一定的 Linux 基础与动手能力,且有关电脑基础操作的部分将被省略不作赘述。

2. 服务器基架搭建

2.1. 安装 Steamcmd

略,请直接参考 Valve 提供的官方教程:https://developer.valvesoftware.com/wiki/SteamCMD

如果想使用容器方案,可以考虑使用 cm2network/steamcmd 镜像

2.2. 获取 CS 1.6 服务端文件

执行以下命令并等待下载完成即可:

steamcmd \
    +force_install_dir "$(pwd)/counter-strike" \
    +login anonymous \
    +app_set_config 90 mod cstrike \
    +app_update 90 -beta steam_legacy validate \
    +quit

完成后 CS 1.6 的服务端文件会放置到当前目录下的 counter-strike 目录中。此后如何特殊说明,均假设工作目录(Working Directory)为 counter-strike 目录。

注意到这里用了 -beta steam_legacy 要求下载旧版服务端文件,这是因为之后需要使用的 ReHLDS 仅和 25 周年更新前的最新版服务端兼容。不必担心客户端的兼容问题,25 周年后的新版 CS 1.6 客户端依然可以进入此服务器。

2.3. 安装 ReHLDS

在 ReHLDS 的 GitHub 仓库下载二进制构建文件:https://github.com/rehlds/ReHLDS/releases/

接下来,将下载的构建文件解压,并用 bin/linux32/ 目录中的所有文件覆盖所有原版 CS 1.6 服务端中的同名文件。以当前最新的 rehlds-bin-3.14.0.857.zip 为例,bin/linux32 的覆盖结构如下:

├── core.so
├── demoplayer.so
├── engine_i486.so
├── filesystem_stdio.so
├── hlds_linux
├── hltv
├── proxy.so
└── valve
    └── dlls
        └── director.so

重要:清除服务端根目录下 engine_i486.so 文件的可执行堆栈标记:

execstack -c ./engine_i486.so

如果不清除掉该文件的可执行堆栈标记,在现代 Linux 的安全策略下启动服务器时会导致执行出错。示例报错为:Error: engine_i486.so: cannot enable executable stack as shared object requires: Invalid argument。这一问题会影响容器化部署。

要使用 execstack 命令,Debian 系需要安装 execstack,RH 系需要安装 prelink。

2.4. 安装 ReGameDLL_CS

在 ReGameDLL_CS 的 GitHub 仓库下载二进制构建文件:https://github.com/rehlds/ReGameDLL_CS/releases/

接下来,将下载的构建文件解压,并用 bin/linux32/ 目录中的所有文件覆盖所有原版 CS 1.6 服务端中的同名文件。以当前最新的 regamedll-bin-5.28.0.756.zip 为例,bin/linux32 的覆盖结构如下:

└── cstrike
    ├── delta.lst
    ├── dlls
    │   └── cs.so
    ├── game.cfg
    └── game_init.cfg

2.5. 安装 Metamod-R

在 Metamod-R 的 GitHub 仓库下载二进制构建文件:https://github.com/rehlds/Metamod-R/releases/

接下来,将下载的构建文件解压,将其中的 addons 目录整个放置于服务端根目录下的 cstrike 目录中。

└── cstrike
    ├── addons

然后,编辑 ./cstrike/liblist.gmm 文件,找到 gamedll_linux 开头的行,并修改为以下值以启用 Metamod-R:

gamedll_linux "addons/metamod/metamod_i386.so"

2.6. 安装 AMX Mod X

在 AMX Mod X 的 GitHub 仓库下载二进制构建文件:https://github.com/alliedmodders/amxmodx/releases/。这里需要下载两个文件:base 与 cstrike,例如

  • amxmodx-1.9.0-git5303-base-linux.tar.gz
  • amxmodx-1.9.0-git5303-cstrike-linux.tar.gz

解压两者,并先将 amxmodx-base 中的 addons 目录放置到服务端根目录下的 cstrike 目录中, 然后将 amxmodx-cstrike 中的 addons 目录按同样的位置放置并覆盖掉同名文件。

接下来,编辑 ./cstrike/addons/metamod/plugins.ini(没有则新建),写入以下内容:

linux addons/amxmodx/dlls/amxmodx_mm_i386.so

重要:与 ReHLDS 的情况相似,还需要清除 amxmodx 的核心二进制文件的可执行堆栈标记,否则可能会导致容器环境下 AMX Mod X 加载失败:

execstack -c ./cstrike/addons/amxmodx/dlls/amxmodx_mm_i386.so

2.7. 安装 ReAPI

在 ReAPI 的 GitHub 仓库下载二进制构建文件:https://github.com/rehlds/ReAPI/releases/

解压,并将目录下的 addons 复制到 ./cstrike

2.8. 8 安装 ReUnion

在 ReUnion 的 GitHub 仓库下载二进制构建文件:https://github.com/rehlds/ReUnion/releases/

解压,将 addons 目录与 reunion.cfg 复制到 ./cstrike

接下来,编辑 ./cstrike/addons/metamod/plugins.ini(没有则新建),写入以下内容(此处为 plugins.ini 的完整内容,包含了 AMX Mod X 部分):

linux addons/reunion/reunion_mm_i386.so
linux addons/amxmodx/dlls/amxmodx_mm_i386.so

打开 reunion.cfg,修改以下两处,以允许非 Steam 客户端加入服务器:

# for p.47 clients that do not support unique id generation (default is Deprecated [5])
cid_NoSteam47 = 1

# for p.48 clients that do not support unique id generation (default is Deprecated [5])
cid_NoSteam48 = 1

2.9. 验证安装

在服务器根目录下执行如下命令快速启动服务器:

./hlds_run \
    -game cstrike \
    -insecure \
    -nomaster \
    -ip 0.0.0.0 \
    +maxplayers 10 \
    +map de_dust2

如果 ReHLDS、ReGameDLL、Metamod-R、AMX Mod X 均安装成功,应当能在控制台输出信息中看到相关字样,例如:

Metamod-r v1.3.0.149, API (5:13)

ReGameDLL version: 5.28.0.756-dev

Executing AMX Mod X Configuration File

在启动的服务端的控制台中执行以下命令验证插件基础设施是否安装成功:

meta list

期望输出示例:

Currently loaded plugins:
      description   stat pend  file                      vers             src  load  unload
 [ 1] Reunion       RUN   -    reunion_mm_i386.so        v0.2.0.34        ini  Start Never
 [ 2] AMX Mod X     RUN   -    amxmodx_mm_i386.so        v1.9.0.5303      ini  Start ANY  
 [ 3] Ham Sandwich  RUN   -    hamsandwich_amxx_i386.so  v1.9.0.5303      pl3  ANY   ANY  
 [ 4] CSX           RUN   -    csx_amxx_i386.so          v1.9.0.5303      pl3  ANY   ANY  
 [ 5] FakeMeta      RUN   -    fakemeta_amxx_i386.so     v1.9.0.5303      pl3  ANY   ANY  
 [ 6] ReAPI         RUN   -    reapi_amxx_i386.so        v5.26.0.338-dev  pl3  ANY   Never
6 plugins, 6 running

继续执行以下命令验证 AMX Mod X 与相关的插件是否安装成功:

amxx list

期望输出示例:

Currently loaded plugins:
       name                    version     author            file             status
 [  1] Admin Base              1.9.0.5303  AMXX Dev Team     admin.amxx       running
 [  2] Admin Commands          1.9.0.5303  AMXX Dev Team     admincmd.amxx    running
 [  3] Admin Help              1.9.0.5303  AMXX Dev Team     adminhelp.amxx   running
 [  4] Slots Reservation       1.9.0.5303  AMXX Dev Team     adminslots.amxx  running
 [  5] Multi-Lingual System    1.9.0.5303  AMXX Dev Team     multilingual.am  running
 [  6] Menus Front-End         1.9.0.5303  AMXX Dev Team     menufront.amxx   running
 [  7] Commands Menu           1.9.0.5303  AMXX Dev Team     cmdmenu.amxx     running
 [  8] Players Menu            1.9.0.5303  AMXX Dev Team     plmenu.amxx      running
 [  9] Maps Menu               1.9.0.5303  AMXX Dev Team     mapsmenu.amxx    running
 [ 10] Plugin Menu             1.9.0.5303  AMXX Dev Team     pluginmenu.amxx  running
 [ 11] Admin Chat              1.9.0.5303  AMXX Dev Team     adminchat.amxx   running
 [ 12] Anti Flood              1.9.0.5303  AMXX Dev Team     antiflood.amxx   running
 [ 13] Scrolling Message       1.9.0.5303  AMXX Dev Team     scrollmsg.amxx   running
 [ 14] Info. Messages          1.9.0.5303  AMXX Dev Team     imessage.amxx    running
 [ 15] Admin Votes             1.9.0.5303  AMXX Dev Team     adminvote.amxx   running
 [ 16] NextMap                 1.9.0.5303  AMXX Dev Team     nextmap.amxx     running
 [ 17] Nextmap Chooser         1.9.0.5303  AMXX Dev Team     mapchooser.amxx  running
 [ 18] TimeLeft                1.9.0.5303  AMXX Dev Team     timeleft.amxx    running
 [ 19] Pause Plugins           1.9.0.5303  AMXX Dev Team     pausecfg.amxx    running
 [ 20] Stats Configuration     1.9.0.5303  AMXX Dev Team     statscfg.amxx    running
 [ 21] StatsX                  1.9.0.5303  AMXX Dev Team     statsx.amxx      running
21 plugins, 21 running

3. 添加死斗插件与 YaPB 人机

继续这一步之前,请确认上一步的服务器基架搭建已经正确完成。

3.1. 添加 ReDeathmatch 插件

在 ReDeathmatch 的 GitHub 仓库下载二进制构建文件:https://github.com/ReDeathmatch/ReDeathmatch_AMXX/

解压,并将目录下的 cstrike 复制到服务端根目录。

是的,无需编辑 AMX Mod X 的 plugins.ini,ReDeathmatch 自带的 plugins-redm.ini 本身就会被 AMX Mod X 读取。

非必要,但推荐:编辑 ./cstrike/addons/amxmodx/configs/plugins-redm.ini,注释掉插件的 debug 标记,如下:

; Main plugin
ReDeathmatch.amxx   ;debug

; Addons
redm_spawns.amxx    ;debug

如果需要对死斗规则进行调整,可修改其配置文件 cstrike/addons/amxmodx/configs/redm/gamemode_deathmatch.json

3.2. 添加 YaPB 人机

在 YaPB 的 GitHub 仓库下载二进制构建文件:https://github.com/yapb/yapb/releases/

解压,并将目录下的 addons 目录复制到服务端根目录下的 cstrike 目录中。

打开 ./cstrike/addons/metamod/plugins.ini,添加 YaPB 启用配置。结合先前的配置,当前的 metamod 的 plugins.ini 长这样:

linux addons/reunion/reunion_mm_i386.so
linux addons/yapb/bin/yapb.so
linux addons/amxmodx/dlls/amxmodx_mm_i386.so

YaPB 提供了大量参数控制人机行为,并且对每个参数都做了注释说明,请参考文件 ./cstrike/addons/yapb/conf/yapb.cfg,根据需求进行调整。

4. 运行服务器

使用以下命令启动服务器:

./hlds_run \
    -game cstrike \
    -insecure \
    -nomaster \
    -ip 0.0.0.0 \
    -port 27015 \
    -strictportbind \
    +maxplayers 16 \
    +map de_dust2

如果倾向于使用容器环境部署,可以考虑直接基于 cm2network/steamcmd

5. 其他

5.1. CSCZ 兼容性

上述改造流程基本完美适配 CSCZ,只是 cstrike 目录变为 czero,服务端下载的 steamcmd 命令有变化:

app_set_config 90 mod czero

5.2. server.cfg 示例

// 原配置项
sv_aim 0
pausable 0
hostname "Counter-Strike 1.6 Server"
sv_maxspeed 320
mp_timelimit 60
sv_cheats 0
exec listip.cfg
exec banned.cfg

// 新增配置
sv_lan 1
sys_ticrate 333
maxplayers 10

// Deathmatch with Bots mode
// YaPB
yb_quota "10"                // 服务器里保持10个Bot
yb_quota_mode "fill"         // 使用填充模式,保持服务器的真人加BOT总数为 yb_quota 指定值
yb_autovacate "1"            // 真人进服时,自动踢掉一个Bot腾位置
yb_join_after_player "1"     // 真人进服后Bot才加入 (省服务器资源)

yb_ignore_objectives "1"     // 强制Bot无视C4和人质任务,纯粹杀人
yb_camping_allowed "0"       // 禁止Bot老六蹲坑,强制它们全图游走对枪
yb_walking_allowed "0"       // 禁止Bot静步走,死斗就是要求跑起来打

yb_difficulty "3"            // 难度等级
yb_shoots_thru_walls "2"     // 允许Bot穿墙射击
yb_tkpunish "0"              // 禁止Bot队友伤害惩罚,死斗模式不需要这个功能
yb_csdm_mode "2"             // 2 表示开启死斗且启用 Free For All
yb_autovacate_keep_slots "1" // 自动踢掉Bot时不保留空位,直接让Bot顶替位置,保持服务器满员

// ReDM
mp_freeforall "1"
redm_randomspawn "1"
redm_healer "100"
redm_healer_hs "100"
redm_fade "1"
redm_fade_colors "0 128 0 32"

5.3. 预制镜像

我已经构建了一个可直接运行的容器镜像,如有需要可直接拉取并创建容器以快速启动一个可玩的服务器:

podman run --it --network host ghcr.io/hiromuraki/cstrike:latest

6. 参考资料

  1. Gemini 3.1 Pro
  2. https://rehlds.dev/
  3. https://github.com/rehlds/ReHLDS
  4. https://github.com/rehlds/ReGameDLL_CS
  5. https://github.com/rehlds/metamod-r
  6. https://github.com/rehlds/ReAPI
  7. https://github.com/rehlds/ReUnion/releases
  8. https://github.com/alliedmodders/amxmodx
  9. https://github.com/ReDeathmatch/ReDeathmatch_AMXX
  10. https://github.com/yapb/yapb
  11. https://www.amxmodx.org/downloads.php
  12. https://redeathmatch.github.io/en/Getting-started/installation/
  13. https://yapb.readthedocs.io/en/latest/
  14. https://blog.timxs.com/docs/cs1.6/plugins
Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐