[教程]搭建CSGO社区服务器

资料参考https://developer.valvesoftware.com/wiki/Counter-Strike:_Global_Offensive_Dedicated_ServersV

环境基于windows系统,演示使用的是windows server 2016。服务器需要有公网IP.

下载前往https://developer.valvesoftware.com/wiki/SteamCMD下载windows版本的steamcmd。下载完成后解压并运行。滚动完毕后,输入这个命令登陆

login anonymou

然后输入

app_update 740 validate

steamcmd会开始下载CSGO,并且会在下载完成后校验。

开局域网服进入csgo服务端程序目录(一般为steamappscommonCounter-Strike Global Offensive Beta - Dedicated Server),在文件夹空白处按住键盘的shift键的同时鼠标点击右键,选择在此处打开命令窗口。如果是powershell则打开后在控制台输入cmd,回车。

使用以下命令开服经典休闲

srcds -game csgo -console -usercon +game_type 0 +game_mode 0 +mapgroup mg_active +map de_dust2

经典竞技

srcds -game csgo -console -usercon +game_type 0 +game_mode 1 +mapgroup mg_active +map de_dust2

同时还需要在防火墙放行27015端口。右键左下角windows按钮,打开控制面板。在右上角搜索防火墙,点击高级设置。新增入站规则。端口填写27015,tcp和udp协议分别创建。

至此,就可以在局域网使用csgo服务器了。

创建token前往https://steamcommunity.com/dev/managegameservers,使用steam账户登录,创建一个token,游戏App ID为730。

建立server.cfg文件在csgocfg目录下建立一个文本文档,将以下代码复制到文本文档内,并将生成的token填入末尾的sv_setsteamaccount "XXXXXXXXXX"中的XXXXX

rcon_password "" // OP 密码

// "" 表示没有

hostname "服务器"

// 服务器名称

sv_region 255 // 服务器所在区域注册参数

// 255=全球

// 0=美国东部

// 1=美国西部

// 2=南美洲

// 3=欧洲

// 4=亚洲

// 5=澳洲

// 6=中东

// 7=非洲

sv_rcon_minfailures 3

// 允许输入OP密码 错误次数下限 // 达到下限则封禁对方的IP

sv_rcon_banpenalty 5

// 封禁的时限 单位 分钟

// 0=永久

sv_maxupdaterate 100

// 服务器每秒更新最大频率

// 根据实际网络状况调节

// sv_maxrate / 300 = 要设的值 // 默认=30

// 局域网=101

sv_minupdaterate 40

// 服务器每秒更新最小频率

sv_unlag 1

// 玩家延时补偿

// 0=关闭

// 1=开启(默认)

sv_maxunlag 0.5 // 延时补偿最大值默认 0.5 // 0.5=500毫秒(默认)

sv_voiceenable 1 // 服务器是否允许麦克风语音通讯 // 0=禁止

// 1=允许(默认)

sv_unlagsamples 1 // 延时补偿数据包平均采样数量 // 默认=1

sv_unlagpush 0 // 服务器推进延时补偿

// 0=关闭(默认)

// 1=开启

mp_autokick 0 // 自动踢除不动的玩家

// 0=关闭(比赛默认)

// 1=开启

mp_autocrosshair 0 // 自动瞄准

// 0=关闭(默认)

// 1=开启

mp_autoteambalance 0

// 自动平衡双方人数

// 0=关闭(比赛默认)

// 1=开启

mp_buytime 0.25 // 每回合购买武器装备时间单位分钟 // 比赛默认=0.25

mp_consistency 1 // 防止某些模型被更改

// 0=关闭

// 1=开启(默认)

mp_c4timer 35 // C4爆炸倒计时单位秒

// 比赛默认=35

mp_decals 300 // 墙壁上的血花弹孔贴图细节数据传送(200-300)

mp_falldamage 1 // 高处落下伤害

// 0=关闭

// 1=开启(默认)

mp_fadetoblack 0 // 死后黑屏

// 0=关闭(默认)

// 1=开启

mp_flashlight 1 // 手电筒

// 0=禁止

// 1=允许(默认)

mp_forcechasecam 2 // 死后跟随

// 0=所有玩家

// 1=仅队友

// 2=仅队友,主视角(比赛默认)

mp_forcecamera 2 // 死后视角选择

// 0=全部视角

// 1=仅队友,全部视角

// 2=仅队友,主视角(比赛默认)

mp_footsteps 1 // 脚步声

// 0=关闭

// 1=开启(默认)

mp_fraglimit 0 //杀人数上限(1~n),超过上限就换地图 // 0=关闭(默认)

mp_freezetime 8 // 每回合开始冻结时间单位秒

mp_friendlyfire 1 // 友军伤害

// 0=关闭(默认)

// 1=开启

mp_friendly_grenade_damage 1

// 友军手雷伤害

// 0=关闭

// 1=开启

mp_hostagepenalty 0 // 惩罚人质杀手

// 0=不惩罚(默认)

// 1~N=人质被杀数量,超过则踢出该玩家

mp_limitteams 0 // 两队人数差异上限

// 超过此上限,新玩家只能当观察员 // 比赛默认=10

sv_logbans 1

// 服务器日志里记录Ban掉玩家的内容 // 0=不记录

