这份指南将以最流行的 Ubuntu/Debian 和 CentOS/RHEL 系统为例,为你提供一份详尽的、从零开始的搭建教程。

核心概念
在开始之前,你需要了解几个关键点:
- HLDS (Half-Life Dedicated Server): 这是 Valve 官方的服务器端程序,是搭建 CS 1.6 服务器的核心,它使用 GoldSrc 引擎。
- Metamod: 一个插件接口/插件管理器,它允许你像“插线板”一样,在游戏核心和插件之间建立一个中间层,让你可以轻松地加载和卸载插件,而无需修改游戏核心文件。
- AMX Mod X: 最流行、功能最强大的 CS 1.6 服务器管理插件,它提供了强大的管理命令(如
amx_ban,amx_slap)、计分板、管理员菜单、插件系统等,Metamod 是运行 AMX Mod X 的前提。 - 地图: 服务器运行的地图文件(如
de_dust2.bsp),你需要手动下载并上传到服务器。 - 服务器类型:
- Dedicated (专用服务器): 在 Linux 上运行的标准模式,性能最好,最稳定。
- Listen (本地服务器): 通常在 Windows 上运行,你在同一个电脑上既是服务器又是客户端,Linux 上不推荐。
准备工作
-
一台 Linux 服务器:
- 推荐系统: Ubuntu 20.04/22.04 LTS 或 CentOS 7/8,本教程以 Ubuntu 22.04 为例。
- 最低配置: 1核CPU, 512MB 内存, 1GB 硬盘空间。
- 网络: 必须有公网 IP 地址,并且开放以下端口:
- UDP 27015: 游戏客户端连接端口。
- TCP 27015: Steam 查询端口(可选,但推荐)。
- TCP 27020/27025: 用于某些特定功能(可选)。
- 你需要在服务器的防火墙(如
ufw,firewalld或iptables)和云服务商的安全组中开放这些端口。
-
SSH 访问权限: 你需要通过 SSH 连接到你的服务器。
第一步:更新系统并安装依赖
打开终端,连接到你的服务器。

