2026 在Linux上搭建CS2插件服务器

前言

起因是打算开一个CSGO的插件服务器趁着过年和朋友一起玩,但由于CS2的服务器端和debian13的安全政策更新,现在网上很多资料都已经过时了,前前后后折腾了好几天才搞好。所以便萌生了写一篇博客记录下来的想法,也希望能帮助到其他人。

一,准备工作

首先需要准备一台装有Linux系统的服务器。

官方给出的最低配置要求是:

  • 最低内存要求:2GB(实际体验下来2G根本不够,建议至少4G)
  • 存储空间:65GB
  • CPU:x86-64-v2(支持 POPCNT/SSE4.2)

由于CS2新版的服务器需要 Glibc 2.31,所以使用的系统应不老于Ubuntu 20.04、Debian 11 或 Enterprise Linux 9。(我这里使用的是debian13,安装插件时又吃了系统太新的亏。)

二,安装SteamCMD

SteamCMD 是 Steam 客户端的命令行版本,想要下载服务器端需要先安装SteamCMD。

SteamCMD可以通过包管理器安装,也可以手动安装。这里我把两种安装方法都写出来了,大家自行选择。(官方建议是从发行版提供的存储库安装 SteamCMD 软件包。)

从存储库安装

先直接从存储库安装。

Ubuntu:

bash 复制代码
sudo add-apt-repository multiverse; sudo dpkg --add-architecture i386; sudo apt update
sudo apt install steamcmd

Debian:

bash 复制代码
sudo apt update; sudo apt install software-properties-common; sudo apt-add-repository non-free; sudo dpkg --add-architecture i386; sudo apt update
sudo apt install steamcmd

(但由于在debian12之后apt-add-repository 命令不再有效,需要使用这个变通方法。)

安装完成后由于官方不建议直接使用root运行SteamCMD,所以我们需要先给他专门创建一个用户。

bash 复制代码
sudo useradd -m steam
sudo passwd steam

之后切换到steam用户。

bash 复制代码
su - steam

直接输入即可进入steam交互环境

bash 复制代码
steamcmd

手动安装

先安装依赖。

bash 复制代码
sudo apt-get install lib32gcc-s1

同样的,创建steam用户。

bash 复制代码
sudo useradd -m steam
sudo passwd steam

之后切换到新建的steam用户家目录下。

bash 复制代码
sudo -u steam -s
cd /home/steam

切换到steam用户。

bash 复制代码
su - steam

在家目录下创建Steam文件夹来存放SteamCMD的文件。

bash 复制代码
mkdir ~/Steam
cd ~/Steam

下载并解压文件

bash 复制代码
curl -sqL "https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz" | tar zxvf -

之后在~/Steam目录下运行即可进入steam交互环境。

bash 复制代码
./steamcmd.sh

三,安装游戏服务器

进入交互环境后steam会先检查更新,等他跑完。

之后使用匿名账号登陆SteamCMD

bash 复制代码
login anonymous

设置服务器安装位置(/full/path/to/cs2-ds/改成你自己的路径,如果不设置路径会默认安装在SteamCMD安装目录下/steamapps/common/Counter-Strike Global Offensive)

bash 复制代码
force_install_dir /full/path/to/cs2-ds/

之后安装CS2(CS2的服务器端和游戏本体合并到一起了,都是730),等待进度跑完即可。

bash 复制代码
app_update 730 validate

四,申请社区服务器令牌(可选)

如果说你打算把服务器开在公网上让大家都可以看到,需要申请社区服务器令牌。

在这个链接申请,申请基本上没有要求,只要是steam等级大于0就可以。

不过如果开插件服,修改服务器内容(如开全皮肤之类的),据说有概率被封,所以还是建议不使用令牌,直接内网穿透就行。

五,安装插件

开插件服一般都使用MetaMod+CounterStrikeSharp的组合。新出现的swiftlys2框架安装方式也差不多,所以就只讲MetaMod和CounterStrikeSharp的安装方法了。

MetaMod

先去MetaMod官网下载插件,下载时看清要下载Dev版本的,稳定版的是给起源引擎1用的,CS2是起源引擎2,所以要下载Dev版本的。

下载下来是一个压缩包,解压后得到一个addons文件夹,直接把这个文件夹放到刚刚游戏安装目录下/Counter-Strike Global Offensive/game/csgo目录下。

