阿里云Centos7部署私人CSGO服务器
大四毕业生,论文和答辩分别以1.8%的重复率和只答不辨的态度双双过关。现在就是在家等着学校发毕业证了。顺带学学驾驶。。。可是我这么一个喜欢折腾的人,怎么能够让自己接受这么无聊的咸鱼时光呢?因为这个寒假和学弟一起学习技术的同时接触到了CSGO的这款游戏,说起CS那可是老FPS游戏了!在官方匹配和5E我都有涉足,但是不满于此!我要搭建一个自己的服!务!器!这样开启自己的创意工坊地图小伙伴们就不会变成高Ping战士啦!这边参考了这位大佬的经验再加上我自己遇到的一些状况。
话不多说下面成列一下需要用到的资源
1.一台有公网IP的云服务器(或者你自己有公网IP,辣蒜你牛批)
2.Xshell
3.一个善于钻研的脑子
下面正式开始
一、创建用户安装Steamcmd和CSGO Server
1、在服务器上创建一个用户名称为steam(因为root的权限过大可能会出现什么意外情况)并创建相关目录
useradd -m steam // 添加名为steam的用户
su steam // 切换到steam用户
cd /home/steam/ // 切换到steam用户的根目录下
2、创建名为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 //删除下载的安装包,也可以保留
3、安装运行steamcmd所需的环境,运行steamcmd并安装CS:GO服务端
sudo yum install glibc.i686 // 安装steamcmd运行所需的库
sudo yum install libstdc++.i686 // 有的主机已经安装其他同样效果的依赖,不用多次安装
./steamcmd.sh // 启动
出现Steam> ,说明steamcmd就安装完成
接下来就是在Steamcmd里面安装CSGO Server
以匿名用户身份登录Steamcmd
login anonymous
创建CS:GO服务器文件夹,该文件夹在steamcmd文件夹目录下
force_install_dir ./csgo_server
安装csgo服务端(15分钟左右)
app_update 740 validate
在看到如下图片中最后的行的"Success!"后,表明CS:GO服务端安装成功
安装完成后,退出Steamcmd
quit
二、编写CS:GO更新脚本(最好做一下)
1、编写steamcmd的runscript脚本
在steamcmd目录下(退出steamcmd.sh后的当前目录),使用vim创建新的update.txt文件
vi update.txt
进入编辑模式,写入以下语句,然后保存退出
login anonymous
force_install_dir ./csgo_server
app_update 740
quit
2、编写steamcmd运行脚本
在steamcmd目录下,使用vim创建新的csgo_server_update.sh文件
vi csgo_server_update.sh
进入编辑模式,写入以下语句后保存退出
#!/bin/bash
./steamcmd.sh +runscript update.txt
3、测试脚本
在steamcmd目录下运行脚本csgo_server_update.sh
./csgo_server_update.sh
若运行结果如下所示,则更新脚本编写完成,以后可以直接使用该命令一键更新CS:GO服务器
若出现了权限不足的情况,提升权限再次运行即可
chmod 775 csgo_server_update.sh
如果实在不行可以直接使用Root来启动!
三、配置并运行CS:GO服务端
1、前往Steam游戏服务器帐户管理注册steam服务器登录令牌。没有该令牌服务器只能在本地网络中进行连接,在社区服务器浏览器中也不会显示。(网站可能无法连接,推荐使用Steamcommunity 302工具修复连接问题)
在App ID中填入CS:GO的ID:730。备忘录中填入:CSGO服务端令牌(选填)

点击创建之后便获得了登录令牌,不要将该令牌泄露出去,该令牌用于服务器在CS:GO社区服务器中验证
2、下载服务器配置文件server.cfg
切换目录到CS:GO的cfg文件夹下,下载server.cfg文件,编辑server.cfg文件
cd csgo_server/csgo/cfg/
wget http://www.csgodev.com/downloads/server.cfg
vi server.cfg
进入编辑模式,在server.cfg文件中添加登录令牌,修改部分参数(这部分一定要改,不然很影响游戏体验!)
// 新增以下参数:
// steam account,修改为自己刚刚申请的登陆令牌
sv_setsteamaccount "4FXXXXXXXXXXXXXXXXXXXXXXXXX"
// 找到并修改以下参数:
// 服务器名称,安全方面
hostname "Fisher's 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
注意啊!steam account一定要添加,hostname可以改成自己喜欢的,rcon_password也要设,sv_password也要设
修改完以上参数之后,服务器便可以启动了,关于server.cfg中的其他参数说明,可以在server.cfg文件的注释中查看,或者自己百度
3、对了,别忘了把你服务器的27015的udp协议端口开下来
各个云服务器有各自的手段,这个自行解决一下
4、为了能让你常驻CSGO Server ,那就要使用Screen这个工具了
安装
yum install screen -y
返回csgo_server目录,使用screen创建新的会话
cd /home/steam/steamcmd/csgo_server/
screen -S csgo
注意:当screen会话未结束时,在下次ssh登陆时可以使用命令"screen -r csgo"来恢复会话
此时屏幕会清屏,说明你成功进入到"csgo"这个会话当中,这时开始启动服务器
./srcds_run -debug -game csgo -console -port 27015 -steamcmd_script /home/steam/steamcmd/update.txt -steam_dir /home/steam/ +map de_dust2
参数解释:
-debug 开启调试模式
-game 指明游戏,此处是csgo
-console 打开游戏控制台
-port 游戏服务器端口,此处是27015
-steamcmd_script 运行steamcmd的脚本文件地址
-steam_dir Steam的安装地址
+map 服务器加载的地图(此处只能用官方地图,创意工坊地图请看后面)
当看到如下图所示的界面之后,说明服务器成功地运行,可以在游戏中连接了

