侧边栏壁纸
博主头像
随便记录记录

心率比功率高

  • 累计撰写 15 篇文章
  • 累计创建 16 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

【教程】Linux系统下搭建KF2服务器

暮岁
2024-03-10 / 0 评论 / 0 点赞 / 7 阅读 / 0 字
温馨提示:
本文最后更新于2024-10-28,若内容或图片失效,请留言反馈。 部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

自建杀戮空间2服务器

操作系统::CentOS 7.6 64bit

规格::2 核 4 GB

带宽::5 Mbit/s 带宽

操作账户:root

存储空间:需要至少23G的可用空间

一、安装SteamCMD

1. 安装运行库

sudo yum -y install glibc.i686

2. 安装SteamCMD

一些基本命令使用

  • cd [目录] 进入某目录 eg: cd /home/steamcmd 进入根路径下home目录下的steamcmd文件夹
  • pwd 查看当前路径
  • mkdir [文件夹] 创建文件夹 eg: mkdir test 在当前目录下创建test文件夹

加参数-p可创建多层次文件夹 eg: mkdir -p /home/steamcmd 在根路径下home目录下创建steamcmd文件夹

  • ll 查看当前目录文件列表
mkdir -p /home/steamcmd
cd /home/steamcmd

# 下载steamcmd
wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz --no-check-certificate

--no-check-certificate 不检查安全网站证书

ll查看一下当前目录,steamcmd_linux.tar.gz下载下来了

tar -zxf steamcmd_linux.tar.gz 解压

二、安装KF2服务端

1. 启动steamcmd并下载KF2Server

接着上面的目录继续操作,忘了就直接cd /home/steamcmd

# 启动steam
./steamcmd.sh

等待进度条....

# 匿名登录
login anonymous

# 设置安装目录
force_install_dir ./steamapps/KF2Server/

# 下载KF2服务器
app_update 232130 validate

实际安装目录也就是/home/steamcmd/steamapps/KF2Server
安装或者升级命令:app_update [steam app id]
steam app id 查询
需要升级的话,在命令行加上升级参数: validate

