最近有一些空闲的服务器要搭建 CSGO 服务器,综合一位前辈的文章,进行了一些总结和优化

由于我不会用 Windows 或者其他 Linux 系系统,因此这只写如何在 CentOS 7 64bit 上搭建 CSGO 服务器。

基础准备

CentOS 7 64bit

30G 硬盘

5Mbps+ 带宽

一个服务器令牌

下载 SteamCMD

SteamCMD 是 Valve 的一个 steam cmd 客户端,只具备一些基础功能,用来下载 CSGO 服务器。

首先我们要创建一个用户 steam,避免root的直接执行。

useradd -m steam
password steam

切换到 steam

su steam
cd ~
mkdir steamcmd
cd steamcmd

下载steamcmd 并解压

wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz
tar zxvf steamcmd_linux.tar.gz

创建一个update.txt自动下载脚本

vim update.txt

按I键开启编辑模式 复制以下内容进去

@ShutdownOnFailedCommand 1 
@NoPromptForPassword 1
login anonymous
force_install_dir ../csgoserver/
app_update 740
quit

保存

下载csgo服务端

./steamcmd.sh +runscript update.txt

服务器配置

下载好了之后还需要进行插件配置(sourcemod+metamod:source)以及服务器参数设置

https://www.sourcemod.net/downloads.php

http://www.metamodsource.net/downloads.php?branch=stable

把解压得到的addons跟cfg文件夹放到/home/steam/csgoserver/csgo/下

然后设置sourcemod管理员 addons/sourcemod/configs/admins_simple.ini

格式如

"STEAMID" "权限" "管理员密码(可选)"
"STEAM_1:1:59886493" "99:z"

随便进一个服务器 然后控制台打status

看到名字后面的STEAM_X:X:XXXXXX就是你的STEAMID

权限等级:

"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菜单等)

然后到csgoserver/csgo/cfg文件夹新建一个cfg文件比如autoexec.cfg 里面写入以下内容

hostname "你的服务器名称"
rcon_password "远程控制服务器的密码(与上面sourcemod里面的rcon不同)"
host_info_show 2
host_players_show 2
fps_max 1000
sv_region 4
sv_contact 你的邮箱 V社会做记录
exec banned_user.cfg
exec banned_ip.cfg
writeid
writeip

最后,如果你的服务器是需要改参数的,请新建一个文件叫 server.cfg,这样每次在加载模式后会修改参数。

脚本启动

使用脚本启动,在CSGOSever文件夹下,

vim run.sh

休闲模式

-game csgo -console -usercon +game_type 0 +game_mode 0

竞技模式

-game csgo -console -usercon +game_type 0 +game_mode 1

军备竞赛

-game csgo -console -usercon +game_type 1 +game_mode 0

爆破模式

-game csgo -console -usercon +game_type 1 +game_mode 1

死亡竞赛

-game csgo -console -usercon +game_type 1 +game_mode 2

写入以下内容

./srcds_run -console -game csgo -usercon -noipx -nohltv -steam_dir ../steamcmd -steamcmd_script ../steamcmd/update.txt -autoupdate +game_type 0 +game_mode 0 +map de_dust2

自动更新服务器

使用 crontab 设置自动更新

crontab -e
0 0 * * * /home/steam/steamcmd/steamcmd.sh +runscript update.txt

其他服务器启动项

-maxplayers_override 最大玩家数

-noipx 关闭IPX协议的支持

-nohltv 关闭gotv

-nobots 关闭bot功能! csgo如果想开某些不需要bot的服务器要加这个参数不然有人换队bot还是会占位!

-tickrate 128 设置服务器tick为128 满十必备

-authkey 如果要使用steam web API要用到这个启动项 apikey在这里申请:http://steamcommunity.com/dev/apikey

满十服务器

Warmod 插件是满十服务器最常用的一种解决方案。

官方地址 https://forums.alliedmods.net/showthread.php?t=225474

下载地址 https://warmod.bitbucket.io/plugins/warmod.smx

安装方法

将插件放在csgo/addons/sourcemod/plugins 下,然后配置将会自动启动。

run.sh 需要修改成这样

./srcds_run -console -game csgo -usercon -noipx -nohltv -steam_dir ../steamcmd -steamcmd_script ../steamcmd/update.txt -autoupdate +game_type 0 +game_mode 1 +map de_dust2

默认启动 Dust 2 地图。

KZ服务器

下次写

死斗服务器

下次写