KF2用Linux搭建房間
目錄:
引語
- Linux開服,我默認大家都是用雲服務器,想來應該沒人電腦是Linux系統吧。
- 因為很多人可能不了解Linux,所以文章會寫得很詳細,有補充資料,大家可以看看
ssh連接
打開putty 或者 Xshell。當然用雲服提供給你的遠程登陸窗口也行,但強烈推薦Xshell,功能真得很強大。 輸入公網ip;連接;輸入用戶名與密碼;連接上服務器
運行環境安裝
在開始之前,必須先安裝運行SteamCMD所需的依賴項。 在這里說一下,安裝程序時,你輸入指令后會提示你是否安裝,輸入y,按鍵盤[Enter]確定,當然否定就是n
CentOS
sudo yum install xulrunner.i686
或者:
sudo yum install glibc.i686
注 :我以前是用這條指令 sudo yum install glibc.i686
,可能因為CentOS版本問題這次到后面無法運行steamcmd.sh,出現錯誤error while loading shared libraries: libgcc_s.so.1: cannot open shared object file: No such file or directory
,網上解決辦法感覺很麻煩,所以現在換成 sudo yum install xulrunner.i686
Ubuntu
sudo apt-get install lib32gcc
steamcmd的下載及使用
CentOS和Ubuntu其實本來沒什么區別的,但是偶然發現Ubuntu能直接下載steamcmd,為了寫詳細點,就分開寫了。
下面會新建一個steam用戶,因為直接用root有一定的風險。
CentOS用戶
adduser -m steam #新建用戶steam,在/home目錄下有steam文件夾
su - steam #切換為steam用戶,注意空格
mkdir ~/steamcmd #創建steamcmd目錄
cd ~/steamcmd #進入steamcmd目錄
wget http://media.steampowered.com/installer/steamcmd_linux.tar.gz #下載
tar -xvzf steamcmd_linux.tar.gz #解壓
./steamcmd.sh #運行程序
login anonymous #匿名登陸
force_install_dir .\KF2Server\ #設置安裝目錄
app_update 232130 validate #下載KF2服務器,如果下載失敗,繼續輸入指令重新下載
quit #下載完畢后,退出
注:從官方鏈接下載steamcmd,用wget下載鏈接,要是提示 wget:未找到命令,你需要自己安裝 yum install wget
Ubuntu用戶
useradd -m steam #新建用戶steam
cd /home/steam #跳轉到用戶目錄
sudo apt-get install steamcmd #安裝steamcmd,steam提供的跨平台開服工具
ln -s /usr/games/steamcmd steamcmd #將安裝好的steamcmd鏈接到當前目錄方便執行
./steamcmd #執行程序
login anonymous #匿名登陸
force_install_dir .\KF2Server\ #設置安裝目錄
app_update 232130 validate #下載KF2服務器,如果下載失敗,繼續輸入指令重新下載
quit #下載完畢后,退出
編寫啟動文件與生成配置
cd /home/steam/steamcmd/KF2Server/ #進入KF2Server目錄下
vi KF2.sh #用vi編寫啟動文件,下面是文本中寫入的內容
vi輸入的文本:
#!/bin/sh
./Binaries/Win64/KFGameSteamServer.bin.x86_64 kf-bioticslab
接下來開服,第一次開服會生成房間配置文件
chmod -R 777 KF2.sh #給KF2.sh文件權限
./KF2.sh #運行KF2服務器
最后出現 DevOnline: Advertising: Region= 表示開服成功,然后按組合鍵CTRL+C退出程序
房間配置
cd /home/steam/steamcmd/KF2Server/KFGame/Config #進入配置文件目錄
使用vi修改以下三個文件:KFWeb.ini、LinuxServer-KFEngine.ini和LinuxServer-KFGame.ini
vim KFWeb.ini
vim LinuxServer-KFGame.ini
vim LinuxServer-KFEngine.ini
配置修改如下:
KFWeb.ini
bEnable=false 改成 bEnabled=true ListenPort=8080 默認的話,開服后網址輸入:ip:8080,訪問網頁后台。根據需求是否更改
LinuxServer-KFGame.ini
將?改為你的設定,#后為注釋,請善用查找功能
GameDifficulty=? #對游戲難度進行設置 =0(普通)=1(困難)=2(自虐)=3(地獄) 注:試了才發現Linux的配置文件和windows不一樣,查找有兩個GameDifficulty, 你要改這個[Engine.GameInfo]下面的GameDifficulty,是后一個
AdminPassword=? #管理員密碼
GamePassword=? #游戲密碼
GameLength=? #對游戲波數進行設置 =0(4波)=1(7波)=2(10波)
ServerName=? #房間名
GameMapCycles=? #地圖循環
這三個是房間歡迎界面設置,詳細點擊這里:房間歡迎界面設置
BannerLink=? #PNG圖像的外鏈
ServerMOTD=? #BannerLink圖像下的消息顯示
WebsiteLink=? #您網站的網址
LinuxServer-KFEngine.ini
查找 bUsedForTakeover,將其改為false
查找 [IpDrv.TcpNetDriver] 下一行添加一行代碼,為了讓別人能從創意工坊下載三方地圖或插件:
DownloadManagers=OnlineSubsystemSteamworks.SteamWorkshopDownload
注:不能直接查找 [IpDrv.TcpNetDriver],因為編輯器對於方括號處理是括號內各個字母出現位置標識, 或許你可以只查找一半就行了,例如這樣查找:[IpDrv.Tcp復制下面代碼最后,這段代碼是加三方地圖或插件的的(其實大家玩最久得還是官方,開始設置可以跳過此步)
[OnlineSubsystemSteamworks.KFWorkshopSteamworks] ServerSubscribedWorkshopItems=?
代碼解釋:這個很好理解,其實就是讓服務器從創意工坊下載地圖或插件
ServerSubscribedWorkshopItems=?
你可以多復制幾行這段代碼,將?改為三方地圖或插件的id具體舉例: 假如我要裝一個三方地圖(id:935744975)和一個插件(id:1412883748),我文檔最后是這樣:
[OnlineSubsystemSteamworks.KFWorkshopSteamworks] ServerSubscribedWorkshopItems=935744975 ServerSubscribedWorkshopItems=1412883748
插件名字:Controlled Difficulty - Tiger's Build V.2 鏈接(URL):https://steamcommunity.com/sharedfiles/filedetails/?id=1412883748&searchtext=cd 你可以從url中找到id=1412883748,然后把?改成id就行了
三方圖名字:KF-De_Dust2 鏈接(URL):https://steamcommunity.com/sharedfiles/filedetails/?id=935744975&searchtext=dust
同理,但多一步驟,在地圖循環中添加地圖的名稱,按格式寫就行了。另外加名稱也可以在網頁后台實現。
開服與網頁后台
cd /home/steam/steamcmd/KF2Server/ #回到KF2Server目錄下
./KF2.sh #運行KF2服務器
上面就算開服成功了,打開瀏覽器,公網IP:8080進入網頁后台,管理員密碼登錄,里面可以看一些直觀數據,以后修改也方便。
安裝GNU Screen
ssh連接雲服,上面雖然開服了,但是關掉ssh,這個任務就會結束,所以需要Screen,能夠開一個獨立窗口運行任務,即使斷掉ssh連接也能一直運行任務。
按上面步驟來的話,如果你是在新建的steam用戶下,記得切到root用戶安裝,輸入su
,回車,輸密碼。切回steam用戶則是su - steam
yum install screen #安裝Screen
screen -S KF2server #創建一個Kf2窗口,這里 KF2server 你也可以改成任意名字
./KF2.sh #運行KF2服務器
ctrl+a+d #會使當前screen窗口分離(detach)為獨立的會話。會話分離后就可以斷開SSH連接(關閉Xshell)
注:ctrl+a+d有的人按了沒反應,我是按住ctrl不放,先按一下a然后松開a再按一下d,不是a與d一起按
如果想切回KF2服務器的Screen窗口,可使用如下命令
screen –ls #列出所有screen窗口,可以看到進程號,例如9567 screen –R 9567 #恢復KF2Server窗口
如果想殺死進程然后做其他操作
kill 9567 #殺死9567進程
房間歡迎界面設置
- 確保游戲服務器沒有運行
- 編輯PCServer-KFGame.ini:
找到這個部分並進行編輯,這是默認的部分:
BannerLink=http://art.tripwirecdn.com/TestItemIcons/MOTDServer.png
ServerMOTD=Welcome to our server. \n \n Have fun and good luck!
WebsiteLink=http://killingfloor2.com/
BannerLink是必須是PNG圖像。想添加自己的圖片,你可以自己搭建圖床或者用別人的免費圖床。 網上一大堆免費圖床,選擇你喜歡的,一般要你注冊賬號,然后你就可以上傳圖片。 注:圖片必須是PNG格式,分辨率為512×256,然后用圖片外鏈地址,就是輸入鏈接能直接打開一張圖片的那個,舉例:http://art.tripwirecdn.com/TestItemIcons/MOTDServer.png
ServerMOTD是BannerLink圖像下的消息顯示 注:Linux中文會顯示亂碼,用英文吧
您可以使用“\ n”來創建一個新行,就像在默認消息中一樣
改變字體顏色和大小
ServerMOTD=<font color="#FF0000" size="60">weijiejie</font>
展示效果:
weijieji
#FF0000
是紅色,想改成其他顏色,度娘html顏色代碼表60
當然是px大小,自己根據情況改WebsiteLink是您網站的網址(隨便填,默認也行)
保存,啟動服務器,享受歡迎屏幕。
多人房間開設
復制房間啟動程序KF2.sh然后重命名,加入代碼
?ConfigSubDir=Name
cd /home/steam/steamcmd/KF2Server/ #進入KF2.sh所在的目錄 cp KF2.sh KF2_new.sh #復制KF2.sh並命名為KF2_new.sh,這個命名根據你自己,xxx.sh vim KF2_new.sh
修改KF2_new.sh,改成如下:
#!/bin/sh ./Binaries/Win64/KFGameSteamServer.bin.x86_64 kf-bioticslab?ConfigSubDir=Name
開服:
./KF2_new.sh
開服成功后,ctrl+c關閉窗口,
cd /home/steam/steamcmd/KF2Server/KFGame/Config ##進入Name文件夾所在目錄 ls ##列出當前目錄文件
你在這可以看見Name文件夾
cd Name #進入Name文件夾
接下來就是和之前一樣,修改那三個配置文件
vim LinuxServer-KFEngine.ini
,打開文件,查找 Port和PeerPort 默認Port=7777,PeerPort=7778 你將Port改為其他數字,PeerPort為Port+1 例如:Port=7773,PeerPort=7774vim KFWeb.ini
,打開文件, 更改網絡端口 ,默認ListenPort=8080,改為其他數字,比如8081。 bEnable=false 改成 bEnabled=truevim LinuxServer-KFGame.ini
,打開文件,改名,其他配置也可以改改。
補充資料
很多人不了解Linux,在此補充點知識,寫得並不詳細。如果不理解可以直接度娘,網上一大把詳細文檔
一些指令含義
小技巧:代碼補全,按鍵盤[Tab]
pwd #看當前所處目錄
ls #列出目錄
cd #切換目錄,比如進入home目錄下:cd /home
cd .. #上級目錄
mkdir test #創建test文件夾
rm -rf test #刪除文件夾test及其子文件
chmod -R 777 test #給test及其子文件授予777權限,即能進行讀、寫和執行操作
cp file1 另一路徑/file2 復制文件file1到另一路徑並命名為file2
vi/vim使用
vi/vim 共分為三種模式,分別是命令模式(Command mode),輸入模式(Insert mode)和底線命令模式(Last line mode)
命令模式: 一進來就算命令模式,此時敲字母會被當做命令來使用。
:
進入底線命令模式,i
進入輸入模式命令 含義 : 進入底線命令模式,注意如果沒反應,關掉輸入法 i 進入輸入模式 gg 回到文檔第一行 /txt 向下查找 txt ,就是記事本里面的查找功能 ?txt 向上查找 txt n 配套上面的查找,查找下一個txt N 往上查找,找上一個txt 輸入模式: 進入這里就能輸入文本啦!操作和普通文本編輯器一樣,沒什么要說的。 輸入完成后,按鍵盤[Esc]退回命令模式。
底線命令模式: 你輸入命令后按鍵盤[Enter]可以執行命令。
命令 含義 q! 不保存退出 wq 保存退出
Filezilla使用簡述
如果你用不習慣vi,可以將配置文件從雲服下載下來,本地改好然后再上傳回去
連接FIlezilla填寫內容舉例:
sftp://118.25.173.70 #形如此格式在主機那欄目填寫公網IP
root #用戶名
WOR1545FCW #密碼
22 #端口默認22