如何搭建饥荒服务器

《饥荒》是由Klei Entertainment开发的一款动作冒险类求生游戏,于2013年4月23日在PC上发行,2015年7月9日在iOS发布口袋版。游戏讲述的是关于一名科学家被恶魔传送到了一个神秘的世界,玩家将在这个异世界生存并逃出这个异世界的故事。《饥荒》大家会不会自己搭建服务器呢?

部署教程

在启动脚本有用到教程中创建的文件夹和文件名称,不建议更改

用有sudo权限的用户登录到服务器

1. 安装依赖

先安装steam和饥荒服务器需要用到的依赖

sudo add-apt-repository multiverse
sudo dpkg --add-architecture i386
sudo apt update
sudo apt install libstdc++6 libgcc1 libcurl4-gnutls-dev:i386 lib32z1

2. 安装 SteamCMD

创建steamcmd文件夹

mkdir ~/steamcmd
cd ~/steamcmd

下载 steamcmd程序

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

解压steamcmd_linux.tar.gz文件

tar -xvzf steamcmd_linux.tar.gz

启动steamcmd

./steamcmd.sh

3. 安装饥荒联机版

如果上面没出啥问题的话,将会进入steam服务,接下来控制steam下载饥荒联机版

前面的steam> 不需要输入,只是说明你在steam服务中

steam> force_install_dir ../dontstarvetogether_dedicated_server
steam> login anonymous
steam> app_update 343050 validate
steam> quit

app_update 343050 validate就是去steam中下载饥荒联机服务器的命令,需要等待一会,当执行完成后输入quit退出steam服务

4. 创建服务器存档

在服务器上直接创建新地图的话后续配置会比较麻烦,一般都是在Windows上先创建地图,然后找到地图文件上传到服务器中。

在Windows上打开《饥荒联机版》,在选单界面点击【创建游戏】对联机需要创建的世界进行配置,服务器模式选择【公共】,配置好密码,并勾选要使用的MOD

配置完成后,点击“生成世界”,等待世界创建完成,在进入选择人物界面后,就可以退出了

在服务器中创建存档的存放文件夹

mkdir -p ~/.klei/DoNotStarveTogether/Cluster_1

在C://User/xxx/文档/klei/DoNotStarveTogether文件夹下,找到你刚才创建的存档,上传到/.klei/DoNotStarveTogether/Cluster_1这个文件夹里面,cluster_token.txt没有没关系,后面会创建。

在服务器的Cluster_1文件夹下创建文件cluster_token.txt, 将服务器token保存到文件中

vim cluster_token.txt
# 复制上面申请到的token到文件夹中pds-g开头的那个

5. 为自己添加管理员权限

创建管理员权限文件,复制klei ID到文件中

vim adminlist.txt
# 复制ID到文件中之后保存

6. 为服务器订阅MOD

这里只是告诉服务器要订阅或者说要下载哪些MOD,是否在地图中启用MOD在其它文件中(后面会讲)

cd /dontstarvetogether_dedicated_server/mods
vim dedicated_server_mods_setup.lua

在文件最下面添加需要订阅的MOD,其中的数字是MOD的ID,可以在.klei/DoNotStarveTogether/Cluster_1/Master/modoverride.lua中查看

P.S .klei/DoNotStarveTogether/Cluster_1/Master/modoverride.lua就是这个地图的MOD配置,如果订阅了新MOD,一定要到这里添加配置,不然MOD不会生效。
Caves中也有一个modoverride.lua文件,记得一起修改。

7. 编写启动脚本

回到根目录,创建boot.sh文件

cd ~
vim boot.sh

把下面的命令粘贴到boot.sh中

!/bin/bash

steamcmd_dir="$HOME/steamcmd"
install_dir="$HOME/dontstarvetogether_dedicated_server"
cluster_name="Cluster_1"
dontstarve_dir="$HOME/.klei/DoNotStarveTogether"

function fail() {
    echo Error: "$@" >&2
    exit 1
}

function check_for_file() { 
    if [ ! -e "$1" ]; then
        fail "Missing file: $1"
    fi
}

