CentOS CSGO服務(wù)器教程(1)基礎(chǔ)準(zhǔn)備

前篇

繼前篇的預(yù)告之后 開始進(jìn)行CSGO服務(wù)器搭建的第一步:基礎(chǔ)準(zhǔn)備
考慮到公網(wǎng)IP、端口,一般CSGO服務(wù)器都部署在云服務(wù)器
本文涉及以下幾個(gè)概念:CentOS、SteamCMD、LinuxGSM、GSLT、SteamAPI
1.服務(wù)器系統(tǒng)的選擇
1.1 Windows Server
????大家一開始都會(huì)考慮用Windows Server搭建服務(wù)器,但與大家的感性認(rèn)知不同,Windows由于“過于”人性化,導(dǎo)致其過于臃腫。利用SteamCmd(steam服務(wù)端命令行)雖然可以比較間接地搭建CSGO服務(wù)器,但搭建后的服務(wù)器系統(tǒng)OS開銷過大,對(duì)服務(wù)器使用資源壓縮過大,導(dǎo)致實(shí)際運(yùn)行時(shí),服務(wù)器的sv、var值較高(我們俗稱為跳var、跳sv),對(duì)實(shí)際游戲會(huì)產(chǎn)生較大干擾。另外,由于Windows的計(jì)劃指令效率過低,也不適宜在Windows上部署自動(dòng)更新腳本。
????Windows做服務(wù)器端的優(yōu)勢是后期插件編譯時(shí)可以直接在服務(wù)器端完成編譯、導(dǎo)入的步驟。
1.2 Linux
????與Windows相對(duì)的Linux便沒有以上的問題,采用Linux操作系統(tǒng)除了操作不太便利,服務(wù)器性能、維護(hù)與Windows比都有很好的改善。
? ? ?以下為部分Linux的發(fā)行版:

這里只介紹主流的Linux發(fā)行版
◆Debian
? ? Debian的整個(gè)系統(tǒng)基礎(chǔ)核心非常小,不僅穩(wěn)定,而且占用硬盤空間小,占用內(nèi)存小。Debian是適合于服務(wù)器的操作系統(tǒng)。但Debian的幫助文檔相與技術(shù)資料與CentOS比較少。
◆Ubuntu
? ?Ubuntu有著漂亮的用戶界面,完善的包管理系統(tǒng),強(qiáng)大的軟件源支持,豐富的技術(shù)社區(qū),Ubuntu還對(duì)大多數(shù)硬件有著良好的兼容性。但Ubuntu的最佳應(yīng)用領(lǐng)域是桌面操作系統(tǒng)而非服務(wù)器操作系統(tǒng)。
1.3 CentOS
? ? 筆者采用了CentOS作為CSGO服務(wù)器的載體。CentOS是從RHEL源代碼編譯的社區(qū)重新發(fā)布版,與商業(yè)版RedHat具有相同的淵源。CentOS簡約,命令行下的人性化做得比較好,穩(wěn)定,有著強(qiáng)大的英文文檔與開發(fā)社區(qū)的支持。

? ? 考慮到后面采用了LinuxGSM工具部署服務(wù)器,而該工具不支持CentOS6,故筆者采用CentOS7作為服務(wù)器的鏡像。
2.自動(dòng)化部署工具LinuxGSM
? ? ?一般情況下,我們需要下載SteamCMD,利用其下載CSGO服務(wù)器并自己編寫腳本運(yùn)行、維護(hù)服務(wù)器,步驟較為繁瑣。在Valve開設(shè)的CSGO服務(wù)器介紹頁中提及了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是一個(gè)可以迅速、簡單維護(hù)和管理Linux下專用服務(wù)器的命令行工具。利用自動(dòng)化工具部署可以大大降低我們搭建、維護(hù)服務(wù)器所需的時(shí)間與精力。
https://linuxgsm.com/

