最近有一些空闲的服务器要搭建 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服务器
下次写
死斗服务器
下次写