Linux下快速搭建七日杀官方私人服务器教程

今天给大家分享一下七日杀的个人开服教程,本教程基于Linux系统开发,推荐有一定基础的小伙伴尝试!如果你没有Linux的基础但实在想开的小伙伴可以根据以下教程一步步进行操作,后续这边也会上架对应视频操作

  • 架设前准备:
  1. 带公网IP的弹性云服务器或者有公网IP的轻量云服务器等等
  2. 服务器系统镜像OS:Ubuntu 20 X64位系统
  3. 下载SteamCMD
  4. 如果使用弹性云服务器推荐配置至少为2核4G以上!
  5. 正版STEAM的七日杀游戏
  6. 如果懒得设置用户,可直接SU/SUDO启用超级管理员进行所有操作(不推荐)
  • 开始架设服务器
    • 基础配置Linux服务器:

配置管理员密码:sudo passwd

    • 下载steamCMD:

进入超级用户模式输入:su

sudo apt install steamcmd

(若出现错误无法找到包steamcmd请更新如下代码:)

首先,需要添加multiverse到我的/etc/apt/sources.list:

deb http://archive.ubuntu.com/ubuntu xenial main universe multiverse

deb http://archive.ubuntu.com/ubuntu xenial-updates main universe multiverse

deb http://archive.ubuntu.com/ubuntu xenial-security main universe multiverse

之后,添加i386体系结构:

sudo dpkg --add-architecture i386

最后apt-get update就可以安装它了

sudo apt-get install steamcmd

    • 开始配置七日杀服务器:

更新代码:steamcmd

登录匿名用户:Steam>login anonymous(推荐如果不成功尝试steam用户登录)

steam用户登录:login <账号> <密码>

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

(可选)force_install_dir ~/7DaysToDieServer # 设置服务端安装目录

下载七日杀服务器端代码:app_update 294420

退出SteamCmd模式:exit

切换到root根目录:cd~

查看隐藏目录:la

找到打开.steam文件夹输入如下代码:

cd .steam/

cd steamApps/

cd common/

cd 7DaysToDieServer #这里就是七日杀服务端的所有文件内容!

    • 配置七日杀服务器设置内容:

编辑七日杀服务器配置文件:

vim serverconfig.xml # 编辑配置文件

**按insert键或I键进入编辑模式**wq保存并退出!如果实在不会可以用nano或者其他编辑器!

以下是XML文件的部分翻译,可以根据自己的需要自行修改,推荐做好备份!注意:修改Value=之后的内容!

关于XML文件内容的官方WIKI百科内容:

<property name="ServerName value="JonasLu/EN/CN/FR/Easy服务器名字"/>

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

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

<property name="ServerWebsiteURL" value="www.jonaslu.com"/>服务器网址

<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

    • 配置防火墙及端口:

如果你发现开了服务器没有显示或者无法连接,你可能还需要配置防火墙和端口规则。云服务器请在相应平台的安全组页面添加出入站规则,如果没有特殊需要可以放通全部!并且关闭防火墙!(有一定风险,服务器内有重要资料不推荐!)

|-------------|-----|------------------------|
| 端口 | 协议 | 说明 |
| 8080 | TCP | 远程Web控制台(不需要可以不放通) |
| 8081 | TCP | Telnet端口(这个可以不放行,本地连接) |
| 8082 | TCP | 服务器管理工具端口! |
| 26900/26902 | UDP | 客户端端口! |

按上表格放通端口

Telnet可以不放行,直接在服务器中使用telnet ip 8081即可登录telnet。

要用远程telnet连接,请在serverconfig.xml中设置好TelnetPassword后,再进行连接

    • 启动服务器:

在上述文件配好之后,在七日杀的服务端根目录下输入:

screen -S 7

#创建一个screen(防止在ssh断开连接后服务端自动关闭)如果没有可以下载!

下载安装screen:

RedHat/CentOS

yum install -y screen


Ubuntu/Debianapt

Apt install screen //我们这里选择这个代码

./startserver.sh -configfile=serverconfig.xml

#创建Screen之后,输入以上代码正式启动服务器!

服务器启动成功之后,按住Ctrl + A +D 将screen加入后台运行!这样就不会关闭服务器了。之后你就可以开始玩啦!

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

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

screen -r 7 #查看记录为7的编号

    • 关闭服务器指令:

screen -r 7

Ctrl +C

#返回相应的screen之后Ctrl +C即可!

    • 文件路径说明:

路径取决于你自己的设置位置,大致路径如下

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

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

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

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

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

~/.../.local/share/7DaysToDie/Saves/serveradmin.xml

管理员配置文件

~/.../7DaysToDieServer/serverconfig.xml # 服务器配置文件

(重要)

    • 管理服务器:

在服务器中安装telnet。(也可以用Xshell或FTP的远程连接)

Ubuntu/Debian系统

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

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

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

say <信息> # 以server的名义广播一条信息

  • 服务器可能的环境配置:
    • 配置服务器的swap:

linux系统的swap空间类似windows系统的虚拟内存。如果你的云服务器内存小于4G,或者卡顿严重,那你就必须设置一个swap空间,否则启动服务器时会因为内存不足导致进程关闭而终止服务器。

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

以下所有的这些操作都在root中进行//su

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

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

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

这些操作要在root中进行。

sudo fallocate -l 8G /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 保存退出。

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 保存退出。

    • 检查安装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

相关推荐
怣5038 分钟前
Windows 11 临时文件清理完全指南:释放宝贵磁盘空间
windows·清理c盘
Yana.nice43 分钟前
openssl将证书从p7b转换为crt格式
java·linux
AI逐月1 小时前
tmux 常用命令总结:从入门到稳定使用的一篇实战博客
linux·服务器·ssh·php
想逃离铁厂的老铁1 小时前
Day55 >> 并查集理论基础 + 107、寻找存在的路线
java·服务器
小白跃升坊1 小时前
基于1Panel的AI运维
linux·运维·人工智能·ai大模型·教学·ai agent
跃渊Yuey2 小时前
【Linux】线程同步与互斥
linux·笔记
舰长1152 小时前
linux 实现文件共享的实现方式比较
linux·服务器·网络
热爱生活的五柒2 小时前
WebDAV如何使用?
windows
zmjjdank1ng2 小时前
Linux 输出重定向
linux·运维
路由侠内网穿透.2 小时前
本地部署智能家居集成解决方案 ESPHome 并实现外部访问( Linux 版本)
linux·运维·服务器·网络协议·智能家居