12 10 月 2026
本文只讲 Linux 系统的完整步骤。用 Windows 请看:《CS:起源开服教程(Windows版)》
Linux 环境还没准备好(SSH、依赖库、screen、systemd)?先看:《Linux 云服务器开服通用前置教程》

CS:起源(Counter-Strike: Source)的服务端是 Source 1 引擎的 srcds,原生支持 Linux,跑起来比 Windows 更省资源、更稳定。匿名 SteamCMD 就能下载,不需要拥有游戏。

这篇带你从零开一个能搜到、能长期挂的 CS:S 社区服。


一、开服前必读:先搞清这 4 件事

① 专用服 AppID 是 232330,不是 240
240 是游戏本体 ID(申请 GSLT 时用),下载服务端要用 232330。

② CS:S 锁死 66 tick
-tickrate 在现行版本上无效,别照抄老教程。按 66 tick 规划。

③ 想进服务器列表必须申请 GSLT
申请时 AppID 填 240,用法见第 6 步。

④ Linux 下要装 32 位运行库
SteamCMD 是 32 位程序,Source 1 服务端也依赖 32 位库,这是新手最常卡的一步。


二、端口规划(NAT 型必看)

端口协议用途是否必开
27015UDP游戏流量 + A2S 查询✅ 必开
27015TCPSource RCON✅ 强烈建议
27020UDPSourceTV(开 tv_enable 1 才需要)⭕ 可选

NAT 型服务器在控制台把 27015 UDP + TCP 各映射一条,玩家连 公网IP:公网端口。详见 《NAT 端口映射完全指南》。


三、Linux 系统完整步骤

第 1 步:准备服务器

人数CPU内存磁盘系统
≤ 12 人2 核2G10GUbuntu 20.04/22.04、Debian 11/12
16-24 人2 核(高主频)4G15G同上
32 人2-4 核4-6G20G同上

第 2 步:装依赖(32 位库是关键)

sudo apt update && sudo apt upgrade -y
sudo dpkg --add-architecture i386
sudo apt update
sudo apt install -y lib32gcc-s1 lib32stdc++6 lib32z1 screen wget curl
CentOS / RHEL:sudo yum install -y glibc.i686 libstdc++.i686 zlib.i686

第 3 步:建专用用户(别用 root 跑)

sudo useradd -m -s /bin/bash srcds
sudo su - srcds

第 4 步:SteamCMD 下载服务端

mkdir -p ~/steamcmd && cd ~/steamcmd
curl -sqL "https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz" | tar zxvf -

cd ~/steamcmd
./steamcmd.sh +login anonymous \
  +force_install_dir /home/srcds/css \
  +app_update 232330 validate \
  +quit

目录结构:

/home/srcds/css/
├── srcds_run          ← Linux 启动脚本(用这个,不是 srcds_linux)
├── srcds_linux
└── cstrike/
    ├── cfg/           ← server.cfg 在这
    ├── maps/
    └── addons/

第 5 步:防火墙放行端口

# Ubuntu / Debian
sudo ufw allow 27015/udp
sudo ufw allow 27015/tcp
sudo ufw reload

# CentOS / RHEL
sudo firewall-cmd --permanent --add-port=27015/udp
sudo firewall-cmd --permanent --add-port=27015/tcp
sudo firewall-cmd --reload

云服务器安全组也要放行,这是独立于系统防火墙的开关。

第 6 步:申请 GSLT 并写 server.cfg

先去 https://steamcommunity.com/dev/managegameservers,AppID 填 240,生成令牌。

然后新建 /home/srcds/css/cstrike/cfg/server.cfg:

// ===== 基础 =====
hostname "我的 CS:S 服务器"
rcon_password "改成强密码"
sv_password ""

// ===== 网络 =====
sv_lan 0
sv_region 255
sv_maxrate 0
sv_minrate 20000
sv_maxupdaterate 66
sv_minupdaterate 33
sv_maxcmdrate 66
sv_mincmdrate 33

// ===== 游戏 =====
mp_timelimit 30
mp_roundtime 3
mp_freezetime 6
mp_friendlyfire 0
mp_autoteambalance 1
mp_limitteams 2
mp_maxrounds 0
mp_buytime 45
mp_startmoney 800
mp_c4timer 35

// ===== 其他 =====
sv_cheats 0
sv_pure 1
sv_allowupload 1
sv_allowdownload 1
sv_voiceenable 1
sv_alltalk 0

// 日志
log on
sv_logbans 1
sv_logecho 1
sv_logfile 1
sv_lan 0 必须确认:写成 1 你的服就是局域网服,外网搜不到。

第 7 步:启动脚本

新建 /home/srcds/css/start.sh:

#!/bin/bash
cd /home/srcds/css
./srcds_run -game cstrike -console -secure \
  -ip 0.0.0.0 -port 27015 \
  +maxplayers 24 \
  +map de_dust2 \
  +exec server.cfg \
  +sv_setsteamaccount 你的GSLT令牌 \
  -nohltv