cd "$steamcmd_dir" || fail "Missing $steamcmd_dir directory!"
check_for_file "steamcmd.sh"
check_for_file "$dontstarve_dir/$cluster_name/cluster.ini"
check_for_file "$dontstarve_dir/$cluster_name/cluster_token.txt"
check_for_file "$dontstarve_dir/$cluster_name/Master/server.ini"
check_for_file "$dontstarve_dir/$cluster_name/Caves/server.ini"
check_for_file "$install_dir/bin"
cd "$install_dir/bin" || fail
run_shared=(./dontstarve_dedicated_server_nullrenderer)
run_shared+=(-console)
run_shared+=(-cluster "$cluster_name")
run_shared+=(-monitor_parent_process $$)
run_shared+=(-shard)
"${run_shared[@]}" Caves | sed 's/^/Caves: /' &
"${run_shared[@]}" Master | sed 's/^/Master: /'

脚本中默认启动的是32位服务器,如果想启动64位服务(会用更大的内存,相对也会更流畅一些),只需要更改这两行

改成下面这样之后保存就可以了

cd "$install_dir/bin64" || fail
run_shared=(./dontstarve_dedicated_server_nullrenderer_x64)

赋予boot.sh执行权限

sudo chmod u+x boot.sh

到这里,饥荒服务器的部署就全部完成了,接下来还要开放防火墙端口,不然别人是访问不进来的。

开放端口

具体需要开放的端口可以查看存档文件夹下的这几个文件

# 饥荒端口,UDP协议
~/.klei/DoNotStarveTogether/Cluster_1/cluster.ini 中的 master_port。
~/.klei/DoNotStarveTogether/Cluster_1/Master/server.ini 中的 server_port。
~/.klei/DoNotStarveTogether/Cluster_1/Caves/server.ini 中的 server_port
# steam端口,TCP+UDP协议
~/.klei/DoNotStarveTogether/Cluster_1/Caves/server.ini 中的 master_server_port、authentication_port

注意开放的协议,饥荒端口都是UDP协议,steam的保险起见两种协议都开。

启动饥荒服务器

到根目录,也就是boot.sh所在的目录,运行下面的代码

nohup ./boot.sh>root.log 2>&1 &

执行后饥荒服务器会在后台运行,可以通过下面这个命令查看输出的日志

tail -f root.log

能看到下面这样的输出就是启动成功了

关闭服务器

因为是后台运行,关闭服务器需要先找到服务器的PID,然后用kill命令杀死

ps -ef | grep don
kill 1306308

要kill的PID是上面图片中圈出来的,服务器在退出会执行一些方法,建议不要用kill -9强制杀死

服务器选择

15+MOD的饥荒服务启动后会占用1.2GB左右的内存,64位服务的话差不多1.8GB,双核CPU常驻15%左右的使用率,4~6人一起玩没啥压力。

所以一台1核2G的服务器基本够用,比较推荐2核4G,可以加载更多MOD,玩到后期也不会太卡

弹性云服务器,灵活管理资产,拥有强大的实时可视化监控、一键自主重装等功能,保障业务系统高效运行。并且可以按需选配,资源弹性扩容;分钟级的交付周期将提供给您实时的业务响应能力;云快照助力轻松备份及拓展;控制台可轻松查看并使用,操作指引简洁易懂。主要的优势在于:

一、稳定

单实例可用性达 99.975%,多可用区多实例可用性达 99.995%,云盘可靠性达9个9,可实现宕机自动迁移、快照备份

二、弹性

支持分钟级别创建千台实例,多种弹性付费选择更贴合业务现状,同时带来弹性的扩容能力,实例与带宽均可随时升降配,云盘可扩容

三、安全

提供DDoS防护、木马查杀等服务,提供支持可信计算、硬件加密、虚拟化加密计算的实例,通过多方国际安全认证,云服务器云盘支持数据加密功能

四、高性能

单实例最高可选256vCPU ,内存6TB,主频3.8GHz,性能最高可达2400万PPS,80Gbps,100万IOPS,1600万session,网络时延20us+


五、易用性

丰富的操作系统和应用软件,通过镜像可一键简单部署,同一镜像可在多台云服务器中快速复制环境,轻松扩展

六、可拓展性

弹性云服务器可与德迅云安全产品无缝衔接,可持续为业务发展提供完整的计算、存储、安全等解决方案

除此之外,弹性云服务器主要的功能在于:
一、丰富的实例类型和多种存储选择

面向各类企业应用场景,弹性云服务器将提供超过100款高性能规格选择。按实际业务场景可选择不同配置实例搭配1到16块不同容量的存储磁盘。

1.计算架构

提供X86、ARM计算架构,在选型时可以选择适合的架构,充分贴合业务场景。

2.实例规格