Error! App '232130' state is 0x202 after update job.网上一搜好像是说磁盘空间不够。
含泪扩容......(穷逼如是说

开始下载了....

总大小23G左右,慢慢下吧......
下载完使用quit退出窗口。

三、服务器房间配置

1. 默认配置启动

输入以下命令,启动KF2:

/home/steamcmd/steamapps/KF2Server/Binaries/Win64/KFGameSteamServer.bin.x86_64 kf-bioticslab?AdminPassword=123

/home/steamcmd/steamapps/KF2Server/Binaries/Win64是你自己的游戏安装路径

KFGameSteamServer.bin.x86_64 是启动文件

kf-bioticslab 游戏启动默认地图(生命学实验室)

AdminPassword web管理页面密码,账号是admin

问题一

解决:

运行命令strings /usr/lib64/libstdc++.so.6 | grep GLIBC检查动态库,发现确实没有> GLIBCXX_3.4.21GLIBCXX_3.4.20版本,需要升级gcc

这个问题因人而异,可自行[网上搜索资料解决]
(https://blog.csdn.net/CV_Jason/article/details/84034220)

第一次启动后会在/home/steamcmd/steamapps/KF2Server/KFGame/Config/目录下生成LinuxServer-KFxxxxx.ini等文件。

这是启动方式只是临时启动,关闭窗口后游戏也随之关闭了,也方便自己调试地图插件等是否能用。

配置文件配置好并且启动了服务,客户端怎么连接呢?

在杀地板客户端,shift+~打开控制台输入open [目标IP]]:7777,如果连接有密码,会提示你输密码,如若在确定服务正常启动的情况下输入回车后****没任何反应,看下服务器的安全组和防火墙是否把相应的端口开放。****

eg: open 192.168.1.1:7777

默认端口7777没改的话,可以不输端口

相关端口:

PortDefaultProtocolWhat this option controls
Game Port7777UDPThis is the main port the game will send connections over
Query Port27015UDPThis port is used to communicate with the Steam Master Server
Web Admin8080TCPThis port is used to connect to your servers web admin page (if turned on)
Steam Port20560UDP
NTP Port123UDPWeekly Outbreak Only - Internet time lookup to determine correct Outbreak

wiki.killingfloor2.com_ports

2. 配置文件相关

需要关注的一些文件配置(/home/steamcmd/steamapps/KF2Server/KFGame/Config/):

  1. KFWeb.ini
[IpDrv.WebServer]
# web页面访问端口
ListenPort=8080
# 远程网页管理
bEnabled=true

WebAdmin默认是关闭的,这里把它开启,访问地址就是 [IP地址]:[默认是8080]

  1. LinuxServer-KFEngine.ini

[URL]
# 想要多开服务的话,各端口都要改
# 游戏运行端口
Port=7777

# 游戏通讯端口
PeerPort=7778

# 订阅创意工坊
# 这一栏配置默认没有,需手动加
[OnlineSubsystemSteamworks.KFWorkshopSteamworks]
# 每一行就是一个创意工坊的ID
# 找到地图ID以后添加好,然后就添加地图名到LinuxServer-KFGame.ini文件地图循环属性里就可以了
# Killing Pool
ServerSubscribedWorkshopItems=1210703659
# KF-China_Temple_insane_edit
ServerSubscribedWorkshopItems=891319214  

  1. LinuxServer-KFGame.ini

这个文件涉及到的参数很多,也是服务器最基本,最重要的参数。包括了,服务器难度,服务器波数,服务器密码,管理员密码,服务器名字,地图循环设置(就是一局打完后地图的投票列表)。

[Engine.GameInfo]
MaxPlayers=6
# 游戏难度 0(普通)1(困难)2(自杀)3(人间炼狱)
GameDifficulty=3.000000

[Engine.AccessControl]
# 网页管理web密码 默认为空
AdminPassword=xxx
# 房间密码 默认为空
GamePassword=xxx



[KFGame.KFGameInfo]
# 对游戏波数进行设置 0(4波)1(7波)2(10波)
GameLength=2

# 开启将使用你自定义的地图循环列表,而不是官方默认的。开启(True)关闭(False)。只可以使用True(开启)False(关闭)来作为结尾。官方默认是开启(True),所以这项其实你完全不用动。知道有个这玩意就可以了。
bUseMapList=True
ActiveMapCycle=0

# 地图循环列表
GameMapCycles=(Maps=("KF-KillingPool","KF-China_Temple_insane_edit","KF-GiantCityRuins_Original","---------------------------------","KF-Airship","KF-AshwoodAsylum","KF-Biolapse","KF-Bioticslab","KF-BlackForest","KF-BurningParis","KF-Catacombs","KF-ContainmentStation","KF-Desolation","KF-DieSector","KF-Dystopia2029","KF-Elysium","KF-EvacuationPoint","KF-Farmhouse","KF-HellmarkStation","KF-HostileGrounds","KF-InfernalRealm","KF-KrampusLair","KF-Lockdown","KF-MonsterBall","KF-Nightmare","KF-Nuked","KF-Outpost","KF-PowerCore_Holdout","KF-Prison","KF-Sanitarium","KF-Santasworkshop","KF-ShoppingSpree","KF-Spillway","KF-SteamFortress","KF-TheDescent","KF-TragicKingdom","KF-VolterManor","KF-ZedLanding"))

# 可以使用[imgur](https://imgur.com/register?redirect=%2F)提供的免费图片外链服务或者其他图床服务,也可以自己用nginx做一个文件服务。
# 这个是公告图片地址 (图片大小必须为512x256像素大小的PNG图片,和原图格式大小相同)
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下方的标题
ClanMotto=This is the clan motto.

[Engine.GameReplicationInfo]
# 服务器浏览时看到房间名字
ServerName=Killing Floor 2 Server
ShortName=KFServer

3. 创建启动脚本

这启动脚本什么的写不写无所谓,启动也就是一行命令的事,

  • *脚本位置放哪随意,我这里放在steam安装目录下。*
cd /home/steamcmd/
  • *创建kf2_start.sh文件*
touch kf2_start.sh
  • *给kf2_start.sh添加可读可执行权限*
chmod +rx kf2_start.sh
  • *编辑脚本内容,按 i 进入编辑模式*
vim kf2_start.sh
  • *以下是脚本内容*
#!/bin/sh
# start kf2server
nohup /home/steamcmd/steamapps/KF2Server/Binaries/Win64/KFGameSteamServer.bin.x86_64 kf-bioticslab?GameDifficulty=3?GameLength=2?GamePassword=2333 >/dev/null 2>&1 &

填完后 shift+冒号 进入底行模式 ,输入wq,按enter键保存退出。

kf-bioticslab 默认启动地图(生命学实验室)

后面的启动参数可加可不加,配置文件也可以配置。

GameDifficulty 游戏难度设置 0(普通) 1 (困难) 2 (自杀) 3(人间炼狱)

GameLength 游戏波数 0(4波 ) 1(7波) 2(10波)

GamePassword 房间密码

查看KF进程

ps -ef | grep KFGame

Dedicated Server (Killing Floor 2) wiki

四、服务多开

拷贝多份配置文件,更改****配置文件运行端口****就好了。

提供下我的配置参考下

链接:https://pan.baidu.com/s/1bG2p7DCLAsyaQnYmbuhTxg 

提取码:t41f 

复制这段内容后打开百度网盘手机App,操作更方便哦

更改端口:

  • KFWeb.ini
[IpDrv.WebServer]
ListenPort=8081
  • LinuxServer-KFEngine.ini
[URL]
Port=8888
PeerPort=8889

在安装目录下KFGame/Config/新建几个文件夹,

使用-ConfigSubDir参数启动多个服务。

ConfigSubDir 找的是相对路径的配置,会自动找到KFGame/Config/目录下的文件夹,后面跟上文件夹名称就行了

看下配置文件夹里的内容:

举几个启动例子:

启动服1

nohup /home/steamcmd/steamapps/KF2Server/Binaries/Win64/KFGameSteamServer.bin.x86_64 KF-China_Temple_insane_edit -ConfigSubDir=kf2server-HellonEarth-Long >/dev/null 2>&1 &

启动服2

nohup /home/steamcmd/steamapps/KF2Server/Binaries/Win64/KFGameSteamServer.bin.x86_64 KF-China_Temple_insane_edit -ConfigSubDir=kf2server-Suicidal-Long >/dev/null 2>&1 &

注意看-ConfigSubDir后面的值不一样

  • nohup .... >/dev/null 2>&1 & 可以使服务后台运行,并且忽略日志输出
  • /home/steamcmd/steamapps/KF2Server/Binaries/Win64/KFGameSteamServer.bin.x86_64 我自己的KF2的执行路径/home/steamcmd/steamapps/KF2Server这里可能不太一样,后面的是一样
  • KF-China_Temple_insane_edit 房间默认地图
  • -ConfigSubDir=kf2server-Suicidal-Long 指定不同的配置文件启动

五、服务重启

找到进程,然后杀掉,重新用命令启动就好了。

ps -ef | grep KFGame`查询进程,查到之后根据运行的名称杀进程`kill [pid]

这个pid就是使用查询命令查出来的****数据的第二列****。黄框的数据。

然后再执行你自己的****启动命令****就好了。

六、创意工坊订阅

捯饬自己的服务器,当然是为了能够玩创意工坊里的第三方图了。

TODO

0

评论区