之后修改/csgo目录下的gameinfo.gi文件,在

bash 复制代码
Game_LowViolence    csgo_lv // Perfect World content override

这一行下面添加,保存后即可完成MetaMod的安装。

bash 复制代码
Game	csgo/addons/metamod

CounterStrikeSharp

同样的,先去官网下载,下载时选择带有运行时的,之后更新插件时可以选择不带运行时的。

压缩包解压后同样是一个addons文件夹,把这个文件夹放到刚刚放MetaMod的目录(游戏安装目录下/Counter-Strike Global Offensive/game/csgo)下即可完成安装,之后安装基于CounterStrikeSharp的插件只需要放在addons/counterstrikesharp/plugins目录下即可。

六,配置服务器

服务器的配置文件为Counter-Strike Global Offensive/game/csgo/cfg目录下的server.cfg。

打开 server.cfg并添加你想要的配置(下面为我常用的配置)

mp_autokick 0 //禁止自动踢人,防止因友伤,挂机之类被踢出服务器

mp_drop_knife_enable 1 //允许丢刀

sv_password "密码" //设置服务器连接密码

hostname "服务器名称" //设置服务器名称

mp_friendlyfire 0 // 禁止友伤

编辑完保存即可。

七,运行服务器

CS2服务端近期更新后,运行服务器是一个比较大的坑点。不同于之前很多教程写直接运行位于/game/bin/linuxsteamrt64下的CS2二进制文件,现在Linux上要通过/Counter-Strike Global Offensive/game下的cs2.sh脚本来启动服务器,一个比较常见的运行指令如下

bash 复制代码
./cs2.sh -dedicated +map de_dust2

其中常用的的参数如下

|---------------|----------------------|
| -dedicated | 表明以服务器模式启动 |
| -ip | 设置服务器ip |
| -insecure | 禁用VAC |
| -maxplayers | 设置最大人数 |
| -port | 设置服务器端口(默认为27015) |
| -map | 设置地图 |
| -game_mode | 游戏模式,用来指定竞技还是休闲 |
| -game_type | 游戏类型,用来指定是否为死斗,一般不用管 |

比如这个就是以竞技模式,沙二地图启动服务器,服务器最大人数为12人。

bash 复制代码
.\cs2.exe -dedicated maxplayers 12 +game_type 0 +game_mode 1 +map de_dust2

之后在客户端打开控制台,输入

bash 复制代码
connect (服务器ip)

即可完成连接(记得放行端口,CS2使用的是UDP)。

八,常见问题

对于debian13系统来说,还有一个坑点,因为debian13安全机制更加严格导致,导致插件无法启用可执行堆栈,进而导致插件加载失败。

目前的解决方法是先安装patchelf

bash 复制代码
sudo apt install patchelf

之后使用patchelf来清除可执行堆栈即可。

bash 复制代码
patchelf --clear-execstack /home/cs2server/serverfiles/game/csgo/addons/counterstrikesharp/bin/linuxsteamrt64/counterstrikesharp.so
相关推荐
流年笙歌_2 小时前
(超详细)手把手教你安装银河麒麟高级服务器操作系统 V11
运维·服务器
爱学习的小囧2 小时前
VCF 私有 AI 服务(PAIS)自签名 TLS 证书配置避坑指南
服务器·esxi·虚拟化·vcf
微学AI2 小时前
code-server 体验:一行命令把 VS Code 跑在服务器上,随时用浏览器写代码
运维·服务器
嫂子开门我是_我哥2 小时前
一文讲透服务器:普通人也能看懂的服务器科普,网站为啥离不开它?
运维·服务器
qq_232888752 小时前
麒麟V10服务器安装搜狗输入法
运维·服务器
程序员晓晓2 小时前
【网络安全零基础入门】应急响应之服务器入侵排查,小白零基础入门到精通教程
服务器·web安全·计算机·网络安全·渗透测试·黑客技术·网安应急响应
学亮编程手记2 小时前
一台服务器能支持的A800或H800 GPU最大数量分析
运维·服务器·人工智能
大灰狼来喽2 小时前
McPorter 实战:一键管理 OpenClaw 的 MCP 服务器
运维·服务器·人工智能·aigc·ai编程
灰子学技术2 小时前
Envoy 中 TCP 网络连接实现分析
运维·服务器·网络·网络协议·tcp/ip