chmod +x /home/srcds/css/start.sh

参数说明:

  • srcds_run 是 shell 包装器,崩了会自动重启,比直接跑 srcds_linux 稳
  • -game cstrike:内容目录名
  • -ip 0.0.0.0:不加远程 RCON 经常连不上,这是关键项
  • +maxplayers:启动时设定,运行中改不了
  • +map:必须有,没地图不接受连接
  • -norestart:调试时加上,防止崩了无限重启

先手动跑一次验证:

cd /home/srcds/css && ./start.sh

看到 Connection to Steam servers successful 和地图加载完成就说明 OK,Ctrl+C 停掉。

第 8 步:systemd 常驻(长期挂服)

sudo tee /etc/systemd/system/css.service > /dev/null << 'EOF'
[Unit]
Description=Counter-Strike Source Dedicated Server
After=network.target

[Service]
Type=simple
User=srcds
WorkingDirectory=/home/srcds/css
ExecStart=/home/srcds/css/start.sh
Restart=on-failure
RestartSec=10
KillSignal=SIGINT

[Install]
WantedBy=multi-user.target
EOF

sudo systemctl daemon-reload
sudo systemctl enable --now css
sudo systemctl status css

看日志:journalctl -u css -f


四、玩家怎么进服

connect 你的公网IP:27015

或在 Steam 服务器浏览器收藏夹里添加 IP:27015。上了 GSLT 且 sv_lan 0,几分钟后能在社区列表搜到服名。


五、常见问题排查

Q:error while loading shared libraries: libstdc++.so.6
32 位库没装全,回到第 2 步:

sudo dpkg --add-architecture i386 && sudo apt update
sudo apt install -y lib32gcc-s1 lib32stdc++6 lib32z1

Q:搜不到服?
① GSLT 填了吗;② sv_lan 0;③ 27015 UDP 真放行了吗;④ 等 5-10 分钟同步。

Q:RCON 连不上?
27015 TCP 没放行,或启动参数缺 -ip 0.0.0.0。

Q:崩了无限重启刷屏?
调试时加 -norestart,或者 journalctl -u css -n 100 看具体报错。

Q:怎么更新服务端?

sudo systemctl stop css
cd ~/steamcmd && ./steamcmd.sh +login anonymous +force_install_dir /home/srcds/css +app_update 232330 validate +quit
sudo systemctl start css
validate 会覆盖 cstrike/ 下你改过的文件,重要配置先备份。

Q:想开 SourceTV?
去掉 -nohltv,server.cfg 里加 tv_enable 1,并放行 UDP 27020。


六、写在最后

CS:S 是 Linux 开服的绝佳入门款:原生支持、资源占用低、SourceMod 生态完整。一套 2核4G 的机器能同时跑两个满人服还有余量。


📌 觉得有用请收藏,卡在哪一步评论区留言,看到会回。
还没机器?看看我们家的游戏云服务器——Linux 镜像开箱即用,BGP 多线低延迟,2核4G 起步,NAT 型价格比独立 IP 省一半:https://z0w.cn

相关阅读

延伸阅读
  1. 网站环境怎么选:LNMP 手动 / 宝塔面板 / Docker / 云开发
  2. 问卷表单系统搭建:SurveyKing / Formbricks,数据自己收
  3. 图床搭建:Lsky Pro / Lychee,自托管图片托管方案
  4. 邮件列表搭建:listmonk 自托管 Newsletter,把读者握在自己手里
  5. 文档站点搭建:MkDocs / VuePress / Docsify,产品文档与技术手册方案
  6. RSS 阅读器搭建:FreshRSS 自托管,把信息流拿回自己手里
  7. 短链接服务搭建:Shlink 自托管,链接数据自己掌握
  8. 网站状态监控页搭建:Uptime Kuma,服务器挂了第一时间知道
更多阅读
  1. 上一篇:CS:起源开服保姆级教程(Windows版):66tick经典社区服
  2. 下一篇:半条命2死亡竞赛HL2DM开服保姆级教程(Windows版):物理沙盒混战服
发表评论 1

    1. Steam 游戏配置与开服教程总索引:一页查清要吃多少配置、教程在哪 - 			财富云计算 - 维基百科的头像

      [...]这是本站长期维护的游戏配置与教程总索引。想开服,先在这页搞清楚两件事:你的游戏要吃多少配置、你的系统该看哪篇教程。建议收藏——换游戏、加 MOD、人数变多时,回来核对一遍能省掉大部分"卡爆了"和"连不上"。搭配阅读:还没买服务器?先看购前决策索引(预算分级 / NAT vs 独立 IP / 避坑清单);端口映射看不懂?先看端口速查表(40+ 游戏端口协议一页查清)。一、全游戏配置需求速查表下表按"[...]