如何搭建 CS 1.6 服务器
本页内容
Counter-Strike 1.6 已经问世二十多年,却依然每晚都有满员的服务器,因为 CS 1.6 服务器运行成本低、可定制性几乎无限,玩起来也和大家记忆中一模一样。搭一个服务器只需一个下午;而要搭一个加第一个插件时不会崩溃的服务器,就得了解它的各个组件是如何相互加载的。
本指南两者都会讲到。先说明一台现代 CS 1.6 服务器实际运行的组件栈,再介绍让它上线的两种方式——用 SteamCMD 在自己的电脑上运行,或使用已经装好整套组件的托管服务器——最后讲解导致大多数“服务器启动不了”报告的那个崩溃,以及两分钟就能搞定的修复方法。
简要步骤
- 用 SteamCMD 下载服务器。CS 1.6 专用服务器是 Steam 应用 90,免费,可匿名安装。
- 用 ReHLDS 和 ReGameDLL_CS 替换引擎和游戏库,然后添加 Metamod-r 和 AMX Mod X。如今几乎所有认真运营的 CS 1.6 服务器都在用这套组件。
- 在
server.cfg中设置基础项——名称、RCON 密码、地图——并在 UDP 端口 27015 上启动。 - 添加插件和地图,并确保自定义内容通过 HTTP(FastDL)下载给玩家,而不是通过游戏连接慢慢传输。
或者直接跳过第 1 和第 2 步:托管的 CS 1.6 服务器已装好整套组件并配置好 FastDL,你从第 3 步开始即可。
整套组件预装到位——ReHLDS、ReGameDLL、Metamod-r 和 AMX Mod X——HytHost CS 1.6 服务器 €1.44/月起。
查看 CS 1.6 方案现代 CS 1.6 服务器由哪些部分组成
Valve 发布的服务器至今仍能用,但社区多年前就用持续维护、更快、更安全的重写版本替换了其中大部分。清楚每个组件的作用,就是两分钟修好崩溃与全部重装之间的区别。
| 组件 | 作用 |
|---|---|
| HLDS / ReHLDS | 引擎。ReHLDS 是 Valve HLDS 的持续维护重写版,修复了问题、性能更好,可直接替换原版。 |
| ReGameDLL_CS | Counter-Strike 的游戏逻辑本身(cstrike/dlls/cs.so),经过重写,并加入了原版从未有过的设置。 |
| Metamod-r | 插件加载器,位于引擎和游戏库之间,负责加载其他所有组件。 |
| AMX Mod X | 插件平台:管理菜单、封禁、地图投票、统计、游戏模式。插件是 .amxx 文件。 |
| ReAPI | 一个 AMX Mod X 模块,把 ReHLDS 和 ReGameDLL 的功能开放给插件。许多现有插件都依赖它。 |
它们按链条依次加载:引擎 → cstrike/liblist.gam → Metamod → plugins.ini → AMX Mod X → 游戏库。链条中任何一环无法读取,服务器就会在地图加载前挂掉——下面的故障排除部分讲的正是这个。
方式 A:用 SteamCMD 自行搭建
SteamCMD 是 Valve 的命令行安装工具,支持 Windows 和 Linux。在 Linux 上还需要 32 位运行库,因为 CS 1.6 服务器是 32 位程序。
- 下载服务器:
steamcmd +force_install_dir ./hlds +login anonymous +app_set_config 90 mod cstrike +app_update 90 validate +quit
等待出现Success! App '90' fully installed.如果中途停止,再运行一次同样的命令即可——它会继续下载。 - 先启动一次,确认引擎能正常运行:
cd hlds ./hlds_run -game cstrike +map de_dust2 +maxplayers 16 -port 27015
在 Windows 上程序是hlds.exe,参数相同。 - 安装现代组件栈。从官方发布页下载 ReHLDS、ReGameDLL_CS、Metamod-r、AMX Mod X 和 ReAPI,并按各自的安装说明操作——它们会替换引擎文件、添加
addons/,并让liblist.gam指向 Metamod。请在添加插件之前完成这一步,而不是之后。 - 编写
cstrike/server.cfg。至少包括:hostname "My CS 1.6 Server" rcon_password "use-a-long-random-password" sv_password "" mp_timelimit 25
- 开放端口。玩家通过 UDP 27015 连接你,需要在路由器上做端口转发——而有些网络连接根本做不到。端口转发指南说明了如何判断,同样适用于 CS 1.6。
现在你的服务器在线时长完全取决于你的电脑——而你家的 IP 就是它的地址,这对公开的 CS 1.6 服务器来说比几乎任何其他游戏都更重要。
方式 B:预装整套组件的托管服务器
在 HytHost CS 1.6 服务器托管上,服务器安装时就已装好 ReHLDS、ReGameDLL_CS、Metamod-r、AMX Mod X 和 ReAPI,FastDL 也已指向我们的下载服务器——因此从第一次换图起,自定义地图和音效就通过 HTTP 传给玩家。
- 选择槽位数。方案有 12、16、24 和 32 个槽位,每月 €1.44 起。请按高峰时段预计的玩家数量来选,而不是平均人数。
- 在面板的文件管理器中编辑
server.cfg:主机名、RCON 密码和地图设置。 - 通过文件管理器或 SFTP 上传插件和地图,具体见下一节。
- 重启即可开玩。面板中的控制台会显示加载链条,插件是否加载失败一目了然。
无论你的电脑是否开机,服务器都在运行,受 Voxility DDoS 过滤保护,使用的是公网地址而非你家的地址,并提供 99.9% 在线率 SLA。在线客服在每天早上 8 点至晚上 11 点(基希讷乌时间)提供支持。
添加 AMX Mod X 插件和自定义地图
插件
- 把编译好的
.amxx文件放进cstrike/addons/amxmodx/plugins/。 - 在
cstrike/addons/amxmodx/configs/plugins.ini中单独一行写上它的文件名。 - 如果插件附带配置文件或语言文件,把它们复制到
addons/amxmodx/下对应的文件夹。 - 重启,然后查看
cstrike/addons/amxmodx/logs/中最新的日志——那里出现新的一行,就说明 Metamod 和 AMX Mod X 都已加载。
插件要一个一个地加。如果五个插件一起加进去后服务器坏了,你就有五个嫌疑对象,而不是一个。
地图与 FastDL
地图放进 cstrike/maps/,如果要参与轮换,还要写进 mapcycle.txt。没有该自定义地图的玩家会在加入时下载——除非服务器告诉他们通过 HTTP 去哪里获取,否则就会通过游戏连接慢慢下载。这正是 sv_downloadurl 的作用:
sv_downloadurl "https://your-fastdl-host/cstrike/"
自行搭建时,你需要一台文件夹结构相同的 Web 服务器。在 HytHost 服务器上这项会自动设置;只有在你有意从其他地方提供文件时才添加自己的 sv_downloadurl 行,因为 server.cfg 中的这一行会覆盖自动设置。
启动不了时:exit code 139 及其他问题
有一种崩溃造成的“我的 CS 1.6 服务器坏了”报告,比其他所有问题加起来还多。它在控制台中是这样的:
Host_Error: Couldn't get DLL API from ! Segmentation fault (core dumped)
……随后服务器以 exit code 139 停止,通常就发生在你刚上传完插件包或皮肤包之后。
原因:文件夹缺少执行权限
压缩包经常带有自己的文件权限。解压 zip 时,文件夹可能变成 644 而不是 755。在 Linux 上,文件夹必须有执行位才能被打开——没有它,里面的任何东西都无法访问,哪怕文件本身完好无损。所以如果 cstrike/addons 丢失了这个权限位,Metamod 就无法加载,游戏库永远不会加载,引擎随之崩溃。你还可能在日志中看到 plugins.ini 的 Permission denied——原因相同。
修复方法
无需重装任何东西。把受影响的文件夹权限改回 755——cstrike/addons 以及你刚上传内容的文件夹。在面板中:Files,文件夹菜单,Permissions,755,然后重启。自行搭建时,find cstrike/addons -type d -exec chmod 755 {} + 效果相同。
其他值得认识的崩溃
Precache can only be done in spawn functions——某个皮肤或武器模型插件在错误的时机加载模型。禁用你最后添加的皮肤插件。- 重启后
addons/amxmodx/logs/中没有任何内容——Metamod 或 AMX Mod X 没有加载;检查liblist.gam和addons/metamod/plugins.ini。
它真的在线吗?
CS 1.6 只使用 UDP,所以用 TCP 工具测试端口总会显示 "connection refused"——这是正常的,不是故障。请像服务器浏览器那样,通过 UDP 发送 A2S 查询:
printf '\xff\xff\xff\xffTSource Engine Query\x00' | nc -u -w3 SERVER_IP 27015 | strings
在线的服务器会返回它的名称、当前地图和 1.1.2.7/Stdio。
常见问题解答
默认是 UDP 端口 27015,而且只用 UDP。自行搭建的服务器需要在路由器上做端口转发;托管服务器的端口已分配好并可直接访问。用 TCP 工具测试总会失败,这很正常——请改用 UDP 查询。
对几乎所有服务器来说,是的。ReHLDS 是 Valve HLDS 引擎的持续维护重写版,修复了漏洞和安全问题,性能更好,并且可以直接替换。大多数现有插件还需要基于它的 ReGameDLL_CS 和 ReAPI。
运行服务器本身不需要,但几乎所有服务器都在用。AMX Mod X 是管理菜单、封禁、地图投票、统计和自定义游戏模式背后的插件平台。它由 Metamod 加载,插件以 .amxx 文件形式添加,并列在 plugins.ini 中。
按高峰时段而不是平均人数来定。12 个槽位适合朋友间开服,16 个适合经典的 8 对 8 公开对战,24 或 32 个适合热门公开服或死亡竞赛。HytHost 的方案有 12、16、24 和 32 个槽位,每月 €1.44 起。
通常是因为解压压缩包时某个文件夹丢失了执行权限,最常见的是 cstrike/addons。这样 Metamod 就无法加载,控制台显示 "Couldn't get DLL API from !",引擎随即崩溃。把受影响的文件夹改回 755 并重启即可解决,无需重装任何东西。
可以。玩家加入时会下载缺少的地图和音效。如果 sv_downloadurl 指向一个镜像 cstrike 文件夹的 HTTP 服务器(FastDL),下载会很快;没有它,文件只能通过游戏连接慢慢传输。在 HytHost 上,FastDL 会自动配置。
服务器软件是免费的:Valve 的专用服务器通过 SteamCMD 免费安装,ReHLDS、ReGameDLL_CS、Metamod-r 和 AMX Mod X 也都免费。在家运行只需电费,但电脑必须一直开着,而且你家的 IP 会成为服务器地址。
你的 CS 1.6 服务器,组件全套预装
HytHost CS 1.6 服务器自带 ReHLDS、ReGameDLL、Metamod-r、AMX Mod X 和自动 FastDL,并有 DDoS 过滤保护——每月 €1.44 起。
Live chat 8 AM – 11 PM (Chișinău time) · tickets answered during business hours这篇指南对你有帮助吗?