3.運(yùn)維服務(wù)器過程中涉及的Linux語法
? ? 這部分介紹一些運(yùn)維服務(wù)器以及下載、編譯插件所需的Linux命令,需要時(shí)查詢即可。
命令參考自Linux教程
https://www.cnblogs.com/xuxiuxiu/p/6270494.html
3.0 預(yù)備知識(shí)
? ? ?Linux中執(zhí)行命令時(shí)使用的是shell語言,可以理解為與Windows中的cmd(命令提示符)部分類似的工具。Linux中root用戶(管理員)的shell前綴為#,普通用戶的shell前綴為$。在shell中,如果要輸入較長的文件名或命令,可以利用tab補(bǔ)全,減少輸入量,例如輸入rm csgoserver.cfg時(shí),可以只輸入rm cs 然后按tab補(bǔ)全即可(補(bǔ)全前若有多個(gè)文件名部分匹配,可以利用↑、↓鍵進(jìn)行選擇)
3.1 cp命令
該命令的功能是將給出的文件或目錄拷貝到另一文件或目錄中,功能十分強(qiáng)大。
語法: cp [選項(xiàng)] 源文件或目錄 目標(biāo)文件或目錄
舉例:?
3.2 rm命令
用戶可以用rm命令刪除不需要的文件或者目錄。
語法:rm [選項(xiàng)] 文件
舉例:?
如果沒有使用- r選項(xiàng),則rm不會(huì)刪除目錄。
3.3 cd 命令
功能:改變工作目錄。
語法:cd [directory]
舉例:
該命令返回上一層目錄
3.4 ls 命令
ls是英文單詞list的簡寫,其功能為列出目錄的內(nèi)容。該命令類似于DOS下的dir命令。
語法:ls [選項(xiàng)] [目錄或是文件]
一般直接敲ls直接使用即可
3.5 su命令
這個(gè)命令非常重要。它可以讓一個(gè)普通用戶擁有超級(jí)用戶或其他用戶的權(quán)限,也可以讓超級(jí)用戶以普通用戶的身份做一些事情。普通用戶使用這個(gè)命令時(shí)必須有超級(jí)用戶或其他用戶的口令。
該命令的一般形式為: su [選項(xiàng)] [使用者帳號(hào)]
舉例:
注意: su root?只是切換了root身份,但shell環(huán)境仍然是普通用戶的shell
? ? ? ???su - root?連用戶和Shell環(huán)境一起切換成root身份了
3.6?ps命令
顯示系統(tǒng)中執(zhí)行的程序。
語法:ps [選項(xiàng)](一般直接用)
3.7 top命令
ps 命令可以一次性給出當(dāng)前系統(tǒng)中進(jìn)程狀態(tài),但使用此方式得到的信息缺乏時(shí)效性,并且,如果管理員需要實(shí)時(shí)監(jiān)控進(jìn)程運(yùn)行情況,就必須不停地執(zhí)行 ps 命令,這顯然是缺乏效率的。
為此,Linux 提供了 top 命令。top 命令可以動(dòng)態(tài)地持續(xù)監(jiān)聽進(jìn)程地運(yùn)行狀態(tài),與此同時(shí),該命令還提供了一個(gè)交互界面,用戶可以根據(jù)需要,人性化地定制自己的輸出,進(jìn)而更清楚地了進(jìn)程的運(yùn)行狀態(tài)。
語法:top [選項(xiàng)](一般直接用)
3.8 yum命令
yum( Yellow dog Updater, Modified)是一個(gè)在 Fedora 和 RedHat 以及 SUSE 中的 Shell 前端軟件包管理器,CentOS中的yum源自于RedHat。yum基于 RPM 包管理,能夠從指定的服務(wù)器自動(dòng)下載 RPM 包并且安裝,可以自動(dòng)處理依賴性關(guān)系,并且一次安裝所有依賴的軟件包,無須繁瑣地一次次下載、安裝。yum 提供了查找、安裝、刪除某一個(gè)、一組甚至全部軟件包的命令。
兩個(gè)常用的yum命令,可以看出yum類似于apt-get、pip、conda:
yum install <package_name>?
例如:?
yum update?<package_name>
3.9 wget命令
wget是Linux中的一個(gè)下載文件的工具,wget是在Linux下開發(fā)的開放源代碼的軟件
常用的命令格式:
wget -O <web_url>
3.10 tar命令
tar(tape archive )命令用于備份文件。
tar 是用來建立,還原備份文件的工具程序,它可以壓縮、解壓縮備份文件、壓縮包內(nèi)的文件。
常用tar參數(shù):
x:解包,解壓縮
f:指定文件壓縮文件
z:壓縮成gz格式
v:顯示詳細(xì)信息
舉例:
4.其他所需準(zhǔn)備的工具&材料
4.0 說明
? ? 除了LinuxGSM外,在連接云服務(wù)器時(shí)筆者推薦使用PuTTY、WinSCP等工具可視化操作服務(wù)器文件,使用VSCode進(jìn)行cfg、插件的修改。除了基本的工具之外,由于LinuxGSM腳本倉儲(chǔ)于Github,我們還需要修改服務(wù)器本機(jī)的host以快速訪問,當(dāng)然,架設(shè)服務(wù)器所需的令牌、API密鑰也是必不可少的。
4.1 PuTTY
? ? PuTTY是一款開源的連接軟件,可以用來遠(yuǎn)程連接服務(wù)器,支持SSH、Telnet、Serial等協(xié)議的連接。本教程主要使用SSH連接。
使用PuTTY遠(yuǎn)程管理Linux的主要優(yōu)點(diǎn)如下:
◆ 完全免費(fèi);
◆ 在Windows操作下運(yùn)行的都非常好;
◆ 全面支持SSH1和SSH2;
◆ 體積很小,不到1M;
◆ 操作簡單,所有的操作都在一個(gè)控制面板中實(shí)現(xiàn)。
下載地址如下,下載時(shí)64位系統(tǒng)請(qǐng)選擇64bit版本。
https://www.chiark.greenend.org.uk/~sgtatham/putty/

