自建杀戮空间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.21
和GLIBCXX_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没改的话,可以不输端口
相关端口:
Port | Default | Protocol | What this option controls |
---|---|---|---|
Game Port | 7777 | UDP | This is the main port the game will send connections over |
Query Port | 27015 | UDP | This port is used to communicate with the Steam Master Server |
Web Admin | 8080 | TCP | This port is used to connect to your servers web admin page (if turned on) |
Steam Port | 20560 | UDP | |
NTP Port | 123 | UDP | Weekly Outbreak Only - Internet time lookup to determine correct Outbreak |
2. 配置文件相关
需要关注的一些文件配置(/home/steamcmd/steamapps/KF2Server/KFGame/Config/
):
KFWeb.ini
[IpDrv.WebServer]
# web页面访问端口
ListenPort=8080
# 远程网页管理
bEnabled=true
WebAdmin默认是关闭的,这里把它开启,访问地址就是 [IP地址]:[默认是8080]
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
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
评论区