帮助中心

这里有最新的使用文档和教程

< 返回

服务器如何搭建七日杀游戏,七日杀服务端搭建7day

2023-04-27 20:35 作者:31IDC 阅读量:3130 所属分类:Linux系统

服务器如何搭建七日杀游戏,七日杀服务端搭建,七日杀游戏搭建,7 days to die游戏搭建。

服务器如何搭建七日杀游戏,七日杀服务端搭建

准备工作

首先你需要拥有一个云服务器。七日杀服务端的建议最低配置是2core 4G,内存8G及以上最佳。建议安装Centos7 或者Ubuntu 系统。

 

1.设置swap

这些操作都在root中进行。

 

linux系统的swap空间类似windows系统的虚拟内存。如果你的云服务器内存小于4G,比如只有2G内存,那你就必须设置一个swap空间,否则启动服务器时会因为内存不足导致进程killed。

 

使用swapon命令可以检查系统是否已经配置过swap,云服务器一般都没有提前设置swap。

 

swapon -s # 如果该命令没有返回出结果,则代表该系统尚未配置过swap。

df -h # 检查可用的存储空间

如果没有,按如下步骤创建Swap文件。一般建议swap大小设置为自己物理内存相同或两倍。我这里设置了4G。

 

# 这些操作要在root中进行。

sudo fallocate -l 4G /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 保存退出。(对vim操作不熟悉的,可以搜索“vim指令”进一步学习)

 

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/sysctl.conf

按 i 进入输入模式,将以下内容粘贴到文件末尾:

 

vm.swappiness = 10

按esc退出输入模式,输入 :wq 保存退出。

 

2.安装screen

安装screen,后面开服时会用到。使用screen可以让服务器进程在后台运行,而不会因为远程连接的断开而停止进程。

 

# RedHat/CentOS

yum install -y screen

 

# Ubuntu/Debian

apt install screen

 

3.安装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

4.创建一个用户

不建议使用root系统进行后面的操作,这里我们为steam创建一个专门的用户。

 

useradd -m steam # 新建一个名为steam的用户

passwd steam # 为用户steam设置密码

su - steam # 切换至新建的steam用户。改成root,可以切换回root用户

 

steamCMD与七日杀服务器端

1.下载并安装SteamCMD

确定你当前在你新建的steam用户中,如果不是,请使用su - steam切换用户。目前版本steamcmd必须直接解压在 ~ 目录下,否则会报错。

 

# 这些操作要在刚才创建的steam用户中进行,请不要使用root用户!

 

#cd至~目录

cd ~

 

# 下载Linux系统专用的SteamCMD

wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz 

 

# 解压

tar -zxf steamcmd_linux.tar.gz

运行SteamCmd

 

# 运行steamcmd

./steamcmd.sh

首次运行steamcmd,他会自己下载更新自己。等出现steam>时,就可以对steamcmd进行操作啦。

 

2.登录steam账号

你可以使用steam账号登录,或匿名登录login anonymous。但是七日杀必须要steam登录才可以下载服务端。

 

login <用户名> <密码>

# 如果设置了安全令牌,会让你输入一次安全令牌

3.下载七日杀服务端

force_install_dir ~/7DaysToDieServer # 设置服务端安装目录

app_update 294420 validate # 下载七日杀服务端,294420是七日杀的编号

 

# 下载会持续一段时间,请耐心等待

等到出现如图所示的 Success! App '294420' fully installed.之后便可以退出steamcmd了。

 

quit #退出SteamCmd

4.配置服务端

# 进入七日杀服务端根目录

cd ~/7DaysToDieServer

# 编辑配置文件

vim serverconfig.xml

下面翻译了部分参数。

 

<property name="ServerPort"               value="26900"/> <!-- 默认26900 -->

<property name="ServerName"               value="服务器名"/>

<property name="ServerPassword"           value="服务器登入密码"/>

<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"/> <!-- 游戏难度 默认难度是2 -->

<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"/> <!-- 玩家之间能造成的伤害,0.禁止杀戮 1.只能杀死盟友 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 -->

