欢迎光临散文网 会员登陆 & 注册

CentOS CSGO服务器教程(1)基础准备

2021-12-02 16:39 作者:带带小恶人  | 我要投稿

前篇

继前篇的预告之后 开始进行CSGO服务器搭建的第一步:基础准备

考虑到公网IP、端口,一般CSGO服务器都部署在云服务器

本文涉及以下几个概念:CentOS、SteamCMD、LinuxGSM、GSLT、SteamAPI

1.服务器系统的选择

1.1 Windows Server

    大家一开始都会考虑用Windows Server搭建服务器,但与大家的感性认知不同,Windows由于“过于”人性化,导致其过于臃肿。利用SteamCmd(steam服务端命令行)虽然可以比较间接地搭建CSGO服务器,但搭建后的服务器系统OS开销过大,对服务器使用资源压缩过大,导致实际运行时,服务器的sv、var值较高(我们俗称为跳var、跳sv),对实际游戏会产生较大干扰。另外,由于Windows的计划指令效率过低,也不适宜在Windows上部署自动更新脚本。

    Windows做服务器端的优势是后期插件编译时可以直接在服务器端完成编译、导入的步骤。

1.2 Linux

    与Windows相对的Linux便没有以上的问题,采用Linux操作系统除了操作不太便利,服务器性能、维护与Windows比都有很好的改善。

     以下为部分Linux的发行版:

常用的Linux分发版本

这里只介绍主流的Linux发行版

◆Debian

    Debian的整个系统基础核心非常小,不仅稳定,而且占用硬盘空间小,占用内存小。Debian是适合于服务器的操作系统。但Debian的帮助文档相与技术资料与CentOS比较少。

◆Ubuntu

   Ubuntu有着漂亮的用户界面,完善的包管理系统,强大的软件源支持,丰富的技术社区,Ubuntu还对大多数硬件有着良好的兼容性。但Ubuntu的最佳应用领域是桌面操作系统而非服务器操作系统。

1.3 CentOS

    笔者采用了CentOS作为CSGO服务器的载体。CentOS是从RHEL源代码编译的社区重新发布版,与商业版RedHat具有相同的渊源。CentOS简约,命令行下的人性化做得比较好,稳定,有着强大的英文文档与开发社区的支持。

CentOS

    考虑到后面采用了LinuxGSM工具部署服务器,而该工具不支持CentOS6,故笔者采用CentOS7作为服务器的镜像。

2.自动化部署工具LinuxGSM

     一般情况下,我们需要下载SteamCMD,利用其下载CSGO服务器并自己编写脚本运行、维护服务器,步骤较为繁琐。在Valve开设的CSGO服务器介绍页中提及了LinuxGSM。

     “LinuxGSM is command-line tool for quick, simple deployment and management of Linux dedicated game servers.”

https://developer.valvesoftware.com/wiki/Counter-Strike:_Global_Offensive_Dedicated_Servers

    LinuxGSM是一个可以迅速、简单维护和管理Linux下专用服务器的命令行工具。利用自动化工具部署可以大大降低我们搭建、维护服务器所需的时间与精力。

https://linuxgsm.com/

LinuxGSM

3.运维服务器过程中涉及的Linux语法

    这部分介绍一些运维服务器以及下载、编译插件所需的Linux命令,需要时查询即可。

命令参考自Linux教程

https://www.cnblogs.com/xuxiuxiu/p/6270494.html

3.0 预备知识

     Linux中执行命令时使用的是shell语言,可以理解为与Windows中的cmd(命令提示符)部分类似的工具。Linux中root用户(管理员)的shell前缀为#,普通用户的shell前缀为$。在shell中,如果要输入较长的文件名或命令,可以利用tab补全,减少输入量,例如输入rm csgoserver.cfg时,可以只输入rm cs 然后按tab补全即可(补全前若有多个文件名部分匹配,可以利用↑、↓键进行选择)

