0x00:前言
本文是一篇在Linux操作系统平台下安装与设置七日杀专属服务器的教程。
博主在网上搜罗了一下,发现没有相关详细的教程,所以就随手将自己捣鼓的过程写下来。
需要准备的工具:
- 公网服务器 & 有公网IP的家庭网络
- 服务器系统:Ubuntu X64
- SteamCmd (安装教程)
- 博主建议使用配置在1H2G以上VPS进行架设
0x01:下载七日杀服务端文件
- 安装screen(Screen方便服主将服务端进程切至后台运行)
# RedHat/CentOS
yum install -y screen
# Ubuntu/Debian
apt install screen
为了您服务器的安全,本文强烈建议不要使用root用户开启服务端
- 为七日杀服务端创建用户
useradd -m dtd
- 切换到用户
su - dtd
- 运行SteamCmd
- 以个人steam账号登录steamcmd
由于在steam官方文档中,不允许用户通过匿名登录下载七日杀服务端,故本文使用博主的账号登录进行下载
login <账号> <密码>
- 设置服务端安装目录
force_install_dir ~/dtd
- 下载服务端文件
app_update 294420 validate
下载大概会持续30分钟或者更多(具体时间根据每个人服务器的带宽而定)( ̄┰ ̄*)
所以在接下来时间就没你什么事情了啦(~ ̄▽ ̄)~。
等到出现如图所示的 Success! App '294420' fully installed.之后便可以退出steamcmd了。
如果出现如图 Error! App '294420' state is 0x402 after update job. 则只需要再输入一次下载指令继续下载即可。
- 退出SteamCmd
quit
0x02:编译运行环境
由于七日杀服务端使用的GLIBCXX和GLIBC库比较新,是有些Linux发行版本无法直接通过包管理进行安装的,所以需要单独进行编译安装。
以下操作全程在root用户下进行
①.安装GLIBC_2.15
- 查看当前Linux现有的GLIBC包版本
strings /lib64/libc.so.6 |grep GLIBC
#查看当前glibc版本
- 下载GLIBC_2.15源码包
cd /usr/src/
wget http://mirror.bjtu.edu.cn/gnu/glibc/glibc-2.15.tar.gz
wget http://mirror.bjtu.edu.cn/gnu/glibc/glibc-ports-2.15.tar.gz #glibc插件
- 解压
tar zxvf glibc-2.15.tar.gz
tar zxvf glibc-ports-2.15.tar.gz
mv glibc-ports-2.15 glibc-2.15/ports
mkdir build
cd build
- 编译安装
../glibc-2.15/configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin
make -j4
make install
- 验证是否安装成
strings /lib64/libc.so.6 |grep GLIBC
②.安装GLIBCXX_3.4.15
- 查看当前Linux现有的GLIBCXX包版本
strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX
- 下载libstdc++包
cd /usr/src/
#进入src目录
#32位Linux下载
wget http://ftp.de.debian.org/debian/pool/main/g/gcc-4.7/libstdc++6_4.7.2-5_i386.deb
#解压
ar -x libstdc++6_4.7.2-5_i386.deb && tar xvf data.tar.gz
#64位Linux下载
wget http://ftp.de.debian.org/debian/pool/main/g/gcc-4.7/libstdc++6_4.7.2-5_amd64.deb
#解压
ar -x libstdc++6_4.7.2-5_amd64.deb && tar xvf data.tar.gz
我们会发现其实在安装GCC时,libstdc++.so.6已经是存在的了,于是直接copy一份,创建软链就好了。
- 拷贝新的libstdc++.so.6文件,并创建软链
###################32位Linux的操作###################
cd usr/lib/i380-linux-gun
#复制新的libstdc++.so.6文件
cp libstdc++.so.6.0.17 /usr/lib
cd /usr/lib
#删除原来的软链
rm -f libstdc++.so.6
#创建新的软链
ln -s libstdc++.so.6.0.17 libstdc++.so.6
###################64位Linux的操作###################
cd usr/lib/x86_64-linux-gnu/
#复制新的libstdc++.so.6文件
cp libstdc++.so.6.0.17 /usr/lib64/
cd /usr/lib64/
#删除原来的软链
rm -f libstdc++.so.6
#创建新的软链
ln -s libstdc++.so.6.0.17 libstdc++.so.6
#####################################################
#检查软链情况
ll libstdc*
- 检查安装是否成功
strings /usr/lib/libstdc++.so.6 | grep GLIBCXX #32位Linux查看方式
strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX #64位Linux查看方式
检查发现GLIBCXX_3.4.15已经安装成!
0x03:配置服务端
经过以上的过程,你的七日杀Linux服务器已经基本搭建完成了(已经可以直接运行了)!
接下来修改serverconfig.xml来个性化自己的服务器!
该文件存放在七日杀服务端的目录下
cd ~/dtd/
#进入七日杀服务端根目录o(* ̄▽ ̄*)o
#安装目录不是绝对的,每个人安装路径可能不一样
#如果全程跟我步骤,则这个目录的妥妥的一样!o(* ̄▽ ̄*)o
vim serverconfig.xml
#按insert键或I键进入编辑模式
以下为配置文件中各项的相关注释
- 首先是服务器名、服务器端口以及服务器密码等
<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"/> #游戏难度
<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
- 玩家安全区相关
<property name="PlayerSafeZoneLevel" value="5" /> #当玩家等级或玩家人数小于一定值时为玩家创建的安全区大小
<property name="PlayerSafeZoneHours" value="5" /> #安全区时间(单位小时h)
- EAC反作弊,设置是否开启EAC(注:开启EAC有些打了中文补丁的玩家会因为文件验证不过关而进不来服务器)
<property name="EACEnabled" value="false"/> #默认true,建议false
- 服主管理相关
#网页控制台相关
<property name="ControlPanelEnabled" value="true"/> #是否开启网页控制台
<property name="ControlPanelPort" value="8080"/> #网页控制台端口
<property name="ControlPanelPassword" value="mdzz"/> #网页控制台密码
#Telnet控制相关
<property name="TelnetEnabled" value="true"/> #是否开启Telnet
<property name="TelnetPort" value="8081"/> #Telnet端口
<property name="TelnetPassword" value="mdzz"/> #Telnet密码
#管理员档案
<property name="AdminFileName" value="serveradmin.xml"/> #管理员steam相关信息
将以上信息设置完成后,保存文件就可以开启自己专属的服务器啦。
另外,不习惯使用Vim编辑器的小伙伴可以通过WinSCP连接服务器。将serverconfig.xml下载到本地,通过windows记事本进行编辑(#^.^#)。
注:
默认情况下服务端的存档位置(使用root启动服务端)在/root/.local/share/7DaysToDie/
非root用户启动服务端则在
~/.local/share/7DaysToDie/
0x04:正式启动服务器
经过长时间的奋斗,我们的服务端终于可以启动啦
- 设置防火墙放行相关端口
在官方文档中,要求服务器防火墙放行以下端口
#TCP
8080 #Web控制台
8081 #Telnet端口
8082 #如果安装了Alloc的mods,这个端口可以展示地图
26900 #客户端通讯
#UDP
26900 #客户端通讯
26901 #客户端通讯
26902 #客户端通讯
- 创建一个screen(防止在ssh断开连接后服务端停止工作)
screen -S 7DayServer
- 启动服务器
./startserver.sh -configfile=serverconfig.xml
- 按住Ctrl + A +D 将screen加入后台运行
到此,一切准备就绪!快和你的小伙伴们一起进入服务器玩耍吧。
0x05:管理员指令,权限相关
服主通过Telnet连接 或者 Web管理页面 进入服务端控制台后
输入help就会弹出服务器管理的相关指令
博主这里列出了部分常用的管理指令,其他的指令大家自己去摸索(^▽^)
debugmenu dm => 打开/关闭debug模式 (参数=on|off)
mem => 显示内存信息和调用碎皮回收机制
admin add [玩家名] [权限等级] => 设置玩家管理权限组(注:最高权限等级为0)
admin remove [玩家名] => 去掉玩家的管理权限
admin update [玩家名] [权限等级] =>提升玩家的管理权限组
say [信息] => 以server的名义广播一条信息
kick [玩家名] [原因] => 踢出玩家[并说明原因]
ban [玩家名] [时间] => 禁止玩家登陆服务器一段时间(minutes, hours, days, weeks, months, years)
shutdown => 关闭服务器
spawnairdrop => 刷一次空投
spawnsupplycrate => 给玩家刷一个补给箱
listplayers lp => 获取在线玩家信息
kill [id/name] => 杀死指定玩家
give [id/name] [物品] [数量] => 给玩家刷某样东西
unban [Steam64位Id] => 解锁玩家
cp [指令] [权限组ID] => 给某个权限组加入使用某个指令的权限
注:在服务器控制台添加自己为最高权限后,其他的操作可以在游戏内完成!
admin add [玩家名或Steam64位Id] 0 => 设置某人为服务器最高管理员(0权限组位最高权限组)
在游戏内按【~】进入控制台
输入dm 当控制台提示 ‘debugmenu on’ 便成功启动了调试模式。
退出控制台,按G进入上帝模式,按H进入飞行模式。
进入控制台,输入cm打开创造模式(再输入一次关闭)。
退出控制台,按U就可以打开物品栏从裤裆中掏出想要的东西了。
请问端口映射最低限度可以只映射 26900 #客户端通讯吗
因为我使用的是sakurafrp的端口转发只能单端口映射
要映射26900 - 26902
要不然会提示正在连接,但是连不上
= = emmm博客的代码显示不全是我的问题嘛QWQ
因为文章之前是WordPress直接转化过来的,所以格式乱了。
现在已经重新写过了
博主能改一下字体颜色或者背景图片吗,全是白色看不清楚
eac_server.so [x64] ::Onload()
eac_server.so [x64] ::OnUnload()