<property name="EACEnabled"                 value="false"/> <!-- #反作弊,默认true,开启可以防止玩家作弊,同时也会使部分mod不可使用。 -->

<property name="TelnetEnabled"              value="true"/> <!-- 是否开启Telnet -->

<property name="TelnetPort"                 value="8081"/> <!-- Telnet端口 -->

<property name="TelnetPassword"             value="mdzz"/> <!-- #Telnet密码 -->

 

5.配置防火墙

还需要在防火墙放行以下端口,才可让服务器正常运转。阿里云请在平台的安全组页面添加规则,其他云平台可能有不同的安全组设置方式,大同小异。

 

端口 协议 说明

8080 TCP Web控制台

8081 TCP Telnet端口(这个建议不要放行)

8082 TCP 如果安装了Alloc的mods,这个端口可以展示地图

26900/26902 UDP 客户端通讯

Telnet建议不要放行,直接在服务器中使用telnet localhost 8081即可登录telnet。

 

如果一定要用远程telnet连接,请务必在serverconfig.xml中设置好TelnetPassword后,再放行端口。该行为有很大的风险。

 

6.启动服务器

创建一个名为7DayServer的screen,可以让服务器在后台运行,断开远程连接也不终止进程。

 

screen -S 7DaysServer

启动服务器

 

./startserver.sh -configfile=serverconfig.xml

按住Ctrl + A +D 将screen加入后台运行

 

当你需要回到这个sreen页面时,使用如下指令。

 

screen -ls # 查看screen,记下7DaysServer的编号

screen -r <7DaysServer的编号>

补充

1.几个重要路径和文件

路径

 

# 路径取决于你的设置的安装位置,如果完全按照本文操作,那么路径如下

~/7DaysToDieServer # 七日杀服务端主目录

~/7DaysToDieServer/Data/Worlds # 七日杀服务端地图目录

~/.local/share/7DaysToDie/Saves # 七日杀服务端存档目录

~/7DaysToDieServer/7DaysToDieServer_Data # 七日杀服务器日志输出目录

~/7DaysToDieServer/Mods # Mods目录,需要自己创建

文件

 

~/.local/share/7DaysToDie/Saves/serveradmin.xml # 服务器配置文件

~/7DaysToDieServer/serverconfig.xml # 管理员配置文件

2.添加mod

想添加mod的同学看这里。

 

cd ~/7DaysToDieServer # cd至七日杀服务端主目录

mkdir Mods # 创建mods文件夹

服务器的mod和自己平时玩的mod基本通用,跟在自己游戏中装mod一样,将mod文件放入Mods文件夹中即可。

 

上传mods到服务器上的方法有很多,比如Xshell中可以使用lrzsz上传。

 

# 以下操作要在root用户中进行

 

# Ubuntu/Debian

sudo apt-get install lrzsz

 

# RedHat/CentOS

yum  install lrzsz

安装zip/unzip 用于解压mod压缩包

 

# Ubuntu/Debian

apt-get install zip

 

# RedHat/CentOS

yum install zip unzip

上传mod文件,并解压。

 

# 使用su - steam,回到steam用户中继续操作

cd ~/7DaysToDieServer

rz #直接将mod的压缩包上传文件至linux

unzip <压缩包名> # 一般mod压缩包内自带Mods文件夹,直接解压即可

# 如果解压后路径不对,可以使用mv指令移动至Mods文件下

3.管理服务器

在服务器中安装telnet。(也可以用Xshell的远程telnet连接,这里不做赘述)

 

# RedHat/CentOS

rpm -qa telnet # 检测telnet的rpm包是否安装 

yum install telnet # 若未安装,则安装telnet

 

# Ubuntu/Debian

netstat -a | grep telnet # 检测telnet的rpm包是否安装 

sudo apt-get install xinetd telnetd # 若未安装,则安装telnet

telnet localhost 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 # 关闭服务器

31IDC - 12 年深耕海外 IDC 高端资源