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.pngServerMOTD是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