最近在自己的阿里云服务器上搭建CS:GO服务器,由于每次查找比较复杂,所以在此自己整理总结一个可行的方案。

主要内容是源自FisherYung的博客总结,在遵循该博客的指引下顺利搭建了私人CS:GO服务器,在此十分感谢FisherYung!

服务器选择

首先说一下服务器的选择问题,我这里使用的是阿里云的轻量应用服务器,具体配置为:

1核-2GB内存-5Mbps带宽

这里选用轻量应用服务器主要是因为它有5Mbps的带宽,能够满足日常使用的大部分需求了。

下面正式开始CS:GO私人服务器的搭建。

安装steamcmd、CSGO Server

首先创建一个用户,用来运行CSGO Server程序

useradd -m steam    // 添加名为steam的用户
su steam    // 切换到steam用户
cd ~    // 切换到steam用户的根目录下

创建steamcmd文件夹,下载steamcmd并解压

mkdir steamcmd    //创建名为steamcmd的文件夹
cd steamcmd/    // 切换到文件夹目录下
wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz    //下载steamcmd
tar zxvf steamcmd_linux.tar.gz    // 解压steamcmd
rm steamcmd_linux.tar.gz    //删除下载的安装包,也可以保留

安装steamcmd运行环境,运行steamcmd并安装CSGO Server

sudo yum install glibc.i686    // 安装steamcmd运行所需的库
sudo yum install libstdc++.i686    // 有的主机已经安装其他同样效果的依赖,不用多次安装
./steamcmd.sh

在操作正确的情况下会看到以下结果,就证明steamcmd安装完成了。
steamcmd成功安装

下面在steamcmd中安装CS:GO Server

首先以匿名身份登录steamcmd

login anonymous

然后创建CS:GO服务器文件夹,该文件夹在steamcmd文件夹目录下

force_install_dir ./csgo_server

最后安装CSGO服务端,这里需要下载CSGO Server的程序,所以速度视网络状况和带宽而定。

app_update 740 validate

安装完成后,应该可以看到Success的图样。
安装(更新)成功

安装完成后,退出steamcmd

quit

编写CSGO Server更新脚本

该步骤为了更新方便,非必要步骤。

编写steamcmd runscript脚本

steamcmd/目录下创建update.txt文件

vim update.txt

update.txt中输入以下语句

login anonymous
force_install_dir ./csgo_server
app_update 740
quit

编写steamcmd运行脚本

steamcmd/目录下创建csgo_server_update.sh脚本文件

vim csgo_server_update.sh

csgo_server_update.sh中输入以下语句后保存退出
#!/bin/bash
./steamcmd.sh +runscript update.txt

测试脚本

steamcmd/目录下运行脚本csgo_server_update.sh

./csgo_server_update.sh

如果运行成功,则提示Success字样,以后便可采用该脚本来更新CSGO Server脚本

如果出现权限不足的问题,则需要提升权限,再次运行

chmod 775 csgo_server_update.sh

配置并运行CSGO Server

前往Steam 游戏服务器帐户管理注册登录Steam账号后注册Steam服务器登陆令牌

注:如果没有该令牌,则无法联网连接该服务器,只能从本地网络连接。

在App ID中填入730,备忘录中填入CSGO Server(此处任意填写)。然后点击创建,获取登陆令牌。

注册Steam服务器令牌

下载Server Config

切换目录到CSGO的cfg文件夹下,下载server.cfg文件

cd csgo_server/csgo/cfg/
wget http://www.csgodev.com/downloads/server.cfg
vim server.cfg

进入编辑模式,在server.cfg中添加刚刚注册的登陆令牌,修改部分参数

// 新增以下参数:
// steam account,修改为自己刚刚申请的登陆令牌
sv_setsteamaccount "**********************"

// 找到并修改以下参数:
// 服务器名称,安全方面
hostname "Private Server"    // 服务器在社区服务器浏览器上显示的名称,自行修改为喜欢的名字
rcon_password "12345678"    // CS:GO远程控制台密码,修改为自己定义的密码
sv_password "87654321"    // 服务器连接密码,在连接服务器时输入,不要密码可以留空
// 游戏参数方面
sv_maxrate "128000"   // 服务器最大带宽使用量,默认值非常小,因此会造成choke值异常,此处建议改为128000
sv_minrate "80000"    // 服务器最小带宽使用量,与上面同理,此处建议改为80000
sv_accelerate "5.5"   // 人物移动速度,默认值为10,快到恶心,此处建议修改为5.5
sv_staminamax 120     // 人物耐力,这里影响跳跃/连跳感受

修改完以上参数之后,服务器便可以启动了,关于server.cfg中的其他参数说明,可以在server.cfg文件的注释中查看,也可以前往CSGODev查看。

开放UDP 27015 端口

前往阿里云控制面板>安全组设置,开放 UDP 27015端口

安装screen,启动CSGO Server

安装screen,以便CS:GO服务进程在后台运行

sudo yum install screen

返回csgo_server目录,使用screen创建新的会话

