本教程使用docker compose,旨在提供便利的方式供CS2中文社区玩家开服(Linux平台),并安装插件
metamod
CounterStrikeSharp
教程将引用以下仓库的镜像,如果需要进一步了解镜像架构请移步下方
https://github.com/joedwards32/CS2
最好是 2核2G 40G硬盘以上的机器,(需要单独为服务端本体预留40G)
cmd powershell mobaxterm windterm tabby 等
terminal windterm 等
terminal
因为封装为docker即可无需顾虑linux发行版的差异,只要能顺利安装docker的linux发行版基本都可以运行(大概)
https://docs.docker.com/engine/install/ubuntu/
官网说得比较清楚,可以一步一步复制到终端中进行安装
到 sudo docker run hello-world
这里就可以结束了,下面的不使用sudo运行docker(步骤可选)
参考官方
https://docs.docker.com/engine/install/linux-postinstall/
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh ./get-docker.sh --dry-run
docker pull joedwards32/cs2
浏览器访问steam社区服务器管理页面
https://steamcommunity.com/dev/managegameservers
申请一个用于CS2服务端的token,填入下一步的docker-compose.yml配置文件中
请找一个合理的路径放置以下文件
# 找一个合理的路径创建名为docker-compose.yml的配置文件
vim docker-compose.yml
# 填入https://github.com/joedwards32/CS2/blob/main/examples/docker-compose.yml的内容,如果遇到网络问题,你也可以直接clone该仓库或是通过其他代理的方式下载该文件,因为配置文件会更新,这里不贴出
SRCDS_TOKEN=你的token
SRCDS_TOKEN=xxxxxx
volumes:
- cs2:/home/steam/cs2-dedicated/
改为
volumes:
- ./cs2:/home/steam/cs2-dedicated/
启动docker compose
docker compose up -d
docker compose up -d
STEAMAPPVALIDAT=1
根据docker-compose.yml
中 container_name
可以得知容器名为cs2-dedicated
,可以使用tab进行补全
查看日志
docker logs cs2-dedicated
-f/--follow持续观察日志
docker logs cs2-dedicated -f
服务端会开始自动下载,请保证目标目录有40G的空间,并耐心等待
docker attach cs2-dedicated
注意 断开连接(detach)是ctrl + p + q,不是ctrl+C,ctrl + C会终止进程
允许 27015 UDP
metamod官网找到dev分支(2.x)
https://www.metamodsource.net/downloads.php?branch=dev
wget "https://mms.alliedmods.net/mmsdrop/2.0/mmsource-2.0.0-git1286-windows.zip"
解压到cs2/cs2-dedicated/game/csgo中
unzip -d cs2/cs2-dedicated/game/csgo 具体下载的文件名.zip
https://github.com/roflmuffin/CounterStrikeSharp/releases
unzip -d cs2/cs2-dedicated/game/csgo 具体下载的文件名.zip
https://busheezy.github.io/CounterStrikeSharp/docs/guides/getting-started.html unzip -d
可以参考valve的官方文档 https://developer.valvesoftware.com/wiki/Counter-Strike:_Global_Offensive/Game_Modes
修改docker-compose.yml
- CS2_GAMETYPE=0
- CS2_GAMEMODE=1
确实是有开久了变卡的情况,
定时重启可以使用
crontab
例如crontab -e
0 4 * * * docker restart cs2-dedicated
每天凌晨四点就会重启了
cs2-dedicated/game/csgo/cfg
gamemode_competitive.cfg
gamemode_server.txt
如何获取地图/地图组id,请在steam设置--界面--勾选显示网页URL
docker attach 容器id到控制台
host_workshop_map mapid
host_workshop_collection collectionid