搭建七日杀服务器:这里的服务器指的是云服务器:阿里云、华为云、腾讯云。用云服务器的好处是可以根据用户多少可以升降服务器配置,这样可以使你花最少的钱并且能很高的保障服务器稳定运行。
关于带宽:如果你用的是官方地图,服务器最好买包流量的,比如一个月固定3000G流量会给你14M带框,这种优势是比买固定宽带不限流量的花费便宜很多,而且带宽也会高上许多,不用担心因为玩家过多而带宽不足出现卡顿的问题;但是如果你是自定义地图耗费的服务器流量比较大,带宽的话你可以通过游戏配置限制玩家下载地图时的占用大小。这种情况可以根据实际需求来选择购买包月流量还是固定带宽。
关于swap:个人观点8Gswap足够了,众所周知七日杀是非常吃内存的会把所有游戏数据加载到内存中,所以尽量保证内存足够,当内存不足时才会用到swap交换分区,但是swap交换分区的效率远不如内存,可以用 free -m 命令查看内存利用率,当主机开始消耗swap了说明内存已经不足游戏开始卡顿了,需要对云主机内存进行升配了。
配置要求:
测试服:
带宽:1M
内存:4G
swap:8G
cpu:1核
10人服:
带宽:2M
内存:8G
swap:8G
CPU:2核
10-40人服:
带宽:4M以上(测试了下一般15个玩家基本上带宽就能达到4M,而且我用的是官方地图)
内存:16G以上
swap:8G
CPU:4核以上
系统配置:
修改主机名:
hostnamectl set-hostname 7day
停掉所有防火墙和云服务过滤策略
设置swap:
swapon -s # 如果该命令没有返回出结果,则代表该系统尚未配置过swap。
df -h # 检查可用的存储空间
fallocate -l 8G /swapfile # 请根据自己情况修改swap大小
chmod 600 /swapfile # 更改swap文件的权限,否则会有很大的安全隐患
mkswap /swapfile #格式化
swapon /swapfile #启用swap
vim /etc/fstab #设置为永久生效
/swapfile swap swap sw 0 0
swappiness参数决定了系统将数据从内存交换到swap空间的频率。该数值越接近于0,系统越倾向于不进行swap,最大限度使用物理内存。数值越接近100,越倾向于使用swap,而过多的使用swap可能导致服务器运行效率缓慢。这里我为了保证服务器运行效率,建议设置为1。
vim /etc/sysctl.conf
vm.swappiness = 1
系统安全配置:这个可以提高系统安全性,可以防止被暴力破解或降低流量攻击
sshd:修改端口设置只允许免密防暴力破解
vim /etc/ssh/sshd_config
Port 2222 #修改端口为2222
PasswordAuthentication no #设置为不能账号密码登录,防暴力破解,关于密钥登录可以百度一下
systemctl restart sshd #使配置生效
防火墙设置:降低流量攻击
补充中,,,,
安装游戏服务器
yum -y install glibc libstdc++ #安装运行环境
yum -y install glibc.i686 libstdc++.i686 #安装运行环境
yum install SDL2 多媒体开发库
wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz #下载Linux系统专用的SteamCMD
tar -xvf steamcmd_linux.tar.gz #解压
./steamcmd.sh #运行steamcmd
login <用户名> <密码> 登录steam账号并输入一次安全令牌
force_install_dir ~/7DaysToDieServer # 设置服务端安装目录
app_update 294420 validate # 下载七日杀服务端,294420是七日杀的编号
force_install_dir /root/7DaysToDieServer #设置服务端安装目录
app_update 294420 validate # 下载七日杀服务端,294420是七日杀的编号
quit #退出SteamCmd
nohup /root/~/7DaysToDieServer/startserver.sh -configfile=serverconfig.xml & #启动游戏
添加计划任务
crontab -e
1 */1 * * * sync && echo 3 > /proc/sys/vm/drop_caches #每一小时清理一下读写缓存
*/5 * * * * ps -ef |grep -v grep|grep 7DaysToDieServer || bash -c "nohup /root/~/7DaysToDieServer/startserver.sh -configfile=serverconfig.xml &" #每5分钟一检测游戏进程是否还在,如果不在自动启动
1 5 * * * kill -9 `ps -ef | grep '\./'|grep -v grep |awk '{print $2}'` && sleep 10 && bash -c "nohup /root/~/7DaysToDieServer/startserver.sh -configfile=serverconfig.xml &" #每天早上5点自动重启
七日杀文件与目录:
~/7DaysToDieServer # 七日杀服务端主目录
~/7DaysToDieServer/Data/Worlds # 七日杀服务端地图目录
~/7DaysToDieServer/Data/ditu # 七日杀服务端存档目录,可以在主配置文件中修改
~/7DaysToDieServer/7DaysToDieServer_Data # 七日杀服务器日志输出目录
~/7DaysToDieServer/Mods # Mods目录,需要自己创建
~/7DaysToDieServer/serverconfig.xml #主配置文件
~/7DaysToDieServer/Data/ditu/serveradmin.xml # 服务器配置文件
服务器配置文件:可以设置管理员和封禁玩家
cat ~/7DaysToDieServer/serverconfig.xml
>
<!-- > -->
>
>
<!-- > -->
>
主配置文件:
cat ~/7DaysToDieServer/serverconfig.xml
<?xml version="1.0"?>
>
<!-- GENERAL SERVER SETTINGS -->
<!-- Server representation -->
> <!-- 服务器简介描述 -->
> <!-- 玩家进服前看到的小窗口内容 -->
<!-- Networking -->
> <!-- Telnet 启用true 禁用false -->
> <!-- true 是否在桌面显示后台窗口 -->
<!-- Folder and file locations -->
<!-- Other technical settings -->
<!-- GAMEPLAY -->
<!-- World -->
<!-- Difficulty -->
<!-- -->
<!-- Performance related -->
<!-- Zombie settings -->
<!-- Loot -->
<!-- Multiplayer -->
<!-- Land claim options -->
> <!-- 动态网格系统是否已启用 -->
> <!-- 在服务器上使用twitch需要的权限级别 -->
>
~/7DaysToDieServer/Data/Config/目录下配置相关
(参考:https://www.360docs.net/doc/2714137399.html)
1、items文件:创造模式中按u键调出来的items栏所有物品的属性都在这里,最重要的修改物品叠加数量的就在这边。
2、buffs文件:可直接修改各类buff的生成要求和持续时间
3、loot文件:可直接修改各类E键搜索的物品栏的生成内容、数量
4、recipes文件:可直接修改合成表
5、blocks文件:创造模式中按u键调出来的blocks栏所有物品的属性都在这里。
6、biomes文件:修改不同生态系统的属性
7、entityclasses文件:修改敌人属性,你懂得
8、entitycgroups文件:修改敌人刷新的群体,比如刷尸潮时会出现哪些类型的丧尸,全部军肥、尸王不是梦
9、materials文件:修改其他材料的基础信息
10、rwgmixer文件:修改随机地图生成时的不同生态、城镇属性。你想生成全部是废墟、雪地、沙漠的地图,或者一个地图全是城镇不再是梦
11、spawning文件:修改不同生态、不同时间的僵尸刷新群体和数量
12、sounds文件:修改各类声音属性
13、traders文件:商人参数、贩卖机参数
七日杀指令:
(参考:https://www.360docs.net/doc/f55522835.html)
NAIWAZI