cd /home/steam/steamcmd/csgo_server/
screen -S csgo

注意:进入Screen后,可以使用快捷键:Ctrl + A + D暂离当前会话(不中断会话中进程)
下面插播一点Screen的用法:

命令 描述
screen -S [name] 创建名为name的会话窗口
screen -R [name] 恢复名为name的会话内容
screen -ls 列出当前的所有会话及其状态
exit 退出会话,当会话结束后退出
Ctrl + A + D 暂时退出当前会话(不结束进程)

为了方便,可以在~/steamcmd/csgo_server/目录下创建启动脚本start.sh

cd /home/steam/steamcmd/csgo_server
vim start.sh

打开后输入启动脚本和相关参数
./srcds_run \
-debug \
-game csgo \
-usercon \
-console \
-tickrate 128 \
-port 27015 \
-steamcmd_script /home/steam/steamcmd/update.txt \
-steam_dir /home/steam/ \
+host_workshop_map 465367694 -authkey **********************************

保存退出后,执行./start.sh即可启动服务器

若系统提示没有srcds_run这个文件,则是你当前的文件夹目录不正确

参数解释:
-debug 开启调试模式
-game csgo 指明服务器启动游戏:CSGO
-usercon 开启user control,即用户可在游戏中使用前面设置的密码进行参数的调整
-console 开启游戏控制台
-port 游戏服务程序运行端口
-steamcmd_script 运行steamcmd的脚本文件地址
-steam_dir Steam的安装地址
+host_workshop_map 465367694 切换地图为来自创意工坊的地图
-authkey Steam Steam网页API的Authkey

使用创意工坊地图

注册Steam网页API

前往注册 Steam 网页 API 密钥注册API,获得Authkey(注意不要泄露出去)

获取创意工坊地图ID

在Steam创意工坊中打开想要的地图页面,可以看到url中的地图ID,修改到上述服务器启动位置即可。

更换地图

如果不想通过重启服务器的方法来更换地图,可以在服务器控制台中输入以下命令:

changelevel XXXX    // XXXX可以是创意工坊地图ID,也可以是官方地图名字

更多

关于更多创意工坊地图的命令,可以参考官方文档

添加更多Mod和插件

常用插件为sourcemod和metamod,装了这俩之后才能装满十,kz,僵尸等等插件。

SourceMod插件

SourceMod插件需要先到SourceMod下载指定系统的插件文件,下载完毕后将解压的addons/cfg/两个文件夹复制到~/steamcmd/csgo_server/csgo/目录下即可。

然后到修改~/steamcmd/csgo_server/csgo/addons/sourcemod/configs/admins_simple.ini文件,在文件结尾添加,输入对应的steamID授予管理员权限。
steamID可以在此获取

"(此处输入steamID:STEAM_0:0:********)" "99:z"

完成后可以在游戏中按yu发言,输入!admin/admin开启管理员菜单,方便管理游戏内容。

MetaMod插件

同SourceMod一样,需要先到MetaMod下载指定系统的插件文件,下载完毕后将解压后的addons/cfg/两个文件夹复制到~/steamcmd/csgo_server/csgo/目录下即可。

全皮肤插件(有封服务器token风险)

注意:使用全皮肤插件有封服务器token风险,并且可能牵连绑定同手机号的steam账号,请慎重使用

全皮肤插件可以自定义武器、刀和手套的皮肤。
与之前插件同理,下载对应插件,复制addons/cfg/两个文件夹到~/steamcmd/csgo_server/csgo/目录下即可。

首先需要安装PTaH,然后下载WeaponsGloves
将上述文件解压后复制到~/steamcmd/csgo_server/csgo/目录下。

然后将~/steamcmd/csgo_server/csgo/addons/sourcemod/configs/core.cfg中最后的

"FollowCSGOServerGuidelines"    "yes"

修改为
"FollowCSGOServerGuidelines"    "no"

core.cfg

这样就可以在游戏中输入!ws!knife!gloves就可以选择自己想要的皮肤啦。

其他插件

其它有用的插件比如warmod等等可以在x社区找到,安装方法一般是放在cfg以及addon文件夹内,使用方法在插件原文里说明的也比较详细,这里给出网址不赘述了。
SourceMod
MetaMod
X社区

总结

经过上述的一系列操作,就可以畅快的搭建自己的CSGO Server与好友愉快玩耍啦!

后续启动服务器只需使用ssh登陆服务器。

su steam
cd /home/steam/steamcmd/csgo_server
screen -S csgo
./start.sh
# Ctrl + A + D

或恢复之前的会话窗口即可。
screen -R csgo

Reference

  1. FisherYung的博客
  2. CSGODev
  3. Steam 游戏服务器帐户管理
  4. 注册 Steam 网页 API 密钥
  5. 创意工坊命令官方文档
  6. SourceMod
  7. MetaMod
  8. X社区

本博客所有文章除特别声明外,均采用 CC BY-SA 3.0协议 。转载请注明出处!

OS Chapter 8 I/O Management Next