3.1 cp命令

该命令的功能是将给出的文件或目录拷贝到另一文件或目录中,功能十分强大。

语法: cp [选项] 源文件或目录 目标文件或目录

举例: 

3.2 rm命令

用户可以用rm命令删除不需要的文件或者目录。

语法:rm [选项] 文件

举例: 

如果没有使用- r选项,则rm不会删除目录。

3.3 cd 命令

功能:改变工作目录。

语法:cd [directory]

举例:

该命令返回上一层目录

3.4 ls 命令

ls是英文单词list的简写,其功能为列出目录的内容。该命令类似于DOS下的dir命令。

语法:ls [选项] [目录或是文件]

一般直接敲ls直接使用即可

3.5 su命令

这个命令非常重要。它可以让一个普通用户拥有超级用户或其他用户的权限,也可以让超级用户以普通用户的身份做一些事情。普通用户使用这个命令时必须有超级用户或其他用户的口令。

该命令的一般形式为: su [选项] [使用者帐号]

举例:

注意: su root 只是切换了root身份,但shell环境仍然是普通用户的shell

         su - root 连用户和Shell环境一起切换成root身份了

3.6 ps命令

显示系统中执行的程序。

语法:ps [选项](一般直接用)

3.7 top命令

ps 命令可以一次性给出当前系统中进程状态,但使用此方式得到的信息缺乏时效性,并且,如果管理员需要实时监控进程运行情况,就必须不停地执行 ps 命令,这显然是缺乏效率的。

为此,Linux 提供了 top 命令。top 命令可以动态地持续监听进程地运行状态,与此同时,该命令还提供了一个交互界面,用户可以根据需要,人性化地定制自己的输出,进而更清楚地了进程的运行状态。

语法:top [选项](一般直接用)

3.8 yum命令

yum( Yellow dog Updater, Modified)是一个在 Fedora 和 RedHat 以及 SUSE 中的 Shell 前端软件包管理器,CentOS中的yum源自于RedHat。yum基于 RPM 包管理,能够从指定的服务器自动下载 RPM 包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。yum 提供了查找、安装、删除某一个、一组甚至全部软件包的命令。

两个常用的yum命令,可以看出yum类似于apt-get、pip、conda:

yum install <package_name> 

例如: 

yum update <package_name>

3.9 wget命令

wget是Linux中的一个下载文件的工具,wget是在Linux下开发的开放源代码的软件

常用的命令格式:

wget -O <web_url>

3.10 tar命令

tar(tape archive )命令用于备份文件。

tar 是用来建立,还原备份文件的工具程序,它可以压缩、解压缩备份文件、压缩包内的文件。

常用tar参数:

x:解包,解压缩

f:指定文件压缩文件

z:压缩成gz格式

v:显示详细信息

举例:

4.其他所需准备的工具&材料

4.0 说明

    除了LinuxGSM外,在连接云服务器时笔者推荐使用PuTTYWinSCP等工具可视化操作服务器文件,使用VSCode进行cfg插件的修改。除了基本的工具之外,由于LinuxGSM脚本仓储于Github,我们还需要修改服务器本机的host以快速访问,当然,架设服务器所需的令牌API密钥也是必不可少的。

4.1 PuTTY

    PuTTY是一款开源的连接软件,可以用来远程连接服务器,支持SSH、Telnet、Serial等协议的连接。本教程主要使用SSH连接。

使用PuTTY远程管理Linux的主要优点如下:

◆ 完全免费;

◆ 在Windows操作下运行的都非常好;

◆ 全面支持SSH1和SSH2;

◆ 体积很小,不到1M;

◆ 操作简单,所有的操作都在一个控制面板中实现。

下载地址如下,下载时64位系统请选择64bit版本。

https://www.chiark.greenend.org.uk/~sgtatham/putty/

选择64位安装包下载

打开后,在Host Name栏输入IP,Port栏输入端口(默认22),即可远程连接服务器。