// 1=记录

mp_logecho 0 // 将服务器日志反馈到控制台 // 0=关闭

// 1=开启

mp_logdetail 3 // 服务器日志里记录攻击信息 // 0=不记录任何信息

// 1=记录敌人攻击

// 2=记录队友攻击

// 3=记录所有攻击

mp_logfile 1 // 服务器记录日志为文件 // 0=不记录

// 1=记录

mp_logmessages 1 // 服务器日志里记录谈话内容 // 0=不记录

// 1=记录

mp_maxrounds 0 // 回合上限,达到此上限,自动重新载入新地图

// 0=无回合上限(默认)

mp_playerid 0 // 当准星指向敌人或队友时,显示他们的名字

// 0=显示所有人(比赛默认)

// 1=仅显示队友

// 2=不显示

mp_roundtime 2

// 每回合时限单位分钟

mp_timelimit 0

// 地图最大时限,达此时限,自动重新载入新地图

// 0=无时限

mp_tkpunish 0

// 惩罚队友杀手

// 0=关闭(默认)

// 1=开启

mp_startmoney 800 // 第一回合开始金钱(800~16000) // 加时赛=10000

mp_winlimit 0

// 一方最大胜利回合数,达到此数量,自动重新载入新地图

// 0=无限制(默认)

sv_aim 0

// 自动瞄准

// 0=关闭(默认)

// 1=开启

sv_airaccelerate 10 // 玩家在空中移动的速度

// 默认=10

sv_airmove 1 // 在空中移动&转向

// 0=禁止

// 1=允许(默认)

sv_allowdownload 1

// 客户端下载服务器资源 // 0=禁止

// 1=允许(默认)

sv_allowupload 1

// 客户端上传自己的喷图 // 0=禁止

// 1=允许(默认)

sv_alltalk 0 // 警匪通话

// 0=禁止(默认)

// 1=允许

sv_proxies 1 // HLTV代理

// 0=禁止

// 1=允许(默认)

sv_cheats 0 // 作弊模式

// 0=关闭(默认)

// 1=开启

sv_clienttrace 1.0 // 客户端模型的范围框的尺寸

// 默认 1.0

sv_clipmode 0

// 锁定客户端快速模式

// 0=关闭(默认)

// 1=开启

sv_friction 4

// 地面摩擦力默认 4

// 数值越低,摩擦越小

sv_gravity 800 // 重力默认 800

sv_maxrate 20000 // 服务器最大传输速率<0-25000> // (服务器上传带宽 x 125) /服务器设定的最大人数 = 要设的值

// 0=无限制

// 局域网=25000

sv_maxspeed 320 // 客户端最大移动速度

sv_minrate 0

// 服务器最小传输速率<0-25000> // 0=无限制

sv_send_logos 1 // 客户端相互之间传送喷图

// 0=禁止

// 1=允许(同时确保sv_allowdownload键值为1)

sv_sendvelocity 0

// 服务器混合物理运算,适用于较好配置的服务器 // 0=关闭

// 1=开启

sv_send_resources 1

// 自动向客户端传送地图关联的*.res文件里包括的资源文件 // 0=关闭

// 1=开启(同时确保sv_allowdownload为1)

sv_stepsize 18

// 玩家的步伐距离

// 默认 18

sv_stopspeed 75

// 玩家停止移动时的速度默认 75

sv_timeout 65

// 客户端连接服务器超时的时限,达到时限则断开连接

sv_voicecodec vaudio_speex // 语音通话解码

// vaudio_speex是Valve新加入的解码,优于voice_miles,占用带宽较少,为2.4kbps至15.2kbps

sv_voicequality 5

// 客户端语音通话质量(确保sv_voicecodec voice_speex)

// 1=非常差...........占用带宽 2.4 kbps // 2=差...............占用带宽 6.0 kbps // 3=中等.............占用带宽 8.0 kbps // 4=好...............占用带宽 11.2 kbps // 5=非常清晰.........占用带宽 15.2 kbps

allow_spectators 1

// 观察员模式

// 0=禁止

// 1=允许

decalfrequency 30

// 玩家喷图的时间间隔单位秒

edgefriction 2

// 玩家与玩家、墙壁、物体之间的摩擦

// 默认 2

host_framerate 0

// 与Demo录制有关

// 0

// n=0 为正常(默认)

// n>1 为快录

log on

// 开始记录日志

pausable 0

// 客户端暂停游戏

// 0=禁止

// 1=允许

mapcyclefile mapcycle.txt

// 地图循环列表所在的.txt文件

// *.txt = cstrike\*.txt文件

// Use this file to configure your DEDICATED server. // This config file is executed on server start.

// load ban files

exec listip.cfg

exec banned.cfg

sv_setsteamaccount "XXXXXXXXXX"

架设公网服务器在游戏主程序目录下打开命令窗口,输入这个命令启动游戏

srcds -game csgo -console -ip 0.0.0.0 -usercon +game_type 0 +game_mode 1 +port 27015 +map de_dust2 -tickrate 64 -maxplayers_override 32 +mapgroup mg_active

Steam ID应该为G开头。

至此,只要做好端口映射和云服务器安全组规则,就可以在公网环境下进入csgo社区服务器了。