CSGOLinux服务器架设0311.docx
《CSGOLinux服务器架设0311.docx》由会员分享,可在线阅读,更多相关《CSGOLinux服务器架设0311.docx(20页珍藏版)》请在冰豆网上搜索。
CSGOLinux服务器架设0311
前言
本文为Linux系统架设CS:
GO服务器和安装满10插件为例同时介绍了网络流量使用率 性能测试 安全等
本文实例使用腾讯云服务器,架设服务器方面不管是云服务器还是独立服务器都没什么区别具有通用性
TickRate这是CSGO较为常见和重要的设置在启动行加-tickrate128
通常比赛/混战服/死亡/KZ/BHOP设为128tick/102tick
娱乐服使用32或64tick
tick越高使用网络带宽 / CPU将会越高
由于CSGO是跑单线程的因此超过32人的服务器不建议使用128tick(SV/VAR容易彪红,而且会因引擎sv_maxrate128000所限choke也会增加)
由于本文是架设服务器教程这里不多说tick的其他概念只说明网络带宽和CPU大致关系请自行查阅其他资料
使用Linux系统主要好处
-全自动更新【当V社更新你不需要更新服务器...】
-非常低的VAR
-崩溃自重启
-1个脚本启动多个服
-系统相对轻巧节省的内存等资源
....
关于[sv,var]
Linux在人少时确实稳定,比windows低很多var0.001-0.020...推荐用Linux开24人左右服务器将非常合适.
但是当太多人活着时尤其32人混战@128tick满人var会变的不稳定经常红具体原因不详请看后续性能我得到的性能测试吧
windows服务器反而没有这个问题虽然var0.3但是确实稳定【同配置】
服务器类型选择
云服务器:
阿里云/腾讯云/各种云优势:
优点:
简单易用方便部署BGP带宽质量较高全国各地低ping(镜像)数据安全可靠性较高
【推荐开服类型:
满10/12-14人死斗/16混战】5Mbps@128tick
缺点:
带宽5Mbps后价格昂贵单核能力不强,人多了sv会飘红(这个你可以降低tick来解决但你仍然无法解决人多时的带宽问题)(2014-2015)
物理服务器 (既然你选择物理服务器就是打算开很多人类型的服务器了!
开服类型(按机器配置和带宽决定带宽使用率下面有说到)
(往往为了开32人大型混战之类而准备!
)
硬件:
首先硬件(最重要的CPU其次硬盘建议直接用SSD毕竟服务端不算大有钱可以SSDRAID):
推荐高频高效能的CPU以2015年,并且已常见的能租用到来说
什么是高频高效能?
以2014年来说
单线程跑分最高:
i7 4790K@4.0GHZ 睿频@4.4GHZ那么他就是最好的选择.
i74790(K)>E31230V3>i5
【因为CSGO更多的依赖单线程能力所以请选择高频高效能的服务器!
】
如果你缺乏经济能力推荐i5即可!
i53470经测试挂载4个服务器下混战32满人稳定运行.
至于E5-3GHZ以上主频其实也不错.
而是这种机器基本租不到人家机房拿来做VPS/云主机来卖而且价格贵,自己买托管得花好几万成本
另外单核并不如i7i5强CS:
GO服务器端只是跑单线程为主的东西可能会改变请你要知道【v社在2012-2015没任何改变这点】
【重要:
】
建议不要选择E/L5520/5560等X2X3x4这种16核多路之类的CPU服务器,看似多核分数超i5E3其实毫无作用,挂网站不错
当然你开个满10可以如果32人开128tick加30个bot那么sv/var会一直红足以证明CSGO更需求单核能力
腾讯云为E5-2630V2@2.60GHz
阿里云为E5-2430V2@2.20GHz //2015年数据这些以后也许有升级的可能但基本只可能是E5
【这里让大家看下当你使用低单核性能多核/多路的U会将会是什么情况】
测试于2015年3月10日
超过20人的服务器不建议使用云,建议独立服务器/托管OR租用
=====================================================================================
带宽需求:
========
:
CS:
GO的带宽将是CS1.5/1.6的几十倍这是个不好的消息.
举个例子5Mbps上传CS1.5/1.6开个40人服务器搓搓有余
那么在CS:
GO下只够开12-14人如果超过就会开始loss(128tickrate)sv_maxrate128000sv_minrate128000
(也许你可以通过降低tickrate)
这边可以提供点数据
12人满10【12全满】大约使用4-5M不到的带宽参数为(128tickrate)sv_maxrate128000sv_minrate128000
32人满人混战大约使用13-15M带宽参数为 (128tickrate)sv_maxrate128000sv_minrate128000
60人僵尸逃跑使用带宽为20-28Mbps参数为(32tickrate)sv_maxrate80000sv_minrate7500
上图是个60人满人ZE单个僵尸服务器所使用的流量(不含HTTP下载),图中所示几乎30M因此最好不要用云服务器开高流量服务器
//以上带宽仅仅为服务器游戏使用由于HTTP下载服务器是另外一台服务器所以不包含任何下载带宽如第三方地图/模型等
=====================================================================================
现在开始使用服务器
Linux的开服教程.
【Linux开服教程篇--------------从拿服务器到开服】
本教程只以简单易懂为主/适用性高/更不涉及vi编辑器等只为新手考虑
以满10服务器为例
=========================================
=====================================================
1:
准备软件请XX
1:
putty中文版
用登陆到Linux服务器进行操作
2:
WinSCP中文版
WinSCP是一个Windows环境下使用SSH的开源图形化SFTP客户端。
同时支持SCP协议。
它的主要功能就是在本地与远程计算机间安全的复制文件。
与使用FTP上传代码相比,通过WinSCP可以直接使用服务器账户密码访问服务器,无需在服务器端做任何配置。
简单的说你可以像ftp一样控制linux系统中的文件,而无需在linux服务器架设任何东西
======================================================
2:
拿服务器(腾讯云)你可以拿4M的节省一些钱,但128tick的话你应该将人数控制到12/13
以1核1GB带宽5M云硬盘20GB系统以Ubuntu12.04为例
为了您能够首次顺利开服推荐和本教程拿一样的
3:
操作并架设服务器
step1:
开通云服务器后从短消息查收IP用户密码【物理服务器由网维或卖家提供】
step2:
格式化硬盘-更多操作-格式化服务器数据盘【物理服务器由机房技术安装系统和分区】
=======================================================
物理服务器无视上述步骤
step3:
格式化完成后使用软件putty连接服务器比如IP是115.159.1.23
step4:
输入用户名(loginas:
)ubuntu为例比如用户是ubuntu密码是7QqzX45ZXkQtPq回车【密码可以复制输入密码不会显示请注意大小写】
step5:
为了方便行事我们将root用户激活并设置密码如果拿的centos用户名已经是root略过此步骤!
!
输入如下命令
激活root
sudo-i
输入您的初始密码:
7QqzX3345A1b35d
sudopasswdroot
给root账户设置个初始密码这里举例:
abcd123++
输入回车即可并还要确认一次!
至此您可以用用户root 密码abcb123++登陆服务器了
step6:
安装32位运行库
无法安装的话可以先尝试更新软件源:
apt-getupdate
系统:
ubuntu:
sudoapt-getinstallia32-libs
其余系统请自行XX系统名+32位运行库.
step7:
运行库安装好后安装screenapt-getinstallscreen
至此系统环境基础已完成
现在开始创建目录下载服务器
腾讯云数据盘默认挂载于目录/data使用winscp软件根目录可以看到
阿里云请自行参考资料库.
您可以手动挂载其他目录这里为了简便就不多说了【我们使用默认的挂载目录】
可在腾云/阿里云资料库找到
step8:
你只需复制中文注释下面的内容
建立文件夹在data目录下
mkdir/data/csgoserver
建立steamcmd文件夹
mkdir/data/steamcmd
切到steamcmd文件夹
cd/data/steamcmd
下载steamcmd
wget
解压这个steamcmd
sudotar-xvzfsteamcmd_linux.tar.gz
运行这个steamcmd
STEAM_RUNTIME=0STEAMEXE=steamcmd./steam.sh
等待提示出现 -type'quit'toexit--LoadingSteamAPI...OK.
step9:
打开软件winscp
连接服务器IP如115.159.1.23用户root 密码abcd123++【上面步骤设定的密码】
连接成功后你会看到目录像操作FTP一样转到根目录/
打开data再打开steamcmd目录右键新建-文件man10.txt
同样你以后可以这样子修改服务器的参数,像FTP一样的简单吧..
如果更方便的话可以用putty直接vi编辑器如果只为了架设服务器没必要特别去学习vi!
复制如下内
loginanonymous
force_install_dir/data/csgoserver
app_update740
exit
保存关闭请确保文件成功上传!
现在可以关闭winscp了.
在steamdcmd窗口输入runscriptman10.txt即可【手动更新服务器也是这样哦】
PS:
我不小心关闭了putty如何重新打开steamcmd呢?
?
只需分别复制如下2条命令cd/data/steamcmd
STEAM_RUNTIME=0STEAMEXE=steamcmd./steam.sh
下载服务器:
runscriptman10.txt
请等待服务器下载完成...
如下提示代表正在下载服务器
Updatestate(0x61)downloading,progress:
1.13(113695294/10061519790)
Updatestate(0x61)downloading,progress:
1.16(116841113/10061519790)
Updatestate(0x61)downloading,progress:
1.19(119903887/10061519790)
Updatestate(0x61)downloading,progress:
1.21(122001039/10061519790)
Updatestate(0x61)downloading,progress:
1.25(125554262/10061519790)
Updatestate(0x61)downloading,progress:
1.28(128699990/10061519790)
服务器下载完成后
使用winscp进入csgoserver/cfg目录建立server.cfg
//复制如下内容
rcon_password""//OP密码
sv_password""//服务器进入密码
mp_endmatch_votenextmap1 //结束后计分板投票地图?
mp_join_grace_time15//Theamountoftimeplayerscanjointeamsafteraroundhasstarted
mp_match_end_restart0//Defineswhetheramapshouldberestartedafteragamehasended
sv_cheats0//Thisshouldalwaysbeset,soyouknowit'snoton
sv_lan0//Thisshouldalwaysbeset,soyouknowit'snoton
//**Thebotcommandsbelowaremostlydefaultwiththeexceptionof
bot_difficulty1
bot_chatter"off"
bot_join_after_player1
bot_quota10
bot_quota_mode"fill"
cs_enable_player_physics_box1
host_info_show"2"
host_players_show"2"
mp_spectators_max10//allowsmorethan2spectators
sv_allowupload1
sv_allowdownload1
//sv_downloadurl"http:
//"
sv_maxrate"0"
sv_minrate"128000"
sm_cvarsv_mincmdrate128
sm_cvarsv_minupdaterate128
sm_cvarsv_maxcmdrate0
sm_cvarsv_maxupdaterate0
sm_cvarsv_unlag0.5
//**Thefollowingcommandswritekicksandbanstorespectivefilessotheycanbeexec'datstartup(autoexec.cfg)
writeid
writeip
//结束
至Linux的服务器基本假设已经完成【请看插件后续安装与服务器启动】
//插件安装和服务器启动篇于简易参数配置介绍
先安装sourcemod以及metamod
sourcemod:
下载系统对应版本
metamod:
下载系统对应版本
[Linux]
下载sm和mm这里不做过多文字解释请看图文
复制到Sourcemod的下载连接
tep1:
复制下载地址
ps:
从官网获得最新的sm/mm的版本下载地址
http:
//sourcemod.otstrel.ru/sourcemod-1.7.0-linux.tar.gz, ...1.10.4-linux.tar.gz
step2:
登陆服务器并下载他们
1-转到csgo服务器目录
cd/data/csgoserver/csgo
下载sm和mm
wget http:
//sourcemod.otstrel.ru/sourcemod-1.7.0-linux.tar.gz
wget ...1.10.4-linux.tar.gz
解压他们
tar-zxvfsourcemod-1.7.0-linux.tar.gz
tar-zxvfmmsource-1.10.4-linux.tar.gz
至此插件已经安装完成
2-安装插件
服务器中文名插件
geolanguage插件
这插件将会根据用户IP而自动选择语言如你在美国将插件语言自动变为英文,还可以输入!
language手动切换.
2个插件下载:
安装:
解压
csgoserver/csgo/addons/sourcemod进入这个目录下上传对应即可.
从csgoserver/csgo/addons/sourcemod/config/custom_hostname修改为你想要的服务器名字中文请用UTF-8
3-满十死亡/死斗插件也是一样
满10- / ...141968&d=1422405493
死亡/死斗
我们这里选择了满10插件并进行安装
PS:
满10插件带中文汉化翻译文件geolanguage会为你选择中文
但是多数插件均没有翻译你可能需要自行制作.
至于参数调整方面就在这里不细说了请自行搜索和询问.
4-Admin(OP的添加)
编辑csgoserver/csgo/addons/sourcemod/configs/admins_simple.ini
"STEAM_ID""权限等级"
SteamID可以进入任意一个服务器后再控制台输入status查到,一个SteamID对应一个STEAM账号
"a"//预留通道
"b"//Genericadmin,requiredforadmins这是原文,我不会翻译
"c"//踢人
"d"//BAN人
"e"//解BAN
"f"//处死玩家
"g"//换图
"h"//修改服务器参数
"i"//修改服务器设置
"j"//置顶消息
"k"//发动投票
"l"//给服务器上密码
"m"//远程发送命令至控制台
"n"//修改sv_cheats
"z"//顶级权限
"o"//warmod菜单的权限
例子:
"STEAM_1:
0:
12345""z"//拥有顶级权限
"STEAM_1:
0:
64444""acdg"//可以换图,T人,ban人,预留通道
"STEAM_0:
1:
1234123" "z" //拥有顶级权限
"STEAM_0:
1:
4321123" "z" //拥有顶级权限
=====================================================
最终:
制作服务器启动脚本+自动更新
用winscp登陆服务器
如图新建文件
比如我取名为runserver.sh
编辑脚本
#########填写以下内容独立服务器请修改为-ip外网IP云服务器一般不需要修改################
#########gamemode1代表竞技模式0代表休闲模式################
######竞技模式脚本配置:
gamemode_competitive.cfg gamemode_casual.cfg 推荐复制1个如gamemode_casual_server.cfg然后只需修改_server的即可.
######-autoupdate-steam_dir /data/steamcmd/-steamcmd_script/data/steamcmd/man10.txt//代表启用自动服务器更新当v社更新CSGO你不需要做任何事请注意cmd和txt脚本路径
#从下一行开始复制
!
/bin/sh
echo"StartingCs:
GOServer[CSGO-WARMOD]"
cd/data/csgoserver
sleep1s
screen-A-m-d-Scsgoman10./srcds_run-debug-gamecsgo-console-stringtables-usercon-nohltv-nowatchdog+host_timer_spin_ms0 +game_type0+game_mode1+mapgroupmg_active-port27015-pingbost2-pidfilecsgosrv1.pid-maxplayers_override12+mapde_dust2-tickrate128-ip0.0.0.0-port27015-net_port_try1-autoupdate-steam_dir /data/steamcmd/-steamcmd_script/data/steamcmd/man10.txt
cd..
#如果你弄了多个服务器可以同时复制写多个
echo"*****************************"
echo"*****************************"
echo"ServersstartedInbackground"
echo"*****************************"
echo"*****************************"
screen-x
Step4:
运行服务器
1:
设置目录权限
切到服务器目录
cd/data
设置权限
chmod-R777*
脚本运行服务器
./runserver.sh
ok进去服务器吧!
经过在线测试满10服20局下来基本稳定在0choke0