PuTTY主界面
login
success login

4.2 Vim

4.2.1 Vim界面介绍

在shell下使用Vim便可打开包括.txt .ini .cfg等多种文档

举例:

PuTTY下vim打开cfg的界面

4.2.2 Vim的使用

     Vim 共分为三种模式,分别是命令模式(Command mode),输入模式(Insert mode)和底线命令模式(Last line mode)。

用户启用vim后,便进入了命令模式。此状态下敲击键盘动作会被Vim识别为命令,而非输入字符。比如我们此时按下i,并不会输入一个字符,i被当作了一个命令。

以下是常用的几个命令:

i  切换到输入模式,以输入字符。

x 删除当前光标所在处的字符。

:  切换到底线命令模式,以在最底一行输入命令。

Esc+:wq  保存离开

Esc+:q  不保存离开

Insert  更改输入模式

4.3 WinSCP

    WinSCP 是一个 Windows 环境下使用的 SSH 的开源图形化 SFTP 客户端,同时支持 SCP 协议。它的主要功能是在本地与远程计算机间安全地复制文件,并且可以直接编辑文件,只要远程设备能SSH连接即可。

本教程使用WinSCP基于以下三个目的

◆复制、粘贴、下载、删除等操作便捷

◆可视化结构更加明显

◆可在线编辑并回传

WinSCP的下载地址如下:

https://winscp.net

WinSCP界面
WinSCP打开cfg的界面

4.4 VSCode

    对于接触过C/C++的小伙伴,Visual Studio(VS)一定都不陌生。原本这部分代码修改的工作我是选用Notepad++的,但鉴于Notepad++的开发者寡廉鲜耻、嘴脸丑恶,故强推大家使用微软开发另一个轻量编辑器Visual Studio Code(VSCode),如果你已有VS便可不必在下载VSCode,直接用VS默认打开cfg等文档即可。VSCode的下载地址如下:

https://code.visualstudio.com/

VSCode打开cfg的界面

    由以上三部分的介绍可以看出,WinSCP可以远程打开并便捷编辑文档,VSCode在此处只能本地打开并编辑文档(可以远程配置但没必要),VSCode与WinSCP相比有语法高亮,比较使用,PuTTY打开后的Vim编辑过程比较繁琐,不建议在需要本地状态调整(如net refresh)等条件下使用。

4.5 Hosts(Github)

由于LinuxGSM的脚本仓储于Github,运行LinuxGSM时需从Github自动下载.sh。不修改hosts的情况下,可能会出现如下错误:

所以要通过修改本机hosts,直接固定ip,使文件得以下载

方法一:Vim修改

进入hosts

进入编辑模式,将hosts列表粘贴进入。hosts列表来源及具体内容如下:

https://github.com/ineo6/hosts

修改完毕并保存后,重启服务

或从外部重启云服务器即可

方法二:WinSCP

进入WinSCP,以root身份进入/etc/hosts

打开,将上方的hosts列表粘贴进入,保存

从外部重启云服务器即可

4.6 GSLT(Game Server Login Token)

     GSLT,即服务器令牌,没有令牌就无法使服务器出现在公网上。令牌可通过如下网站获取:

https://steamcommunity.com/dev/managegameservers

登录后,选择游戏为730(CSGO),生成令牌,并自己保存好

4.7 SteamAPI密钥(WebAPI)

    考虑到部分服务器会使用创意工坊地图,如果玩家原本没有此服务器中的地图,会调用API接口下载,故提前配置好API密钥会避免后期的意外发生。

获取Steam网页API秘钥的链接如下

https://steamcommunity.com/dev/apikey


    第一部分基础准备基本结束,本周或下周高概率更新第二部分——服务器的搭建,敬请期待!

2021/12/2


CentOS CSGO服务器教程(1)基础准备的评论 (共 条)

分享到微博请遵守国家法律