新开放世界僵尸游戏
《七日杀》是由The Fun Pimps Entertainment研发的集合第一人称射击、恐怖生存、塔防与角色扮演要素于一身的新开放世界僵尸游戏。
这次的战争不仅带来了死伤无数还带来了一些未知的病毒将地球上的许多人类变成了僵尸。玩家将扮演在美国亚历桑纳地区的一名幸存者,那里是地球最后的没有受到污染的地方,玩家将为了生存而战,同时探究整个事件背后的真相。
自主搭建架设七日杀服务器
七日杀是开源游戏 所以可以搭建属于自己的专属服务器
目录
架设前准备:
开始架设服务器:
基础配置Linux服务器:
下载steamCMD:
开始配置七日杀服务器:
配置七日杀服务器设置内容:
配置防火墙及端口:
启动服务器:
关闭服务器指令:
文件路径说明:
管理服务器:
服务器可能的环境配置:
配置服务器的swap:
检查安装SteamCmd运行所需环境:
架设前准备:一台高性能的服务器
服务器系统镜像OS:Ubuntu 20 X64位系统,服务器推荐配置至少为8核8G以上!
下载SteamCMD
正版STEAM的七日杀游戏
如果懒得设置用户,可直接SU/SUDO启用超级管理员进行所有操作(不推荐)
服务器的选择:个人建议使用BGP线路的服务器
什么是BGP线路呢?北网通,南电信这句话你可能有听过,就是字面理解的意思,BGP线路就是电信、网通、移动三线合一个IP,无需设置接口,自动分配最优网络线路,在稳定性和速度上更有优势,可保证服务器的稳定运行,但是相比单线/双线来说,BGP的成本也会更高,不会存在 电信玩家卡 网通 移动顺畅,网通顺畅 电信 移动玩家卡的种种情况.无需设置接口,自动分配最优网络线路,在稳定性和速度上更有优势
另外,像theisle、CSGO、方舟等这些steam游戏来说,游戏的帧数和渲染效果都是很高的,只有把显示效果、游戏帧数做到更好,才能给玩家更好的游戏体验,所以服务器的CPU选择也是很关键的,对于高品质画面游戏,支持睿频加速、多线程技术、动态加速频率的CPU会更加合适,避免出现卡顿的情况。i9系列高主频服务器就挺合适。
玩七日杀的人应该都知道,服务器在海外,所以延迟会比较高,延迟高意味着游戏加载会比较慢,这也是为什么有的人会自己搭建服务器的一个原因,个人搭建服务器多数用的都是国内的服务器,延迟低,加载更快,游戏体验感更好。
这就延伸出一个问题,并不是国内的所有机器都是延迟很低,也需要结合机房环境和服务器带宽,机房不同,服务器的稳定性和安全性都不同,带宽资源也不一样,steam类游戏帧数高比较占用带宽,玩家人数多,如果是带宽不足,延迟就会更高
在上面有提到steam类的游戏帧数都挺高的,帧数越高,对服务器的硬盘配置要求也越高,现在市面上SSD固态硬盘比较常用,运行速度快,i9-9900K的存储容量512G M.2固态硬盘。游戏行业同行竞争大,容易遭受同行的攻击在防御上可以根据自己的需求去做选择。
开始架设服务器:基础配置Linux服务器:配置管理员密码:sudo passwd
下载steamCMD:进入超级用户模式输入:su
sudo apt install steamcmd
(若出现错误无法找到包steamcmd请更新如下代码:)
首先,需要添加multiverse到我的/etc/apt/sources.list:
deb /d/file/gt/2023-09/pzof0xnquzm xenial main universe multiverse
deb /d/file/gt/2023-09/pzof0xnquzm xenial-updates main universe multiverse
deb /d/file/gt/2023-09/pzof0xnquzm xenial-security main universe multiverse
之后,添加i386体系结构:
sudo dpkg --add-architecture i386
最后apt-get update就可以安装它了
sudo apt-get install steamcmd
开始配置七日杀服务器:更新代码:steamcmd
登录匿名用户:Steam>login anonymous(推荐如果不成功尝试steam用户登录)
steam用户登录:login <账号> <密码>
# 如果设置了安全令牌,会让你输入一次安全令牌Code
(可选)force_install_dir ~/7DaysToDieServer # 设置服务端安装目录
下载七日杀服务器端代码:app_update 294420
退出SteamCmd模式:exit
切换到root根目录:cd~
查看隐藏目录:la
找到打开.steam文件夹输入如下代码:
cd .steam/
cd steamApps/
cd common/
cd 7DaysToDieServer #这里就是七日杀服务端的所有文件内容!
配置七日杀服务器设置内容:编辑七日杀服务器配置文件 :
vim serverconfig.xml # 编辑配置文件
**按insert键或I键进入编辑模式**wq保存并退出!如果实在不会可以用nano或者其他编辑器!
以下是XML文件的部分翻译,可以根据自己的需要自行修改,推荐做好备份!注意:修改Value=之后的内容!
关于XML文件内容的官方WIKI百科内容——可以浏览器搜索
<property name="ServerName value="JonasLu/EN/CN/FR/Easy服务器名字"/>
<property name="ServerPort" value="26900"/> #默认26900
<property name="ServerPassword" value="服务器登入密码"/>
<property name="ServerWebsiteURL" value="www.jonaslu"/>服务器网址
<property name="ServerMaxPlayerCount" value="8"/> #最大玩家数 默认8
<property name="ServerDescription" value="关于服务器描述"/>
<property name="GameWorld" value="Navezgane"/> #服务器世界名默认Navezgane
<property name="GameName" value="My Game"/> #存档名字
<property name="GameDifficulty" value="2"/> #游戏难度
<property name="GameMode" value="GameModeSurvivalMP"/> #游戏模式,默认GameModeSurvivalMP
<property name="ZombiesRun" value="0"/> #僵尸行走,默认值0,白天走晚上跑 1为不跑 2为一直跑
<property name="DayNightLength" value="60"/> #游戏内一天在现实世界(三次元)时长(单位分钟min)
<property name="DayLightLength" value="18"/> #游戏内白天的时间(单位小时h)
<property name="PlayerKillingMode" value="1"/> #玩家之间能造成的伤害,默认1.敌人0.无2.非同盟3.所有人
<property name="DropOnDeath" value="2"/> #玩家死亡掉落,默认0.全部 1.工具栏 2.背包 3.删除所有东西
<property name="MaxSpawnedZombies" value="60"/> #服务器最大僵尸生成量
<property name="MaxSpawnedAnimals" value="50"/> #服务器最大生物生成量
<property name="AirDropFrequency" value="72"/> #空投循环生成时间(单位分钟min)
<property name="AirDropMarker" value="true"/> #是否空投 默认true
如果对于这里实在不理解或者觉得麻烦的小伙伴,可以下载下方由JonasLu站主提供的编辑好的TXT文件,将后缀改为.xml后替换原来的XML文件即可!(注意更改文件中的服务器名字等等)
serverconfig预配置XML文件下载
此文件提供网页监控和telnet连接你的服务器,相关的代码如下:
你的服务器公网IP地址:8080
#例如浏览器输入140.210.20.188:8080即可实时监控服务器日志
telnet 你的服务器公网IP地址 8081
password 1234567890
#Telnet连接并控制服务器
配置防火墙及端口:如果你发现开了服务器没有显示或者无法连接,你可能还需要配置防火墙和端口规则。云服务器请在相应平台的安全组页面添加出入站规则,如果没有特殊需要可以放通全部!并且关闭防火墙!(有一定风险,服务器内有重要资料不推荐!)
端口 | 协议 | 说明 |
8080 | TCP | 远程Web控制台(不需要可以不放通) |
8081 | TCP | Telnet端口(这个可以不放行,本地连接) |
8082 | TCP | 服务器管理工具端口! |
26900/26902 | UDP | 客户端端口! |
按上表格放通端口
Telnet可以不放行,直接在服务器中使用telnet ip 8081即可登录telnet。
要用远程telnet连接,请在serverconfig.xml中设置好TelnetPassword后,再进行连接
启动服务器:在上述文件配好之后,在七日杀的服务端根目录下输入:
screen -S 7
#创建一个screen(防止在ssh断开连接后服务端自动关闭)如果没有可以下载!
下载安装screen:
# RedHat/CentOS
yum install -y screen
--------------------------
# Ubuntu/Debianapt install screen //我们这里选择这个代码
./startserver.sh -configfile=serverconfig.xml
#创建Screen之后,输入以上代码正式启动服务器!
服务器启动成功之后,按住Ctrl + A +D 将screen加入后台运行!这样就不会关闭服务器了。之后你就可以开始玩啦!
当你需要回到这个sreen页面时,使用如下指令。
screen -ls # 查看screen,记下7的编号
screen -r 7 #查看记录为7的编号
关闭服务器指令:screen -r 7
Ctrl +C
#返回相应的screen之后Ctrl +C即可!
文件路径说明:# 路径取决于你自己的设置位置,大致路径如下
~/.../7DaysToDieServer # 七日杀服务端根目录
~/.../7DaysToDieServer/Data/Worlds # 七日杀服务端地图目录
~/.../.local/share/7DaysToDie/Saves # 七日杀服务端存档目录(重要)
~/.../7DaysToDieServer/7DaysToDieServer_Data # 七日杀服务器日志输出目录
~/.../7DaysToDieServer/Mods # Mods目录,需要自己创建
~/.../.local/share/7DaysToDie/Saves/serveradmin.xml
# 管理员配置文件
~/.../7DaysToDieServer/serverconfig.xml # 服务器配置文件
(重要)
管理服务器:在服务器中安装telnet。(也可以用Xshell或FTP的远程连接)
# Ubuntu/Debian系统
netstat -a | grep telnet # 检测telnet的rpm包是否安装
sudo apt-get install xinetd telnetd # 若未安装,则安装telnet
telnet 你的 8081 #登录服务器telnet
管理员的基本指令:
admin add <玩家名> <权限级别> # 给予玩家管理权限(最高级别为0)
admin remove <玩家名> # 移除玩家的管理权限
admin update <玩家名> <权限等级> #提高管理权限级别
#建议先在telnet用上述指令给自己管理权限
#然后就可以直接在游戏中,按F1使用下面的指令了
dm #打开或关闭debug模式
ban <玩家名> <时间> # 禁止玩家登陆服务器一段时间(minutes, hours, days, weeks, months, years)
kill <id/name> # 杀死指定玩家
listplayers lp # 获取在线玩家信息
give <id/name> <物品> <数量> # 给玩家刷某样东西
shutdown # 关闭服务器
say <信息> # 以server的名义广播一条信息
服务器可能的环境配置:配置服务器的swap:linux系统的swap空间类似windows系统的虚拟内存。如果你的云服务器内存小于4G,或者卡顿严重,那你就必须设置一个swap空间,否则启动服务器时会因为内存不足导致进程关闭而终止服务器。
使用swapon命令可以检查系统是否已经配置过swap,一般云服务器都没有提前设置swap。
以下所有的这些操作都在root中进行//su
swapon -s # 如果该命令没有返回出结果,则代表该系统尚未配置过swap。
df -h # 检查可用的存储空间
如果没有,按如下步骤创建Swap文件。一般建议swap大小设置为自己物理内存相同或两倍。我这里设置了8G。
# 这些操作要在root中进行。
sudo fallocate -l 8G /swapfile # 请根据自己情况修改swap大小
ls -lh /swapfile
sudo chmod 600 /swapfile # 更改swap文件的权限,否则会有很大的安全隐患
ls -lh /swapfile # 然后检查是否设置完成
启用swap文件
sudo mkswap /swapfile
sudo swapon /swapfile
# 确认一下设置是否已经生效
swapon -s
free -m
前面设置的swap会在重启后失效,通过修改fstab让配置永久生效。
sudo vim /etc/fstab
按 i 进入输入模式,在文件末尾加入下面这行内容。
/swapfile swap swap sw 0 0
按esc退出输入模式,输入 :wq 保存退出。
swappiness参数决定了系统将数据从内存交换到swap空间的频率。该数值越接近于0,系统越倾向于不进行swap,最大限度使用物理内存。数值越接近100,越倾向于使用swap,而过多的使用swap可能导致服务器运行效率缓慢。ubuntu系统的默认推荐值是60,这里我为了保证服务器运行效率,建议设置为10。
cat /proc/sys/vm/swappiness # 查看当前的swappiness
sudo sysctl vm.swappiness=10 #修改swappiness为10
编辑sysctl配置文件,使其永久生效
sudo vim /etc/sysctlnf
按 i 进入输入模式,将以下内容粘贴到文件末尾:
vm.swappiness = 10
按esc退出输入模式,输入 :wq 保存退出。
检查安装SteamCmd运行所需环境:# 这些操作要在root中进行,根据你的系统选择不同指令。
# Ubuntu/Debian 64位
sudo apt -y install lib32gcc1
# RedHat/CentOS 32位
sudo yum -y install glibc libstdc++
# RedHat/CentOS 64位
sudo yum -y install glibc.i686 libstdc++.i686