记住红圈里的IP也就是你的云服务器公网地址
四、在游戏中连接服务器
一定要在—worldwide的世界服才行
在游戏中打开浏览社区服服务器,右键收藏夹添加IP
连接服务器,双击收藏夹中刚刚添加的服务器,输入密码即可,注意输入法
然后你就可以尽情享受你的私人服务器了!
五、添加社区创意工坊地图
1、注册Steam网页API
前往Steam网页API注册页面注册API,获得Authkey(注意不要泄露出去)
2、获取创意工坊地图ID
在浏览器打开你中意的创意工坊地图,看地址栏后id=XXXXXX,记得复制他

3、 启动服务器
在csgo_server文件夹中输入命令
./srcds_run -debug -game csgo -console -port 27015 -steamcmd_script /home/steam/steamcmd/update.txt -steam_dir /home/steam/ +host_workshop_map 465367694 -authkey 3XXXXXXXXXXXXXXXXXXXXXXX
相同的参数在之前有解释,这里只解释新的参数:
+host_workshop_map 465367694 切换地图为来自创意工坊的地图,后面的数字填入刚刚获取的地图ID
-authkey 3XXXXXXXXXX Steam网页API的Authkey,填入刚刚获取的API Authkey
启动好之后和官方地图的提示信息是一样的哦
这边我总结一下自己遇到的情况,我在启动过官方地图后再启动创意工坊地图就直接连接失败。试了很多次。所以如果出现问题后,直接将你的服务器reboot或者init 6一下。然后重新启动你的CSGO Server直接开启创意工坊地图,等待片刻,然后再连接即可!
六、总结
使用Screen使得CSGO Server常驻之后可以断开SSH连接,下次连接SSH时
screen -r csgo
可以继续操作服务端了。
附:(一些常用的CSGO Server指令)
切换地图
changelevel de_train(地图名或者创意工坊地图的ID)
所有官方地图
PENDING: (fs) training1.bsp
PENDING: (fs) gd_rialto.bsp
PENDING: (fs) gd_cbble.bsp
PENDING: (fs) dz_sirocco.bsp
PENDING: (fs) dz_junglety.bsp
PENDING: (fs) dz_blacksite.bsp
PENDING: (fs) de_vertigo.bsp
PENDING: (fs) de_train.bsp
PENDING: (fs) de_sugarcane.bsp
PENDING: (fs) de_stmarc.bsp
PENDING: (fs) de_shortnuke.bsp
PENDING: (fs) de_shortdust.bsp
PENDING: (fs) de_safehouse.bsp
PENDING: (fs) de_overpass.bsp
PENDING: (fs) de_nuke.bsp
PENDING: (fs) de_mirage.bsp
PENDING: (fs) de_lake.bsp
PENDING: (fs) de_inferno.bsp
PENDING: (fs) de_dust2.bsp
PENDING: (fs) de_chlorine.bsp
PENDING: (fs) de_cbble.bsp
PENDING: (fs) de_canals.bsp
PENDING: (fs) de_cache.bsp
PENDING: (fs) de_bank.bsp
PENDING: (fs) de_anubis.bsp
PENDING: (fs) cs_office.bsp
PENDING: (fs) cs_militia.bsp
PENDING: (fs) cs_italy.bsp
PENDING: (fs) cs_assault.bsp
PENDING: (fs) cs_agency.bsp
PENDING: (fs) coop_kasbah.bsp
PENDING: (fs) ar_shoots.bsp
PENDING: (fs) ar_monastery.bsp
PENDING: (fs) ar_lunacy.bsp
PENDING: (fs) ar_dizzy.bsp
PENDING: (fs) ar_baggage.bsp
阿里云Centos7部署私人CSGO服务器的更多相关文章
- 【Docker】 使用Docker 在阿里云 Centos7 部署 MySQL 和 Redis (二)
系列目录: [Docker] CentOS7 安装 Docker 及其使用方法 ( 一 ) [Docker] 使用Docker 在阿里云 Centos7 部署 MySQL 和 Redis (二) [D ...
- 阿里云CentOS7部署ASP.NET Core
本文主要介绍了阿里云CentOS7下如何成功的发布ASP.Core应用并使用nginx进行代理, 并对所踩的坑加以记录; 环境.工具.准备工作 服务器:阿里云64位CentOS 7.4.1708版本; ...
- 阿里云CentOS7部署MySql8.0
本文主要介绍了阿里云CentOS7如何安装MySql8.0,并对所踩的坑加以记录; 环境.工具.准备工作 服务器:阿里云CentOS 7.4.1708版本; 客户端:Windows 10; SFTP客 ...
- 阿里云 CentOS7中搭建FTP服务器
1配置 vsftpd-3.0.2-27.el7.x86_64 阿里云 centos 7.0 2 ftp工作模式 2.1 ftp通道 ftp工作会启动两个通道: 控制通道,数据通道 在ftp协议中,控制 ...
- 阿里云 Centos7 部署 Django 项目
前期准备 阿里云服务器 mysql数据库 已经本地运行成功的项目 阿里云服务器的环境配置 Git #代码管理 Gitlab #代码托管,要求服务器内存不低于2G,我选择放弃 Mysql #连接数据库 ...
- 阿里云CentOS7.3服务器通过Docker安装Nginx
前言 小编环境: 阿里云CentOS7.3服务器 docker 下面分享一次小编在自己的阿里云CentOS7.3服务器上使用Docker来安装Nginx的一次全过程 温馨小提示: 如果只是希望单纯使用 ...
- 在阿里云Centos7.6中部署nginx1.16+uwsgi2.0.18+Django2.0.4
上次在网上找了一个在阿里云Centos7.6中部署nginx1.16+uwsgi2.0.18+Django2.0.4的文档,可能是这个文档不是最新版的,安装的时候遇到了很多问题, 最后跟一个大神要了一 ...
- 新手之首次部署阿里云centos7+mysql+asp.net mvc core应用之需要注意的地方
先来几个字,坑坑坑. 自己业余爱好者,签名一直捣鼓net+mssql,前阵买了阿里云esc,自己尝试做个博客,大体架子都打好了,本地安装了mysql,测试了也没问题. 部署到阿里云centos7,结果 ...
- 阿里云 centos 部署javaweb 应用
今天在阿里云上部署了个javaweb应用,在此记录下步骤,以供下次使用. 服务器版本: 1.root登陆服务器 2.服务器安装FTP服务,或者直接使用winscp上传文件(简单),本文介绍安装FTP服 ...
随机推荐
- Docker 配置 Seata 集成 Nacos
1.拉取镜像 docker pull seataio/seata-server:1.4.2 docker run --name seata -p 8091:8091 -d seataio/seata- ...
- Nginx通过bat文件快速启动停止
新建文本文件NginxRun.bat.(名字无所谓,后缀名得是bat) 将以下代码复制到bat文件中即可. @echo off ::进入D盘 d: ::进入nginx目录 这里是自己的nginx目录 ...
- NC25136 [USACO 2006 Ope B]Cows on a Leash
NC25136 [USACO 2006 Ope B]Cows on a Leash 题目 题目描述 给定如图所示的若干个长条.你可以在某一行的任意两个数之间作一条竖线,从而把这个长条切开,并可能切开其 ...
- 匿名对象作为方法的参数和返回值与Random概念和基本使用
应用场景 1. 创建匿名对象直接调用方法,没有变量名. new Scanner(System.in).nextInt(); 2. 一旦调用两次方法,就是创建了两个对象,造成浪费,请看如下代码. new ...
- 《深入理解java虚拟机》读书笔记-第二章Java内存区域和内存溢出异常
java1.7和java8的jvm存在差异,本文先按照<深入理解java虚拟机>的讲解内容总结,并将java8的改变作为附录放在文末 一丶运行时数据区域 图:java虚拟机运行时数据区 ...
- 组网神器Zerotier One使用
一些问题 可以用来干嘛? 异地组网,管理方便,A.B网段内的IP可以直接相互访问 到底好不好用? 如果不搭建MOON节点,直接P2P的话,速度确实让人捉急,我感觉这个原因劝退了绝大多数人 和FRP的区 ...
- Android刷第三方Recovery &获取root权限
一.基础环境 Make sure your computer has working adb and fastboot. Setup instructions can be found here. E ...
- 零基础学Java(6)控制流程
控制流程 与任何程序设计语言一样,Java使用条件语句和循环结构确定控制流程. 块作用域 我们首先要了解块(block)的概念. 块是指由若干条Java语句组成的语句,并用一对大括号括起来.块确定了变 ...
- .NET性能优化-使用SourceGenerator-Logger记录日志
前言 在现在许许多多的应用系统中,日志非常关键,它即是排查问题的强力工具,也是程序员居家旅行工作甩锅必备良品. 在团队中编码中,我们都要求对于那些会变更数据的接口.调用第三方的接口记录请求和响应参数, ...
- ora-26002:Informatica的Powercenter跑ETL时,出现ora-26002错误解决办法
在使用Informatica进行ETL导数的时候,出现下面的错误: WRT_8229 Database errors occurred: ORA-26002: Table REPORT.TB_JK_0 ...