对于 Ubuntu/Debian 系统
# 更新软件包列表 sudo apt update # 升级已安装的软件包 sudo apt upgrade -y # 安装必要的编译工具和库 sudo apt install -y wget tar gzip build-essential lib32gcc1 lib32stdc++6
对于 CentOS/RHEL 系统
# 安装 EPEL 仓库 sudo dnf install -y epel-release # 更新系统 sudo dnf update -y # 安装必要的编译工具和库 sudo dnf install -y wget tar gzip gcc gcc-c++ glibc-devel glibc.i686 libstdc++-devel libstdc++.i686
第二步:安装 HLDS (游戏服务器核心)
我们将从 SteamCMD 下载 HLDS,这是官方推荐的方式。
-
创建一个专门的用户来运行服务器 (这是安全最佳实践)
sudo adduser --system --group --no-create-home hlds
-
创建服务器目录并切换到该用户
sudo mkdir -p /opt/cstrike sudo chown hlds:hlds /opt/cstrike sudo su - hlds cd /opt/cstrike
-
下载并安装 SteamCMD
(图片来源网络,侵删)# 下载 SteamCMD wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz # 解压 tar -xvzf steamcmd_linux.tar.gz # 删除压缩包 rm steamcmd_linux.tar.gz
-
使用 SteamCMD 自动更新和安装 CS 1.6 服务器
# 运行 SteamCMD ./steamcmd.sh
在 SteamCMD 的命令行界面中,依次输入以下命令:
# 登录匿名账户(用于下载公共服务器) login anonymous # 设置安装目录 (非常重要!) force_install_dir /opt/cstrike # 下载/更新 CS 1.6 服务器 (appid 90 是 CS 1.6) app_update 90 validate # 退出 SteamCMD quit
这个过程会下载 HLDS 和一些默认地图,完成后,你的
/opt/cstrike目录下应该会有cstrike、valve等文件夹。
第三步:安装 Metamod 和 AMX Mod X
现在服务器核心有了,我们需要安装插件来管理它。
-
退出
hlds用户,回到 root 或你的普通用户exit
-
下载 Metamod 和 AMX Mod X
我们去它们的官方网站下载最新版本,请务必去官网获取最新链接!
- Metamod: metamod.org
- AMX Mod X: amxmodx.org
以当前最新版本为例 (请自行替换为最新版本号):
# 创建下载目录 mkdir ~/downloads cd ~/downloads # 下载 Metamod (metamod-v1.21.1-amxx) wget http://www.metamod.org/files/metamod-1.21.1-amxx.tar.gz # 下载 AMX Mod X (amxmodx-1.9.0) wget https://www.amxmodx.org/release/amxmodx-1.9.0-base-linux.tar.gz wget https://www.amxmodx.org/release/amxmodx-1.9.0-cstrike-linux.tar.gz wget https://www.amxmodx.org/release/amxmodx-1.9.0-modules-linux.tar.gz wget https://www.amxmodx.org/release/amxmodx-1.9.0-udamage-linux.tar.gz # 可选,显示伤害
-
解压并安装插件
# 进入服务器目录 cd /opt/cstrike # 解压 Metamod 到 addons 目录 tar -xvzf ~/downloads/metamod-*.tar.gz # 解压 AMX Mod X 的各个部分 tar -xvzf ~/downloads/amxmodx-*-base-linux.tar.gz -C addons/ tar -xvzf ~/downloads/amxmodx-*-cstrike-linux.tar.gz -C addons/ tar -xvzf ~/downloads/amxmodx-*-modules-linux.tar.gz -C addons/ tar -xvzf ~/downloads/amxmodx-*-udamage-linux.tar.gz -C addons/
-
配置 Metamod
Metamod 需要知道 AMX Mod X 在哪里,我们需要创建一个
plugins.ini文件。# 编辑 metamod 的 plugins.ini 文件 nano addons/metamod/plugins.ini
在文件末尾添加以下一行,告诉 Metamod 加载 AMX Mod X 插件:
; AMX Mod X addons/amxmodx/dlls/amxmodx_i386.so注意:如果你的系统是 64 位的,但 CS 1.6 是 32 位的,文件名可能仍然是
amxmodx_i386.so,请确认文件名是否正确。保存并退出 (
Ctrl+X,Y,Enter)。
第四步:下载地图
默认的地图很少,你需要下载一些经典地图。
-
创建地图下载目录
mkdir ~/maps_download cd ~/maps_download
-
下载地图
地图文件通常是
.zip或.bz2格式,推荐使用一个地图包。# 下载一个包含大量地图的包 (从 GameMaps.com 下载) # 这里提供一个示例链接,你可以搜索 "cs16 maps pack" 找到最新的 wget https://gamebanana.com/maps/download/184835 -O de_dust2.zip wget https://gamebanana.com/maps/download/184834 -O de_nuke.zip # ... 下载你想要的更多地图
-
解压并放置地图
# 返回服务器目录 cd /opt/cstrike # 将下载的地图解压到 cstrike/maps 目录 # 注意:地图文件应该是 .bsp 格式 unzip ~/maps_download/de_dust2.zip -d cstrike/maps/ unzip ~/maps_download/de_nuke.zip -d cstrike/maps/ # 清理下载的地图包 rm -rf ~/maps_download
第五步:配置服务器
这是最关键的一步,决定了你的服务器如何运行。
-
配置服务器参数 (
server.cfg)nano cstrike/server.cfg
这是一个基础配置文件示例,你可以根据需要修改:
// 服务器名称 hostname "我的 Linux CS 1.6 服务器" // 服务器密码 (留空表示无密码) rcon_password "your_strong_rcon_password" // 默认密码 (加入服务器时需要) sv_password "" // 地图循环列表 mapcyclefile "mapcycle.txt" // 每个地图的时间(分钟) mp_timelimit 25 // 开始时是否需要购买时间 mp_buytime 1.5 // 是否允许换边 mp_autoteambalance 1 mp_teamplay 1 // 最大玩家数 maxplayers 20 // 是否允许死亡聊天 mp_deathmsg 1 // 日志记录 log on sv_logbans 1 sv_logs 1
保存并退出。
-
配置地图循环 (
mapcycle.txt)nano cstrike/mapcycle.txt
在文件中输入你希望服务器循环的地图名称,每行一个:
de_dust2 de_nuke de_inferno de_dust de_aztec de_cbble保存并退出。
-
配置管理员 (
users.ini)AMX Mod X 的管理员权限在这里配置。
nano addons/amxmodx/configs/users.ini
文件格式为:
"玩家名字或STEAM_ID" "密码" "权限级别" "身份"- 玩家名字: 容易被伪造,不推荐。
- STEAM_ID: 最安全的方式,你需要玩家的
STEAM_0:0:123456这样的 ID。 - 权限级别:
a= 最高管理员 (全部权限),b= 普通管理员,z= 禁止进入。
示例:
// STEAM_ID 密码 权限 身份 "STEAM_0:1:123456" "mypassword" "a" "abcdefghijklmnopqrstu" // 一个只有 kick 和 ban 权限的管理员 "AnotherAdmin" "hispassword" "b" "bcdefghijklmn"保存并退出。
第六步:启动服务器
-
回到
hlds用户sudo su - hlds cd /opt/cstrike
-
启动服务器
最基本的启动命令:
./hlds_run -game cstrike +maxplayers 20 +map de_dust2
-game cstrike: 指定游戏目录为cstrike。+maxplayers 20: 设置最大玩家数。+map de_dust2: 设置初始地图。
启动后,你应该能看到服务器信息、地图加载、玩家连接等日志,如果一切正常,恭喜你!你的服务器已经可以运行了。
-
让服务器在后台持续运行 (使用
screen)直接在 SSH 中运行,一旦断开连接,服务器就会关闭,我们需要
screen来让它后台运行。-
安装
screen(在 root 用户下):# Ubuntu/Debian sudo apt install screen # CentOS/RHEL sudo dnf install screen
-
启动服务器:
# 创建一个新的 screen 会话 screen -S csserver # 在 screen 会话中启动服务器 ./hlds_run -game cstrike +maxplayers 20 +map de_dust2 -pingboost 3
-pingboost 3: 可以稍微提高网络性能,占用更多 CPU,如果你的 CPU 不够,可以尝试1或0。
-
脱离会话: 在 screen 会话中,按下
Ctrl+A,然后按D,这样你就可以安全地退出 SSH,而服务器会继续在后台运行。 -
重新连接到会话:
screen -r csserver
-
第七步:常见问题与维护
-
如何更新服务器?
- 切换到
hlds用户 (sudo su - hlds)。 - 进入 SteamCMD 目录 (
cd /opt/cstrike)。 - 运行
./steamcmd.sh。 - 在 SteamCMD 中执行:
login anonymous->force_install_dir /opt/cstrike->app_update 90 validate->quit。 - 服务器已更新。
- 切换到
-
如何添加/更换地图?
- 下载新的
.zip或.bz2地图包。 - 解压到
/opt/cstrike/cstrike/maps/目录。 - 确保地图文件名(如
de_mymap.bsp)在mapcycle.txt中。
- 下载新的
-
插件不工作怎么办?
- 检查
addons/metamod/plugins.ini是否正确加载了amxmodx_i386.so。 - 检查
addons/amxmodx/configs/plugins.ini是否启用了你想要的插件。 - 查看服务器控制台或日志文件 (
cstrike/logs/L_YYYY-MM-DD.log),通常会有插件加载失败的错误信息。
- 检查
-
如何重启服务器?
- 如果使用
screen,先连接 (screen -r csserver),然后按Ctrl+C停止服务器。 - 然后重新运行启动命令即可。
- 如果使用
你可以在你的 CS 1.6 游戏中,通过 "添加服务器" -> "输入服务器 IP:27015" 来连接到你自己的 Linux 服务器了!祝你玩得开心!
