Linx运行七日杀的服务相比Windows稳定而消耗内存更小。下面是部署方法:

安装的先决条件,你需要一个Steam的账号,网络有传不需要Steam也可以成功安装,由于酶试过,不保证。

升级系统

先来升级下系统

1
2
$ yum update
$ yum upgrade -y

创建账户

创建一个账户,这个账户是用于运行七日杀的,七日杀不允许直接root运行

1
2
$ adduser 7d2d
$ passwd 7d2d

设置防火墙

这里对应的端口26900是默认的,在后面的serverconfig.xml文件中有设定,所以这里开放了26900后面就不要修改了,如果需要别的端口在这步改。

1
2
3
$ firewall-cmd --zone=public --add-port=26900/tcp --permanent
$ firewall-cmd --zone=public --add-port=26900/udp --permanent
$ firewall-cmd --reload

安装SteamCMD支持库

1
$ yum install glibc.i686 libstdc++.i686 -y

开始部署

切换账号到开始创建的七日杀运行账号

1
2
$ su 7d2d
$ cd ~

获取Steam在Linux下的程序包

1
2
$ wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz
$ tar xf steamcmd_linux.tar.gz

进入Steam运行环境

1
$ ./steamcmd.sh

输入账号和密码进行登录

1
steam> login steam用户名 steam密码 // 例如 login a 123

在这里基于Steam的安全机制,会给你的邮箱或手机邮件,提示输入安全码,按照邮件中的安全码输入即可。

设定安装目录

1
steam> force_install_dir ./72d2

升级安装命令:app_update 这个命令包含了两个功能,安装或更新。

1
steam> app_update 294420 validate

这里的294420是七日杀服务器程序的ID。

接下来等待漫长的安装吧

请注意,这里最好将 app_update 294420 validate 多执行几次,直到提示无需更新为止。

设置配置文件

1
$ nano serverconfig.xml

如果需要修改,只需要修改里面的值即可

创建一个快速的升级脚本

如果说每次升级用命令很麻烦,这里可以一劳永逸,创建一个脚本来解决。

1
$ nano /home/7d2d/update_7d2d.txt

首先我们创建一个名字是update_7d2d.txt的文本文件;

接着我们把下面的内容丢进去(需要执行的命令行);

1
2
3
4
login 用户名 密码
force_install_dir ./7d2d
app_update 294420
quit

这样,以后服务器升级的命令会非常容易

1
2
$ cd ~
$ ./steamcmd.sh +runscript update_7d2d.txt

运行服务器

启动服务器

32位服务器

1
2
$ cd /home/7d2d/7d2d/
$ screen -dmS 7d2d ./7DaysToDieServer.x86 -configfile=serverconfig.xml -logfile 7DaysToDie_Data/output_log.txt $ @

64位服务器

1
2
$ cd /home/7d2d/7d2d/
$ screen -dmS 7d2d ./7DaysToDieServer.x86_64 -configfile=serverconfig.xml -logfile 7DaysToDie_Data/output_log.txt $ @
  • screen 这个命令的作用是在ssh的链接关闭后,仍然用进程来运行这个程序;

  • 如果没有装screen可以yum install screen安装一个;

  • screen -ls可以列出目前在后台运行的屏幕进程,用screen -r 进程号即可切换到这个屏幕,例子如下:

1
2
3
4
$ screen -list
There is a screen on:
3922.7d2d (Detached)
1 Socket in /var/run/screen/S-steam.

如果需要切换到这个屏幕,screen -r 3922

  • 如果你在开始创建的7d2d这个账号开了一个screen那么在切换或运行命令的时候同样要用su 7d2d将当前操作账号切换到7d2d这个账户上

serverconfig.xml

这可能是网络上最全面的配置说明了

只需要修改value中的值即可

