七日杀服务端搭建
七⽇杀服务端搭建
以该⽂章为基础
⾃⼰的服务器配置:
双核2G,CPU占⽤很低,内存占⽤很⾼,必须配置swap。
遇到的问题:
1.CentOS8不⽀持读取32位的steam脚本⽂件,改为CentOS7就⽀持了,其他的没具体⼀个个去试,⾃⽤版本位CentOS 7.9-64位。
2.阿⾥云的安全组⽣效很慢,⼀度以为是⾃⼰配置错误。⼀定需要开放26900-26902的UDP端⼝。
准备⼯作
⾸先你需要拥有⼀个云服务器,内地的主流云服务平台有阿⾥云、腾讯云等,如果你在海外可以选择AWS、google云服务等。七⽇杀服务端的建议最低配置是2core 4G,内存8G及以上最佳。考虑到⽬前国内云服务的价格⽐较,在校⼤学⽣可以考虑使⽤学⽣优惠的1core 2G 套餐,配置swap后勉强够⽤。
云服务器的主机名⼀般是⼀串很长的乱码,例如显⽰在⽤户终端上很影响使⽤。⽐如我在修改前是:
[root@bS2&Lb%n21fAS7D ~]$
为了⽅便以后使⽤,建议⼤家先修改它。
# 这些操作要在root中进⾏。
hostnamectl set-hostname centos7 #可以改成你喜欢的主机名,别太长
hostname # 查看下
centos7
vim /etc/hosts # 编辑下hosts⽂件,给127.0.0.1添加hostname
cat /etc/hosts # 检查
修改之后像这样:
[root@centos7 ~]$
=====================================================================
可设可不设,阿⾥云服务器不需要设置,⾃带host。
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
cf怎么解封# 确认⼀下设置是否已经⽣效
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 /f
按 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⽤户
修改⽤户终端配⾊。
CentOS7的终端和指令颜⾊⼀样,⼤端的代码中难以区分。修改⼀下⽤户终端的配⾊,可以⼤⼤的提⾼整个shell页⾯的可读性,⽅便你更快的到每段代码的开头。
修改前后如下图所⽰:
输⼊以下指令修改终端配⾊。
# 临时修改配⾊
PS1="\[\e[32;1m\][\[\e[32;1m\]\u\[\e[32;1m\]@\h \[\e[34;1m\]\W\[\e[0m\]]\\$ "
# 永久修改vim配⾊
vim ~/.bashrc #编辑.bashrc⽂件
加⼊这⼀⾏乌镇介绍
PS1="\[\e[32;1m\][\[\e[32;1m\]\u\[\e[32;1m\]@\h \[\e[34;1m\]\W\[\e[0m\]]\\$ "
保存退出。
source ~/.bashrc # 重新加载bash配置
steamCMD与七⽇杀服务器端
1.下载并安装SteamCMD
确定你当前在你新建的steam⽤户中,如果不是,请使⽤su - steam切换⽤户。⽬前版本steamcmd必须直接解压在 ~ ⽬录下,否则会报错。
# 这些操作要在刚才创建的steam⽤户中进⾏,请不要使⽤root⽤户!
#cd⾄~⽬录
cd ~
# 下载Linux系统专⽤的SteamCMD
wget steamcdn-a.akamaihd/client/installer/steamcmd_
# 解压
tar -zxf steamcmd_
运⾏SteamCmd
# 运⾏steamcmd
大闹天竺 豆瓣
./steamcmd.sh
⾸次运⾏steamcmd,他会⾃⼰下载更新⾃⼰。等出现steam>时,就可以对steamcmd进⾏操作啦。
2.登录steam账号
你可以使⽤steam账号登录,或匿名登录login anonymous。但是七⽇杀必须要steam登录才可以下载服务端。
login <⽤户名> <;密码>
# 如果设置了安全令牌,会让你输⼊⼀次安全令牌
3.下载七⽇杀服务端
force_install_dir ~/7DaysToDieServer # 设置服务端安装⽬录
app_update 294420 validate # 下载七⽇杀服务端,294420是七⽇杀的编号
# 本⽂由 @⽩⽕shiraka ⾟苦编写,未经授权禁⽌转载
# ⽩⽕的博客主页:wwwblogs/shiraka
# 如果你在⽩⽕shiraka的博客、知乎、B站以外的地⽅看到这篇⽂章,帮忙举报侵权,⼗分感谢!
# 下载会持续⼀段时间,请耐⼼等待
等到出现如图所⽰的 Success! App '294420' fully installed.之后便可以退出steamcmd了。
quit #退出SteamCmd
4.配置服务端
# 进⼊七⽇杀服务端根⽬录
cd ~/7DaysToDieServer
# 编辑配置⽂件
l
下⾯翻译了部分参数。
<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密码 -->
<!-- 以上内容由 @⽩⽕shiraka 翻译整理,未经授权禁⽌转载 -->
<!-- ⽩⽕的博客主页:wwwblogs/shiraka -->
<!-- 如果你在⽩⽕shiraka的博客、知乎、B站以外的地⽅看到这篇⽂章,帮忙举报侵权,⼗分感谢! -->
<!-- 更多设置请参考配置⽂件中的注释,英语不好的同学善⽤翻译软件!-->
5.配置防⽕墙
还需要在防⽕墙放⾏以下端⼝,才可让服务器正常运转。阿⾥云请在平台的安全组页⾯添加规则,其
他云平台可能有不同的安全组设置⽅式,⼤同⼩异。
端⼝协议说明
8080TCP Web控制台
8081TCP Telnet端⼝(这个建议不要放⾏)
8082TCP如果安装了Alloc的mods,这个端⼝可以展⽰地图
26900/26902UDP客户端通讯
Telnet建议不要放⾏,直接在服务器中使⽤telnet localhost 8081即可登录telnet。
如果⼀定要⽤远程telnet连接,请务必在l中设置好TelnetPassword后,再放⾏端⼝。该⾏为有很⼤的风险。
6.启动服务器
steam令牌怎么启用创建⼀个名为7DayServer的screen,可以让服务器在后台运⾏,断开远程连接也不终⽌进程。
screen -S 7DaysServer
启动服务器
./startserver.sh -l
按住Ctrl + A +D 将screen加⼊后台运⾏
当你需要回到这个sreen页⾯时,使⽤如下指令。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。