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
相关推荐
陈希12338 分钟前
Linux 防火墙配置实战:firewalld、iptables 与云安全组
linux·运维·服务器
女神下凡1 小时前
芯参谋(95):嵌入式文件系统_开发指南
linux·服务器·arm开发·驱动开发·设计规范
@兽血沸腾2 小时前
Windows系统安装Jenkins部署应用至远程Windows服务器操作指南
运维·服务器·jenkins
且从容.5 小时前
Ubuntu安装flume
linux·ubuntu·flume
承渊政道5 小时前
Linux网络学习【Reactor反应堆模式】
linux·网络·学习·ubuntu·reactor
讯捷蓝达7 小时前
戴尔R720xd服务器卡死在 “Configuring Memory...Done“,换了内存还是卡?问题根本不在内存
运维·服务器
且从容.8 小时前
ubuntu安装flink
linux·ubuntu·flink
数字新视界10 小时前
动环监控信创适配在智能机房管理中的应用价值与未来展望
大数据·服务器·数据库·动环监控系统·动力与环境监控系统
爱和冰阔落10 小时前
【Linux网络】TCP 服务器如何并发处理多个客户端?从 fork、僵尸进程到双重 fork
linux·运维·服务器·网络
程序员沉梦听雨10 小时前
WSL2的安装与使用
linux·wsl