殺戮空間2服務(wù)器搭建Ubuntu20.04
本文于2021年8月16日寫(xiě)于百度貼吧殺戮間吧,現(xiàn)對(duì)原帖做補(bǔ)充記錄。筆者已退坑,上一次KF2運(yùn)行時(shí)間為2022年10月29日。
本文不算教程,算是一個(gè)服務(wù)器搭建記錄,希望對(duì)屏幕前的讀者有所幫助

????????現(xiàn)在是 2021年8月15日20:43,大約在10分鐘前,由于我的失誤操作,/home/steam目錄被完全刪除,且沒(méi)有任何備份,導(dǎo)致其目錄下的所有服務(wù)器(一個(gè)KF2服務(wù)器和一個(gè)饑荒服務(wù)器及其存檔)數(shù)據(jù)清空,無(wú)異于rm -rf /*的操作。因此,所有服務(wù)器搭建操作從零開(kāi)始,特寫(xiě)下本紀(jì)實(shí)。
????


????服務(wù)器已重置完畢,Ubuntu 20.04

準(zhǔn)備工作
參考資料https://www.cnblogs.com/princesskat/p/10404213.html
之前用過(guò)centos開(kāi)服,遇到一個(gè)極難解決的問(wèn)題:version `GLIBCXX_3.4.21' not found。百度谷歌各種資料,說(shuō)是要更新庫(kù),更新半天也沒(méi)解決,搞得頭疼,故放棄centos開(kāi)服。唉,要是有windows云服就好了。
教程中的sudo apt-get install lib32gcc無(wú)法直接運(yùn)行,故用上面命令
?添加名為steam的用戶
跳轉(zhuǎn)到steam目錄下
突然發(fā)現(xiàn)阿里云監(jiān)控沒(méi)了,重新安裝一下
運(yùn)行阿里云監(jiān)控

安裝服務(wù)端本體
參考資料steamcmd的安裝 - 嗶哩嗶哩 (bilibili.com)
先安裝環(huán)境
順便給用戶steam設(shè)置個(gè)密碼,方便后續(xù)操作
在/home/steam創(chuàng)建一個(gè)名為steamcmd的文件夾
簡(jiǎn)簡(jiǎn)單單下載個(gè)steamcmd
解壓
把壓縮包刪了,不然看著亂

2023年注:才發(fā)現(xiàn)之前開(kāi)服一直使用的root用戶開(kāi)服,太鑄幣了
運(yùn)行steamcmd

當(dāng)出現(xiàn)Steam>的字樣時(shí),說(shuō)明已經(jīng)打開(kāi)了steamcmd,接下來(lái)可以在這里進(jìn)行下載各種steam服務(wù)端,按ctrl+c退出。
匿名登錄steam,好像用自己的steam賬號(hào)也行,不過(guò)太麻煩了,不要多此一舉
設(shè)置安裝目錄為/KF2Server
下載KF2服務(wù)端,大概26G,要等很久,先干點(diǎn)別的事


下好了,ctrl+c退出steamcmd

KF2Server文件夾就是剛剛在steamcmd里面下好的服務(wù)端

一下給我吃了26G

文件夾下是這些東西,其中.bat批處理文件是windows系統(tǒng)專用,linux系統(tǒng)用不了,所以要寫(xiě)一個(gè)腳本來(lái)開(kāi)服
在該目錄下創(chuàng)建一個(gè)名為KF2.sh的文件并輸入以上內(nèi)容,kf-outpost是服務(wù)器地圖名,可以修改成別的地圖,比如說(shuō)kf-bioticslab
將KF2.sh的權(quán)限修改為777


輸入./KF2.sh進(jìn)行開(kāi)服

出現(xiàn)這一大串時(shí)表示服務(wù)器已開(kāi)啟,Ctrl+c關(guān)服,我們需要配置一下服務(wù)器文件

服務(wù)端配置文件


在該目錄下,我們需要編輯的就是這三個(gè)文件,linux系統(tǒng)開(kāi)服的話下面幾個(gè)文件的開(kāi)頭是LinuxServer,windows系統(tǒng)開(kāi)服的話是PCServer,其實(shí)是一樣的

引用上面提到的教程,記得把云服的8080tcp端口打開(kāi)。建議下載到本地再編輯,用vim命令也行,具體操作自行百度進(jìn)行學(xué)習(xí)

這個(gè)帖子已經(jīng)說(shuō)的很詳細(xì),我就不再說(shuō)明了,不過(guò)要注意的是,linux系統(tǒng)開(kāi)服時(shí)對(duì)中文的編碼格式有要求。如果房間名和歡迎界面要出現(xiàn)中文的話,需要UTF-16 LE編碼,UTF-8還會(huì)亂碼,我用的notepad++不提供UTF-16 LE轉(zhuǎn)碼,然而windows自帶的記事本可以轉(zhuǎn)…


這個(gè)bannerlink也折磨了我一段時(shí)間,首先鏈接不能是https開(kāi)頭,只能是http開(kāi)頭,需要找到一個(gè)http開(kāi)頭的圖床(但是我找不到這樣的圖床)。在我谷歌查詢了大量資料后,我找到一個(gè)解決方案:使用lofter(一個(gè)國(guó)內(nèi)博客網(wǎng)站)上傳一張圖片(要求512x256)(貌似不是這個(gè)分辨率也行?不過(guò)官方的示范是這個(gè)分辨率)


右鍵,在新標(biāo)簽頁(yè)中打開(kāi)圖像

把s刪除,把.png后面的一串字符全部刪除

你會(huì)發(fā)現(xiàn)圖片沒(méi)變,但是瀏覽器顯示不安全,這樣鏈接的圖片才能在服務(wù)器歡迎界面中正常顯示,把這段新鏈接復(fù)制粘貼到bannerlink=后面。注意,游戲中的亮度很低,在外部看起來(lái)很正常的圖片可能在游戲中顯得昏暗,善用PhotoShop把圖片亮度調(diào)高,修圖過(guò)程就不講了

上面的操作已經(jīng)非常詳細(xì),不再贅敘,創(chuàng)意工坊的URL添加到配置文件后保存并開(kāi)啟服務(wù)器,服務(wù)器就會(huì)自動(dòng)下載,不過(guò)linux可能會(huì)遇到下面的問(wèn)題
問(wèn)題1:linux服務(wù)器無(wú)法下載創(chuàng)意工坊物品
?????? 貌似windows服務(wù)器沒(méi)有這個(gè)問(wèn)題,又在我谷歌了大量資料后在T社論壇中找到了解決方案,帖子鏈接https://forums.tripwireinteractive.com/index.php?threads/cant-download-steam-workshop-maps-to-linux-server-made-with-lgsm-item-state-is-8.2331498/

大意為服務(wù)端有兩個(gè)steamclient.so,只需要調(diào)用其中一個(gè)
操作方法如上,命令意思是,將/KF2Server/linux64中的steamclient.so文件改為/KF2Server/Binaries/Win64/lib64中的steamclient.so文件,用filezilla手動(dòng)操作也行
問(wèn)題2:服務(wù)器無(wú)法下載創(chuàng)意工坊中的地圖
?????? 上面講了服務(wù)器無(wú)法下載創(chuàng)意工坊物品的解決方案,難道第三方地圖不是創(chuàng)意工坊的物品嗎?當(dāng)然是,但是我的服務(wù)器能順利下載插件,而半天也下不好地圖,不知道是創(chuàng)意工坊抽風(fēng)還是我的服務(wù)器有問(wèn)題,總之我選擇手動(dòng)上傳地圖

在自己電腦上跳轉(zhuǎn)到以上目錄,里面的文件夾全是在游玩服務(wù)器時(shí)下載好的地圖以及插件

比如說(shuō)這個(gè)文件夾是Dust2地圖

一直點(diǎn)到Maps這個(gè)文件夾

再點(diǎn)進(jìn)去就會(huì)看到這個(gè),.kfm文件就是地圖本體

服務(wù)器存放地圖的目錄如上,直接把想上傳的地圖拖到這里就行

有些地圖像ZASHIKI,Maps文件夾下還有一個(gè)文件夾,點(diǎn)進(jìn)這個(gè)文件夾才是地圖本體,我們需要把Maps下的這個(gè)文件夾整個(gè)拖進(jìn)去,就像這樣(也許不用上傳文件夾?)


雜七雜八

服務(wù)器更新創(chuàng)意工坊物品時(shí)是這樣的,這個(gè)item state我至今沒(méi)有弄懂,懂的可以講講
23點(diǎn)28分,啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊,知道剛剛發(fā)生了什么嗎,我試圖把之前的配置文件直接上傳給服務(wù)器使用,卻意想不到地報(bào)了錯(cuò),服務(wù)器直接把我的KFGame.ini用默認(rèn)配置文件覆蓋掉了,我百思不得其解,以為是編碼問(wèn)題,又是一波查資料給ubuntu設(shè)置utf-8中文環(huán)境,還是不行。實(shí)在是沒(méi)辦法,我只好老老實(shí)實(shí)把服務(wù)器新生成的配置文件拿過(guò)來(lái)手動(dòng)編輯,結(jié)果一次成功……………………………………
目前已知的一個(gè)BUG,至今未找到解決方案,KFGame.ini中設(shè)置了中文并使用utf-16 LE的第一次開(kāi)服,服務(wù)器能夠正常顯示中文,但此時(shí)會(huì)發(fā)現(xiàn)此文件已被修改(之前已經(jīng)設(shè)置了不可寫(xiě)入),參考下圖

發(fā)現(xiàn)服務(wù)器傳回來(lái)的文件體積大了將近一倍,且內(nèi)容變成這樣

目前沒(méi)有很好的解決辦法,只能每次開(kāi)服前都上傳一次\KFGame.ini。。。。。。。。。。。。。。

2021年10月6日1:55,殺戮空間2迎來(lái)大更,需要更新服務(wù)端,使用T社WIKI給出的更新方案:使用steamcmd輸入app_update 232130,出現(xiàn)如下提示

Steam社區(qū)告訴我0x202的意思是服務(wù)器硬盤(pán)不足,然而空間確實(shí)還有很多

從別的服主那了解到

250M的空間誰(shuí)沒(méi)有?。。≌媸枪至?/p>
另一個(gè)服主則表示硬盤(pán)剩11G空間也能正常更新,且更新后內(nèi)存大小無(wú)異,怪。我決定把現(xiàn)有的服務(wù)端刪除,重新下載一份新服務(wù)端,首先備份一下game.ini和engine.ini兩個(gè)配置文件、AccessPlus插件與配置文件、一些第三方地圖。

和上次比起來(lái)也就多了200多M的樣子,居然要我重新下載,可惡的T社

2021.10.13,將game.ini權(quán)限設(shè)置為544,使用非root賬戶開(kāi)服,game.ini不會(huì)被覆蓋。
?????? 困于無(wú)法開(kāi)2服,重新在steamcmd中輸入app_updatae 232130 validate提示硬盤(pán)不足,推測(cè)為steamcmd重新下載了新服務(wù)端,可能是我沒(méi)有設(shè)置路徑吧,正在重新下載服務(wù)端。
?????? 突然想起來(lái)我有快照,但是我已經(jīng)重置系統(tǒng)了……
?????? 重新執(zhí)行本紀(jì)實(shí)的所有操作

Ubuntu系統(tǒng)本身加上前置的總占用如上
正在下載服務(wù)端,先截圖記錄一些配置文件

1服《妹紅與輝夜》的啟動(dòng)腳本文件,2服的文件則改為-ConfigSubDir=2,2服暫時(shí)不加AccessPlus插件,故刪除?AccessControl=AccessPlus.AccessPlus -QueryPort=27015

Web配置,2服的端口改為8081

1服端口為7777和7778,2服端口為7000和7001。



2服名為 妹紅與慧音

笑死。檢查來(lái)檢查去,發(fā)現(xiàn)2服的開(kāi)服文件

少了個(gè)”KF-”?。。。。。。。。。。?!逆天

Segmentation fault
?????? 用root開(kāi)一次服就好了
?????? 非root用戶則將config/xxx遞歸修改文件權(quán)限為755
無(wú)法讀取第三方地圖,cache文件夾顯示已經(jīng)下好了第三方圖
?????? 在網(wǎng)頁(yè)后臺(tái)打指令換圖就會(huì)自動(dòng)下載了


嘗試開(kāi)啟四個(gè)服,下午上完課回來(lái)發(fā)現(xiàn)服務(wù)器炸了…遠(yuǎn)程都連不上
?????? 經(jīng)測(cè)試,一個(gè)6人純凈服占用800M左右內(nèi)存,0.8M帶寬

2021.10.25日12點(diǎn)57分




2022.5.14 土豆更新minecraft地圖,返回的結(jié)果是Item state is 12
該問(wèn)題已解決,需要使用root用戶開(kāi)服,換圖后服務(wù)器會(huì)自動(dòng)下載創(chuàng)意工坊物品,推測(cè)原因是一般用戶沒(méi)有在root用戶目錄下創(chuàng)建文件的權(quán)限的可能。

加了幾張三方圖,用kf用戶(一般用戶)開(kāi)服,換圖報(bào)錯(cuò),說(shuō)無(wú)法打開(kāi)這張地圖,推測(cè)還是權(quán)限問(wèn)題,先試試chmod改權(quán)限。
大膽假設(shè),謹(jǐn)慎求證,我把/cache遞歸修改權(quán)限文件為755試試。成功。順帶一提,KFGame.ini的地圖循環(huán)中,地圖名字最好(也許是必須?)復(fù)制/cache里面的地圖名字

2021/11/8/18:29

今天用kf用戶開(kāi)服,后臺(tái)反饋的信息居然沒(méi)有亂碼!但是刷不出服務(wù)器了。。。發(fā)現(xiàn)返回的文件體積小了一半,本地重新上傳一次后正常

2021/12/10,貌似是昨天?T社更新了KF2,圣誕節(jié)版本,因此服務(wù)器也要更新。之前的一次更新,steamcmd貌似不會(huì)覆蓋原文件,又下載了一個(gè)新的服務(wù)端,而且下載的具體位置我找不到,因此迫不得已重置一遍服務(wù)器再操作一次,非常蛋疼…今天根據(jù)T社的wiki再試一遍。https://wiki.killingfloor2.com/index.php?title=Dedicated_Server_(Killing_Floor_2)


2012/12/22

服務(wù)器突然連不上了,SSH也不行,推斷為服務(wù)器崩潰,直接阿里云重啟,順便看了下這個(gè)月的內(nèi)存占用情況。

第一次開(kāi)服且沒(méi)有玩家進(jìn)入時(shí),KF房間的占用非常小,每個(gè)房間占用400M不到,而滿人的時(shí)候每個(gè)服務(wù)器占用800M左右。
?????? 按理說(shuō)應(yīng)該有一個(gè)機(jī)制,在玩家退出服務(wù)器后,服務(wù)器自動(dòng)釋放這部分玩家占用的內(nèi)存,理應(yīng)回到400M的水平。
?????? 然而從本月內(nèi)存情況來(lái)看,·服務(wù)器并沒(méi)有釋放這部分內(nèi)存,反而這部分內(nèi)存越來(lái)越多,堆積到一定程度時(shí),服務(wù)器崩潰。
?????? 內(nèi)存陡降一半的是其中一個(gè)服務(wù)器崩潰的情況,之前沒(méi)留意過(guò),手動(dòng)開(kāi)一次服就好了。今天是整個(gè)服務(wù)器都連不上,引起了我的重視。
?????? 兩個(gè)思路:一、寫(xiě)一個(gè)腳本,定時(shí)關(guān)服再開(kāi)服。二、寫(xiě)一個(gè)腳本,定時(shí)釋放內(nèi)存。
選擇第一個(gè)思路,因?yàn)榈诙€(gè)我不知道怎么釋放指定程序的內(nèi)存。
(略去原文的折騰過(guò)程,直接給出解決方案)

簡(jiǎn)單解釋:每分鐘都執(zhí)行一次./KF1.sh的命令,服務(wù)器崩了就讓他崩,反正一分鐘之內(nèi)就會(huì)開(kāi)服,就算沒(méi)崩,這個(gè)命令也不影響服務(wù)器運(yùn)行

2022.2.1
有人請(qǐng)我?guī)退_(kāi)一個(gè)三方純凈服和一個(gè)CD服。Win2012R2系統(tǒng)。
KFGame.ini使用UTF-8編碼,設(shè)置只讀,不然會(huì)遇到部分三方圖打不開(kāi)的情況,比如說(shuō)能打開(kāi)沙1打不開(kāi)沙2

好吧,正確的解決方案是UTF-16LE編碼并設(shè)置為只讀。

2022.6.14
服務(wù)器居然還有空間更新,接著開(kāi)


2022.6.17
由于無(wú)人機(jī)BUG會(huì)導(dǎo)致炸服,我開(kāi)始思考寫(xiě)一個(gè)炸服自動(dòng)重啟的腳本,或者找一個(gè)能托管服務(wù)器的工具。我轉(zhuǎn)念一想,直接每十分鐘執(zhí)行一次開(kāi)服腳本不就完了么,服沒(méi)炸的話也不會(huì)有什么事發(fā)生,服如果炸了就能在十分鐘內(nèi)開(kāi)好。

創(chuàng)意工坊的地圖不僅會(huì)下到cache文件夾里,也會(huì)下到Binaries里面,刪圖的時(shí)候兩邊都要?jiǎng)h。



2022.8.11晚,KF2大更,改了醫(yī)療屎槍的負(fù)重和HRG堡壘,游戲更新下載2G安裝10G,服務(wù)器更新也是2G,真虧我服務(wù)器還有空間繼續(xù)更新啊,沒(méi)空間更新的話就宣布倒閉停服

居然還能更新




還有400M左右的空間,刪除KF-Minecraft,這個(gè)圖服務(wù)器無(wú)法下載,導(dǎo)致玩家進(jìn)不了服,把服務(wù)器卡住了,也懶得折騰,幾個(gè)月前就出現(xiàn)很多服務(wù)器不下載地圖的情況

全文結(jié)束,有疑問(wèn)歡迎留言討論或指出錯(cuò)誤。