打開后,在Host Name欄輸入IP,Port欄輸入端口(默認(rèn)22),即可遠(yuǎn)程連接服務(wù)器。



4.2 Vim
4.2.1 Vim界面介紹
在shell下使用Vim便可打開包括.txt .ini .cfg等多種文檔
舉例:

4.2.2 Vim的使用
? ? ?Vim 共分為三種模式,分別是命令模式(Command mode),輸入模式(Insert mode)和底線命令模式(Last line mode)。
用戶啟用vim后,便進(jìn)入了命令模式。此狀態(tài)下敲擊鍵盤動(dòng)作會(huì)被Vim識(shí)別為命令,而非輸入字符。比如我們此時(shí)按下i,并不會(huì)輸入一個(gè)字符,i被當(dāng)作了一個(gè)命令。
以下是常用的幾個(gè)命令:
i ?切換到輸入模式,以輸入字符。
x 刪除當(dāng)前光標(biāo)所在處的字符。
:? 切換到底線命令模式,以在最底一行輸入命令。
Esc+:wq? 保存離開
Esc+:q? 不保存離開
Insert? 更改輸入模式
4.3 WinSCP
? ? WinSCP 是一個(gè) Windows 環(huán)境下使用的 SSH 的開源圖形化 SFTP 客戶端,同時(shí)支持 SCP 協(xié)議。它的主要功能是在本地與遠(yuǎn)程計(jì)算機(jī)間安全地復(fù)制文件,并且可以直接編輯文件,只要遠(yuǎn)程設(shè)備能SSH連接即可。
本教程使用WinSCP基于以下三個(gè)目的
◆復(fù)制、粘貼、下載、刪除等操作便捷
◆可視化結(jié)構(gòu)更加明顯
◆可在線編輯并回傳
WinSCP的下載地址如下:
https://winscp.net


4.4 VSCode
? ? 對(duì)于接觸過C/C++的小伙伴,Visual Studio(VS)一定都不陌生。原本這部分代碼修改的工作我是選用Notepad++的,但鑒于Notepad++的開發(fā)者寡廉鮮恥、嘴臉丑惡,故強(qiáng)推大家使用微軟開發(fā)另一個(gè)輕量編輯器Visual Studio Code(VSCode),如果你已有VS便可不必在下載VSCode,直接用VS默認(rèn)打開cfg等文檔即可。VSCode的下載地址如下:
https://code.visualstudio.com/

? ? 由以上三部分的介紹可以看出,WinSCP可以遠(yuǎn)程打開并便捷編輯文檔,VSCode在此處只能本地打開并編輯文檔(可以遠(yuǎn)程配置但沒必要),VSCode與WinSCP相比有語法高亮,比較使用,PuTTY打開后的Vim編輯過程比較繁瑣,不建議在需要本地狀態(tài)調(diào)整(如net refresh)等條件下使用。
4.5 Hosts(Github)
由于LinuxGSM的腳本倉儲(chǔ)于Github,運(yùn)行LinuxGSM時(shí)需從Github自動(dòng)下載.sh。不修改hosts的情況下,可能會(huì)出現(xiàn)如下錯(cuò)誤:
所以要通過修改本機(jī)hosts,直接固定ip,使文件得以下載
方法一:Vim修改
進(jìn)入hosts
進(jìn)入編輯模式,將hosts列表粘貼進(jìn)入。hosts列表來源及具體內(nèi)容如下:
https://github.com/ineo6/hosts
修改完畢并保存后,重啟服務(wù)
或從外部重啟云服務(wù)器即可
方法二:WinSCP
進(jìn)入WinSCP,以root身份進(jìn)入/etc/hosts
打開,將上方的hosts列表粘貼進(jìn)入,保存
從外部重啟云服務(wù)器即可
4.6 GSLT(Game Server Login Token)
? ? ?GSLT,即服務(wù)器令牌,沒有令牌就無法使服務(wù)器出現(xiàn)在公網(wǎng)上。令牌可通過如下網(wǎng)站獲?。?/p>
https://steamcommunity.com/dev/managegameservers
登錄后,選擇游戲?yàn)?30(CSGO),生成令牌,并自己保存好
4.7 SteamAPI密鑰(WebAPI)
? ? 考慮到部分服務(wù)器會(huì)使用創(chuàng)意工坊地圖,如果玩家原本沒有此服務(wù)器中的地圖,會(huì)調(diào)用API接口下載,故提前配置好API密鑰會(huì)避免后期的意外發(fā)生。
獲取Steam網(wǎng)頁API秘鑰的鏈接如下
https://steamcommunity.com/dev/apikey
? ? 第一部分基礎(chǔ)準(zhǔn)備基本結(jié)束,本周或下周高概率更新第二部分——服務(wù)器的搭建,敬請(qǐng)期待!
2021/12/2