每种计算架构下提供多种面向不同场景的实例类型和规格,在满足需求的同时提供极致的性价比。

3.存储类型

按实际业务场景可选择不同配置实例,搭配1到65块不同容量的存储磁盘。云盘、本地盘提供多样选择的同时,云盘将提供给最高9个9的可靠性。

二、VPC专有网络

基于德迅云构建的一个隔离的网络环境,专有网络之间逻辑上彻底隔离,只能通过对外映射的IP(弹性公网IP和NAT IP)互联。由于使用隧道封装技术对云服务器的IP报文进行封装,所以云服务器的数据链路层(二层MAC地址)信息不会进入物理网络,实现了不同云服务器间二层网络隔离,因此也实现了不同专有网络间二层网络隔离。专有网络内的云服务器使用安全组防火墙进行三层网络访问控制。

1.访问控制

灵活的访问控制规则。 满足政务、金融的安全隔离规范。

2.软件定义网络

按需配置网络设置,软件定义网络。管理操作实时生效。

3.丰富的网络连接方式

支持软件VPN;支持专线连接。

三、快照与多种镜像类型

快照与多种镜像类型,支持业务快速部署。

1.快照安全系数更高

每个云盘有多个快照额度,为数据提供更长的保护周期和更细的保护粒度。

2.自动快照策略

实现无人值守的自动化数据备份,减轻运维部门工作负担。

3.快照灵活易用

性能影响小,用户业务无感知,随时支持数据快照备份。支持秒级创建/回滚的极速快照和快照一致性组。

4.镜像种类丰富

公共镜像、镜像市场、自定义镜像、社区镜像满足各类型用户对于应用环境的快速部署、灵活管理的需求。

5.实例规格

每种计算架构下提供多种面向不同场景的实例类型和规格,在满足需求的同时提供极致的性价比。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/737284.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

华为数通——ACL

