使用 DOCKER 的方式来搭建 CSGO 服务器.

本文最后更新于:2020年11月11日 下午

当前搭建环境:Cents OS 8.x

更新系统

1
yum -y update

安装 DOCKER

1
wget -qO- https://get.docker.com/ | bash

检查 DOCKER 版本号查看是否安装正确

1
docker --version

引用的相关镜像以及WIKI

创建前准备工作

注册 Steam 服务器登录令牌 对应 SRCDS_TOKEN.

注册 Steam 网页 API 密钥 对应 SRCDS_WORKSHOP_AUTHKEY.

以持久化方式启动容器

1
2
3
4
mkdir -p $(pwd)/csgo-data
chmod 777 $(pwd)/csgo-data
export YOURTOKEN="你的密钥"
docker run -d --restart=always --net=host -v $(pwd)/csgo-data:/home/steam/csgo-dedicated/ --name=csgo-dedicated -e SRCDS_TOKEN=$YOURTOKEN cm2network/csgo:sourcemod
  • 镜像有三种分支:csgo:latest csgo:metamod csgo:sourcemod.

  • 我们选择 csgo:sourcemod 这个镜像已包含 Metamod:Source 以及 SourceMod.

以下是可选的 Docker 环境变量,通过 -e 参数添加。其中 SRCDS_RCONPW 和 SRCDS_PW 都可以被容器内csgo-dedicated/csgo/cfg/server.cfg 文件内的 rcon_password 和 sv_password 覆盖。

SRCDS_RCONPW=”changeme” (value can be overwritten by csgo/cfg/server.cfg)
SRCDS_PW=”changeme” (value can be overwritten by csgo/cfg/server.cfg)
SRCDS_PORT=27015
SRCDS_TV_PORT=27020
SRCDS_NET_PUBLIC_ADDRESS=”0” (public facing ip, useful for local network setups)
SRCDS_IP=”0” (local ip to bind)
SRCDS_FPSMAX=300
SRCDS_TICKRATE=128
SRCDS_MAXPLAYERS=14
SRCDS_STARTMAP=”de_dust2”
SRCDS_REGION=3
SRCDS_MAPGROUP=”mg_active”
SRCDS_GAMETYPE=0
SRCDS_GAMEMODE=1
SRCDS_HOSTNAME=”New CSGO Server” (first launch only)
SRCDS_WORKSHOP_START_MAP=0
SRCDS_HOST_WORKSHOP_COLLECTION=0
SRCDS_WORKSHOP_AUTHKEY=”” (required to use host_workshop_map)
ADDITIONAL_ARGS=”” (Pass additional arguments to srcds. Make sure to escape correctly!)

  • SRCDS_WORKSHOP_AUTHKEY 输入刚才申请的 Steam 网页 API 密钥,这样才能使用创意工坊的地图.
  • 如果保存出现 “No such file or directory” 可能是因为没有完全下载完成. 可以通过命令 docker logs -f 容器名 查看日志.

可能需要用到的命令

1
2
3
4
docker ps #查看当前所有的容器名/ID.
docker container start/restart/stop 容器名 #容器状态操作
docker logs -f 容器名 #滚动查看日志.
docker docker container rm -f 容器名 #删除这个容器.

查看自己 STEAM ID 的两种方法.

  • 通过网页查询
  • 随意进入一个服务器中控制台输入 status , 看到你自己名字后面的 STEAM_X:X:XXXXXX 就是你的 STEAM ID.

SOURCEMOD 管理员设置

  • SSH 上直接执行以下命令进入容器内部.
1
docker exec -it csgo-dedicated bash
  • 编辑 admins_simple.ini 文件,在最下面添加 STEAM ID.
1
nano csgo-dedicated/csgo/addons/sourcemod/configs/admins_simple.ini
  • 各个权限等级含义:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
"a"//预留通道
"b"//管理员菜单的权限
"c"//踢人
"d"//BAN人
"e"//解BAN
"f"//娱乐命令(处死 火烧冰冻等)
"g"//更换服务器地图
"h"//修改服务器cvar参数
"i"//执行服务器cfg文件
"j"//发送消息
"k"//发动投票
"l"//给服务器上密码
"m"//rcon命令 远程控制服务器
"n"//修改sv_cheats参数以及使用其他作弊参数
"z" //顶级权限
"o-t" //自定义权限(warmod菜单等)
  • 添加 “STEAM ID” “权限” “管理员密码(可选)” 以下是示例.
1
"STEAM_1:1:435231895" "99:z"
  • 编辑完后 Ctrl+X 然后 Y 回车.

安装武器、手套、刀皮肤插件

  • 我们需要先做前置修改,进入编辑 CORE.CFG.
  • 将 FollowCSGOServerGuidelines “yes” 修改为 “FollowCSGOServerGuidelines” “no”.
  • 在没有 GSLT 令牌(局域网服务器)的情况下使用,或使用令牌服务的服务器,你的账号有可能将被禁止操作游戏服务器,并被冷却一个月.
1
nano csgo-dedicated/csgo/addons/sourcemod/configs/core.cfg
  • 编辑完后 Ctrl+X 然后 Y 回车.

下载插件

PTaH

Weapons

Gloves

  • 三个包下载好后解压在一起,通过 SFTP 上传到路径 csgo-data/csgo 覆盖即可.

安装 WarMod 满十插件

WarMod [BFG]原帖地址

WarMod [BFG]下载地址

WarMod [BFG]中文翻译文件下载地址

  • 翻译文件放入 csgo/addons/sourcemod/translations/chi

重启容器

1
docker container restart 容器名
  • 大功告成,请享受你的游戏时刻吧.