property 默认值 可选项 备注
ServerPort 26900 服务器的端口号
ServerIsPublic true true/false 这个服务器是否注册到全球服务器,即是否开放
ServerName My Game Host 服务器名字
ServerPassword 服务器密码
ServerMaxPlayerCount 8 最大玩家并发数,一般个人PC 8G 20人
ServerReservedSlots 0 可设置权限的管理员数量
ServerReservedSlotsPermission 100 设置服务器同时允许几不同级别管理员在线
ServerAdminSlots 0 同时允许几个次级管理员在线
ServerAdminSlotsPermission 0 是否超权可以登录的管理
ServerDescription A 7 Days to Die server 服务器的描述信息,可以填一些你认为有用的
ServerWebsiteURL 服务器网站,一般不用设置
ServerDisabledNetworkProtocols UNET 禁用的网络协议,默认的UNET即可
GameWorld Navezgane Navezgane / Random Gen 游戏世界设置,默认是有限的Navezgane地图,也可以改为Random Gen,即随机无限地图
GameName My Game 游戏名字,如果上面填了Random Gen,这个名字将被用于随机种子生成
GameDifficulty 2 0-5 模式难度, 0=简单, 5=困难,填写0-5之间的数字
GameMode GameModeSurvivalMP GameModeSurvivalMP/GameModeSurvivalSP 游戏模式,MP(联网),SP(单机)(MP产生领地石效果)
ZombiesRun 0 0 =夜间狂暴,1 =永不狂暴,2 =始终狂暴 僵尸狂暴设置
BuildCreate false true/false 创造模式,默认关闭,开启后全体可创造
DayNightLength 60 游戏中24小时等于现实中多少分钟
DayLightLength 18 在游戏时间里,每天的阳光照射:默认白天18,夜间6
PlayerKillingMode 3 0 =无杀戮,1 =仅杀死盟友,2 =仅杀死陌生人,3 =杀死所有人 玩家杀戮设置
PersistentPlayerProfiles false true/false 是否拖入玩家单机资料,默认关闭,打开的话联网就完全失去了意义
PlayerSafeZoneLevel 5 如果玩家的等级在这个级别以下,那么他出生复活时周围不会有僵尸
PlayerSafeZoneHours 5 这个安全区存在的时间,是游戏中的时间
ControlPanelEnabled false true/false 启用/禁用控制面板,默认关闭
ControlPanelPort 8080 控制面板端口
ControlPanelPassword CHANGEME 网页控制端密码
TelnetEnabled true true/false 是否开启telnet登录
TelnetPort 8081 telnet端口
TelnetPassword telnet链接密码
AdminFileName serveradmin.xml 服务器管理文件名,此文本内记录玩家白名单和黑名单以及管理员
DropOnDeath 2 0 =一切,1 =仅腰带,2 =仅背包,3 =全部删除 死亡掉落设置
DropOnQuit 0 0 =不掉落,1 =一切,2 =仅腰带,3 =仅背包 退出掉落
BloodMoonEnemyCount 8 在每个玩家的血月里产生的僵尸数量,第七日每个玩家刷新多少僵尸
EnemySpawnMode true true/false 启用/禁用僵尸刷新,默认开启,关掉就没有僵尸了
EnemyDifficulty 0 0 =无法感应,1 =能感应 僵尸能不能隔墙感应到玩家
BlockDurabilityModifier 100 游戏中各种方块的强度
LootAbundance 100 刷新物资的丰富度
LootRespawnDays 30 游戏中多少天刷新一次物资
LandClaimSize 41 领地石保护大小
LandClaimDeadZone 30 领地石范围不能放任何东西(除非你是与其他玩家的朋友)
LandClaimExpiryTime 3 玩家离线多少天不再保护
LandClaimDecayMode 0 0 =线性,1 =指数,2 =完全保护,直到过期 离线玩家领地石衰落
LandClaimOnlineDurabilityModifier 4 0表示无敌(不会损坏)。 默认值为4 当玩家在线时,领地石保护硬度增加了多少
LandClaimOfflineDurabilityModifier 4 0表示无敌(不会损坏)。 默认值为4 当玩家离线时,领地石硬度会增加
AirDropFrequency 72 0 = 从不 空投,在游戏时间里多少小时一次
AirDropMarker false true/false 是否在地图上开启空头标志
MaxSpawnedZombies 80 丧尸刷新数(超过80个)可能会导致服务器运行在较差的帧率,这将影响客户的延迟和流畅度
MaxSpawnedAnimals 50 服务器生成动物的数量
EACEnabled true true/false Eac校验,如果关了外挂就进来了
HideCommandExecutionLog 0 0 =显示所有内容,1 =仅从Telnet / ControlPanel隐藏,2 =也隐藏远程游戏客户端,3 =隐藏所有内容 隐藏命令执行记录
MaxUncoveredMapChunksPerPlayer 131072 覆盖每个玩家在游戏地图上可以发现多少块。 最大地图文件大小为512字节。 默认131072意味着最多32公里2可以随时发现
BedrollDeadZoneSize 15 死亡区域的大小,这个区域内不会产生僵尸,任何清除的睡眠者数量,触摸死板死亡区域将不会产生后
SaveGameFolder 存盘位置,linux版本默认是注释掉的,windows版可以设置