ACL基本介绍 ACL:访问控制列表,通过端口对数据流进行过滤,ACL判别依据是五元组:源IP地址,源端口,目的IP地址,目的端口、协议。(ACL工作于OSI模型第三层,是路由器和三层交换机接口的…

2.超声波测距模块

1.简介 2.超声波的时序图 3.基于51单片机实现的代码 #include "reg52.h" #include "intrins.h" sbit led1P3^7;//小于10,led1亮,led2灭 sbit led2P3^6;//否则,led1灭,led2亮 sbit trigP1^5; sbit echo…

基于51单片机抽奖系统

基于51单片机抽奖系统 (仿真+程序) 功能介绍 具体功能: 1.利用5片74HC495对单片机的IO进行串并转换,进而控制5个1位数码管; 2.采用一个独立按键用于抽奖系统的启停控制; 3.8位拨码开关是用…

地推利器Xinstall:全方位二维码统计,打造高效地推策略,轻松掌握市场脉搏!

在移动互联网时代,地推作为一种传统的推广方式,依然占据着重要的地位。然而,随着市场竞争的加剧,地推也面临着诸多挑战,如如何有效监测下载来源、解决填码和人工登记的繁琐、避免重复打包和iOS限制、以及如何准确考核推…

Linux基础二

目录 一,tail查看文件尾部指令 二,date显示日期指令 三,cal查看日历指令 四,find搜索指令 五,grep 查找指令 六,> 和>> 重定向输出指令 七, | 管道指令 八,&&逻辑控…

让你的Python代码更简洁:一篇文章带你了解Python列表推导式

文章目录 📖 介绍 📖🏡 演示环境 🏡📒 列表推导式 📒📝 语法📝 条件筛选📝 多重循环📝 列表推导式的优点📝 使用场景📝 示例代码🎯 示例1🎯 示例2⚓️ 相关链接 ⚓️📖 介绍 📖 在Python编程中,列表推导式是一种强大且高效的语法,它允许你用…

江协科技51单片机学习- p14 调试LCD1602显示屏

前言: 本文是根据哔哩哔哩网站上“江协科技51单片机”视频的学习笔记,在这里会记录下江协科技51单片机开发板的配套视频教程所作的实验和学习笔记内容。本文大量引用了江协科技51单片机教学视频和链接中的内容。 引用: 51单片机入门教程-2…

YouTube API接口:一键获取Playlist视频合集信息

核心功能介绍 在视频内容日益繁荣的今天,YouTube作为全球领先的视频分享平台,为内容创作者、品牌商家以及数据分析师提供了丰富的视频资源。其中,Playlist视频合集作为YouTube上的一种特色内容形式,深受用户喜爱。为了更好地满足…

cpolar:通过脚本自动更新主机名称和端口号进行内网穿透【免费版】

cpolar 的免费版经常会重新分配 HostName 和 Port,总是手动修改太过麻烦,分享一下自动更新配置文件并进行内网穿透的方法。 文章目录 配置 ssh config编写脚本获取 csrf_token打开登陆界面SafariChrome 设置别名 假设你已经配置好了服务器端的 cpolar。 …

计算机视觉解决什么问题?

本节课为「计算机视觉 CV 核心知识」第一节课正式课; 「AI秘籍」系列课程: 人工智能应用数学基础人工智能Python基础人工智能基础核心知识人工智能BI核心知识人工智能CV核心知识 Hi,大家好。我是茶桁。 老同学对我应该都很熟悉了&#xff…

2小时极速入门 TypeScript-慕课网 笔记

TS文档:https://www.tslang.cn/docs/handbook/modules.html 一,什么是TS 注:Typescript无法在浏览器中运行 ,所以需要编译器,将TS转变为JS 问:TS运行这么麻烦,为什么还要有TS? 答:TS强类型 1,规…

图解构建知识体系的过程

点击标题下「蓝色微信名」可快速关注 无论是日常的学习还是工作过程中,每个人其实都可以找到适合自己的学习方式和知识体系,如果方向正确,就可以事半功倍,之前借鉴某些数据库技术的知识体系聊过相关的主题(可以参考《搭…

车载以太网权威指南阅读笔记

总体思路: 要基于车载以太网做出相应的机器人以太网神经中枢,需要按照以下步骤: 了解车载以太网,包括但不限于 车载以太网是如何基于汽车需求定义的车载以太网的工作模式车载以太网工作所需要的硬件车载以太网中的数据交互模式 …

Docker如何安装redis

目录 1. 拉取redis的镜像文件 2. 创建redis的容器卷 3. 准备reids的配置文件 4. 以配置文件启动redis 1. 拉取redis的镜像文件 # 默认安装最新版本 如果需要指定版本 docker pull redis:版本号 docker pull redis 详细版本请看dockerhub的官网: hub.docker…

仓颉编程语言入门

华为在 2024 年 6 月 21 日的华为开发者大会上,华为终端 BG 软件部总裁龚体正式官宣了华为自研仓颉编程语言,并发布了 HarmonyOS NEXT 仓颉语言开发者预览版。 仓颉编程语言文件后缀名为 .cj, 以下是第一个入门代码输出:你好,仓颉…

公司倒闭被迫踏上海投简历道路,经历打压受挫后总结的Android面经,互相激励!

红黑树有啥特性? 在oncreate里面可以得到view的宽高吗? view的getwidth和getmesurewidth有啥区别? 遍历hashmap的原理? 23种设计模式 中园博林(有笔试) 如何避免out of menmory和anr? arraymap和hashmap的区别? 如何实现线程同步? 简述android事件分发机制 简…

怎么投资中证全指证券公司指数?

中证全指证券公司指数的代码是399975,有50只成分股,几乎包含了市场上所有主要的证券公司,算是指数基金中投资证券行业的不二选择。 根据天天基金的数据显示,市面上有31只跟踪该指数的基金,规模最大的是南方中证全指证…

EtherCAT笔记(三) —— 主站与从站的硬件组成

1. EtherCAT 主站的硬件组成 EtherCAT主站使用标准以太网控制器,也即EtherCAT主站可以使用以太网控制器的任何设备。当我们有一台带网口的笔记本、工控机,甚至是树莓派也可以作为EtherCAT主站。 EtherCAT协议是对Ethernet协议在实时控制等方面的优化&am…

爬虫笔记14——爬取网页数据写入MongoDB数据库,以爱奇艺为例

下载MongoDB数据库 首先,需要下载MongoDB数据库,下载的话比较简单,直接去官网找到想要的版本下载即可,具体安装过程可以看这里。 pycharm下载pymongo库 pip install pymongo然后在在python程序中我们可以这样连接MongoDB数据库…

git stash Pop 后丢失,要如何找回?

文章目录 须知背景描述解决过程 须知 写在前面:我们都知道 stash list 中如果 pop 出来一条,那 list 里就会少一条,但其实使用 git stash pop 并没有真正地将该条 stash 删掉的,而是删除引用而已,因此当我们误 pop 时…