【记录】饥荒联机版+个人云服务器搭建(至2020.6.19有效)

  • 写在前面
  • 所需材料
  • 开始做菜!
    • 1.进入属于自己服务器
    • 2.安装依赖
    • 3.安装SteamCMD及Steam客户端
    • 4.安装饥荒联机版服务器软件
    • 5.试运行服务器
    • 6.生成一个世界!
      • 1.复制本地存档
      • 2.获取服务器Token
      • 3.准备服务器启动脚本
    • mod管理
    • 正式启动专属服务器
      • 且慢
  • 一点弯路
    • 最后

写在前面

2020年真是不平凡的一年,没想到自己第一次想写一篇博客竟然是写给饥荒了。。。
说到底自己也就是个臭打游戏的2333
万万没想到这个假期竟然这么长,于是又想捞起个合家欢游戏和小伙伴们打打杀杀嗷。正好最近几天蒸汽平台饥荒打折,力度不错建议入。
言归正传嗷,本人小白一个,也是参考网上大佬们的教程搭建的,主要是参考这篇使用阿里云服务器搭建饥荒联机版服务器。
我写这篇文章最主要的目的是想记录下整个过程以及过程中遇到的一些问题及解决方法
请注意,随着饥荒版本的更新,该方法未必可以适应将来的版本
如果您经过多次尝试后还是失败的话,还请另寻更新的教程,当然如果您愿意与我交流探讨那么我也十分欢迎,只是本人能力有限,还请不要抱太大希望了哈哈。

所需材料

  1. 饥荒联机版Steam版 需购买
    另,个人不太用Wegame,不清楚是否可以直接使用。
  2. 云服务器 这里使用的是阿里云的服务器操作系统是Ubuntu16.04,配置信息仅供参考。我用这套同时和5个小伙伴玩耍是没有问题的,还请自行酌情购买。我这个是年初的时候白嫖得来的半年我会说?
  3. putty ,有了主菜,剩下的就是一些小工具了,putty用于SSH连接Linux服务器,毕竟服务器在云上呢,总得用点小手段是吧?我用的是putty0.72
  4. WinSCP, 与putty类似,但是可以直观的对云服务器进行界面化的文件管理,比较友好,在对存档以及mod管理时发挥较大作用。
  5. steamcommunity, 老司机都懂的,主要用于访问Steam社区,用于查找和订阅mod,当然如果你有别的途径那么也可以,只是使用时尽量找一个较新的版本,我现在用的是V10.7。

开始做菜!

1.进入属于自己服务器

当你购买了属于自己的服务器后,简单配置一下,需要记住自己用户名以及对应密码,还有一个专属的公网IP(重要!!!)
打开putty,在红框处输入你的专属公网IP,端口号port处为22,连接方式选择SSH接下来点击Open建立连接。
在弹出的界面输入你要登录的用户名,回车,输入密码(输入密码是不显示的,盲打,打完点回车确认)
输入无误的话就进入到云服务器的终端了。

2.安装依赖

Ubuntu64位

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install libstdc++6 libgcc1 libcurl4-gnutls-dev

Ubuntu32位

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install libstdc++6:i386 libgcc1:i386 libcurl4-gnutls-dev:i386

前两条命令对软件列表进行更新,第三条用于安装依赖,逐条输入就可以了。执行sudo命令时会要求输入密码。

3.安装SteamCMD及Steam客户端

在根目录下创建steamcmd目录

mkdir ~/steamcmd

下载SteamCMD安装文件到新创建的目录

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

解压压缩包

cd ~/steamcmd
tar -xf steamcmd_linux.tar.gz

可通过输入命令 “ls”查看当前目录下的文件,发现名为steamcmd.sh的脚本文件。
执行该脚本文件

./steamcmd.sh

安装完成后看到弹出“:steam>”字样,说明进入steamcmd模式

4.安装饥荒联机版服务器软件

在steamcmd模式下
以匿名帐户模式登录

login anonymous

个人信息确认完毕之后,指定饥荒联机版服务器软件安装

force_install_dir ~/myDSTserver

PS:该指令应当是将软件安装在“家目录”下的,也就是“~/myDSTserver”目录。但是在我安装的过程中,该指令将软件安装在了 “ ~/steamcmd/ ~/myDSTserver ”
一开始这个问题困扰了我,但其实这个问题不关键,只要你自己能知道最终是myDSTserver目录的位置即可。
此时应仍处于steamcmd模式下
更新软件

app_update 343050 validate

更新完成后,退出steamcmd模式

quit

至此,如果顺利的话,一大半的工作就完成了

5.试运行服务器

找到你的myDSTserver目录
如果严格按照我上面的步骤来的话,这个目录无非只有两种情况

  1. 在~/myDSTserver
  2. 在~/steamcmd/ ~/myDSTserver

对于第一种情况

cd ~/myDSTserver/bin
./dontstarve_dedicated_server_nullrenderer

对于第二种情况

cd ~/steamcmd/~/myDSTserver/bin
./dontstarve_dedicated_server_nullrenderer

哪个没报错就用哪个嘻嘻,如果正确启动了的话会输出大量信息,很好分辨的。

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!! Your Server Will Not Start !!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

当上述信息出现后,就可以按ctrl+c停止了,到这里很多必要的目录已经生成好了,接下来要做的就是把我们需要的东西补充到框架里去。

6.生成一个世界!

1.复制本地存档

打开WinSCP,登录与putty使用类似,主机名输入云服务器专属公网IP地址,输入用户名及对应密码即可登录。
登陆后界面如下

左边是本地文件目录,右侧是云服务器上的目录(比较清晰而且支持拖拽上传)
在云服务器界面按热键alt+ctrl+h可查看隐藏目录

图中有个名为.klei的目录,正是在前面的试运行服务器的时候生成的,依次打开:.klei——DoNotStraveTogether目录。此时可以看到一个Cluster_1文件夹。这里就是我们游戏世界的存档位置。
那么,是不是只要得到一个存档文件填替换掉就可以了呢?
打开下载好的饥荒联机版,登陆后选择创建世界,输入房间名称等信息,并对世界进行设置。(这里建议设置密码,不然可能会有不明真相的玩家进入这个世界,那样就不好了。。。)

设置完毕后,生成世界,当进入到选择人物的时候就可以直接退了。这里的世界是部署在本地的,我们只取其设置内容就好。
不出意外的话,存档位置位于电脑的\Documents\Klei\DoNotStarveTogether\178275694中,这里我们直接将这个Cluster_1文件替换掉服务器中的/home/Username/.klei/DoNotStraveTogether/Cluster_1文件。

2.获取服务器Token

在联机版游戏界面点击“账户”选项

图中的红框部分是属于你的Klei账户ID,每个玩家都有属于自己的ID,可以保存一下用于后续进行管理。
点击“游戏”——“饥荒联机版服务器”

点击下方添加新服务器,得到一个类似上方红框中的一串代码,这个是不会过期的服务器票据token,复制一份。

将复制的票据替换掉服务器文件Cluster_1中的cluster_token.txt中的内容后保存并关闭。

3.准备服务器启动脚本

服务器中回到主目录下,在WinSCP中可右键——新建文件,文件名为“startup.sh”
编辑startup.sh文件,将下列文本复制进去,保存后退出。

#!/bin/bashsteamcmd_dir="$HOME/steamcmd"
install_dir="$HOME/steamcmd/~/myDSTserver"
cluster_name="Cluster_1"
dontstarve_dir="$HOME/.klei/DoNotStarveTogether"function fail()
{echo Error: "$@" >&2exit 1}function check_for_file(){if [ ! -e "$1" ]; thenfail "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" || failrun_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: /'

好了,现在得到了服务器启动脚本,但是还不能马上启动它,需要对其权限进行修改
回到putty窗口,在主目录下

chmod u+x ~/startup.sh

此时,就可以通过服务器启动脚本开启服务器了

./startup.sh

不出意外的话,稍候片刻,就可以在游戏中搜索到服务器啦。

mod管理

上述步骤可以帮助生成一个纯净无mod的世界,但是,有一说一,有无mod饥荒就是俩游戏(这也是我为什么选择steam平台)
这里就用到前面准备的steamcommunity了,启动服务,访问创意工坊。订阅你喜欢的服务器mod

订阅后,创意工坊内容会被下载到本地,默认保存位置在\steam\steamapps\common\Don’t Starve Together\mods

记住你需要启动的mod文件,我们只需要其对应的编号就可以了。
这里可以再进入到创建世界界面,选择启用的mod并回到世界

还是一样,回到世界,加载进入到游戏后就可以推出了。
再查看本地存档文件中的Cluster_1文件,可以看到两个文件夹,Master和Cave分别对应游戏中的主世界和洞穴。查看主世界Master文件,可以看到图中的两个文件

其中一个是对世界一些选项的设置,另一个是对mod文件的配置。
将这两个文件拖拽到服务器中对应位置进行覆盖;
Cave文件夹中的也是一样覆盖服务器中对应文件。

我们打开modoverrides.lua文件可以查看它的内容

以红框中的设置为例,workshop后接的数字为该mod对应的编号,该mod设置末尾的enable=true表示该mod是启用状态。
记住这些已启用mod的编号,因为这只是设置,还需要一步用于将这些mod下载到服务器中后续才能启用。

我们打开服务器中/myDSTserver/mods目录,可以看到一个名为“dedicated_server_mods_setup.lua”的文件。

对它进行编辑

在文件中输入类似红框中的内容:

ServerModSetup("378160973") --globalpositions
ServerModSetup("666155465") --showme
ServerModSetup("1207269058") --healthbarDYC

其中“–”将每一行语句分成两部分,第一部分中的数字即为需要服务器下载的服务器mod编号,“–”后的为对该mod的简要说明,用于辨识,这并不重要。
需要添加几个mod,就要有几行语句,每行一个。编辑完毕后保存并退出。
到这里,主要配置终于结束啦。

正式启动专属服务器

回到putty,回到主目录下,运行命令

./startup.sh

稍等片刻,就可以搜索到服务器了

可以看到模组已经成功添加了。

且慢

虽然到这里服务器已经成功启动了,但是这时putty还不可以关闭,否则服务器会被关闭,我们需要这个执行脚本的命令始终开启,这样服务器才是一直工作的。
我选择使用nohup命令,因为nohup默认不再将日志输出到终端,所以后台的情况我们是不清楚的,因此前面先直接启动,看到服务器可以正常工作后再使用这个命令。
首先ctrl+z把正在执行的脚本停止

nohup ./startup.sh &

这样开启服务器的脚本就会挂在后台了,此时关闭putty窗口也不会影响服务器的工作了。
结束,下机。

一点弯路

通过上述步骤搭建的服务器存在一些弊端,如:
1.当你想要重启服务器时,首先需要将启动脚本停止,否则会出现端口占用的情况。但是当使用nohup指令后重新打开putty,jobs指令也无法查看后台任务。
解决办法:输入指令

ps aux|grep ./startup.sh

就可以查看到任务了,再通过kill指令杀掉进程就可以重启了。(土方法)

2.当游戏有更新时,出现找不到服务器的问题。
解决方法:参考配置过程中的步骤更新联机版服务器软件
首先进入steam模式,然后依次输入如下代码对服务器进行更新

cd ~/steamcmd
./steamcmd.sh
login anonymous
force_install_dir ~/myDSTserver
app_update 343050 validate
quit

完成后退出,再重新启动服务器应该就好了。
3.需要对mod进行增删管理时,建议可以拿本地创建世界的存档中的两个文件直接对服务器存档直接覆盖,方法比较简单。

最后

截止2020.6.19日,我的服务器还可以正常运行。
本篇博客水平不高,如果诸位对步骤中的方法或操作有改进或者疏漏欢迎各位指出,共同学习。
感谢您的阅读。

【记录】饥荒联机版+个人云服务器搭建(2020.6.19)相关推荐

  1. steam 平台 饥荒 联机版 Linux云服务器 搭建教程

    A:服务器的选购和设置(云服:有效降低游戏 网络延迟,小幅减少主机硬件性能占用) 1: 饥荒是单核游戏,世界/核,地面+洞穴也就是"2 核"就够了,主频越高越好. 2: 内存多点好 ...

  2. 饥荒联机云服务器_WeGame饥荒联机版专用服务器多层世界搭建教程

    最近一直在玩饥荒.刚开始自己一人玩.倒是没什么感觉.但是后面和朋友一起玩的时候,经常会发现自己不卡,但是朋友有些时候就会卡一下.为了解决这个问题,就想到了搭建独立的专用服务器.可能确实wg上面玩饥荒的 ...

  3. 饥荒联机版 远程服务器无响应,饥荒联机版一直显示“服务器没有响应”

    饥荒联机版一直显示"服务器没有响应"出现的原因可能有: 1.服务器所处运行环境不佳: 对于计算机网络服务器来说,运行的环境是非常重要的.其中所指的环境主要包括运行温度和空气湿度两个 ...

  4. 饥荒联机版连不上服务器_饥荒联机版无法连接服务器问题的解决方法

    <饥荒>联机版的很多朋友多少都出现了无法连接服务器,今天就为大家带来了饥荒联机版无法连接服务器解决方法,教给大家怎么解决这个问题,非常实用,快跟我一起来学习下吧. 其实有时候连不上klei ...

  5. 饥荒自动服务器有点问题,饥荒联机版无法连接服务器怎么办_无法连接服务器的快速解决办法...

    饥荒联机版无法连接服务器怎么办?今天小编就为大家带来饥荒联机版无法连接服务器解决方法,让我们来一起看看吧! 其实有时候连不上klei服务器和刷新不出服务器列表,是dns的问题. 尤其一些三级宽带,像什 ...

  6. 饥荒wegame腾讯云服务器搭建,wegame饥荒云服务器搭建(腾讯云搭建wegame饥荒服务器)...

    专业服务器,是有需要有一台专业服务器为基础的,将所有的模块载入服务器在统一的一张地图玩,做到所有人都可以玩,最基础的就是你需要花钱买一个服务器再能创建! 之前一直在玩联机版的一个存档,后来东西太多了电 ...

  7. 2022版使用云服务器搭建公网k8s容器集群

    总体流程一览 主要流程如下: 1.准备云主机,升级CentOS系统到7.9 2.所有节点上安装Docker和Kubeadm,拉取相关镜像 3.在Master节点初始化集群,包括kubectl和部署CN ...

  8. 饥荒联机版自建服务器视频,饥荒联机版服务器怎么搭建?饥荒联机版服务器建立图文教程 四、配置目录-游侠网...

    四.配置目录 网上凡是看到setting.ini,都是旧版饥荒,新版的都是使用cluster.ini和server.ini和server.ini 简单梳理一下,我们当前服务器上面的目录 #steamc ...

  9. 正版饥荒服务器怎么弄,饥荒:联机版专用服务器创建设置方法汇总_饥荒联机版怎么开服务器_牛游戏网...

    第四步:游戏设置 登陆游戏建立一个新的档,你希望自己的世界是什么样子的,就可以设置好. 比如我讨厌病变,就设置成无;洞穴在这里添加. 开启的mod可以在这个小螺丝设置,没有小螺丝的就是mod本身都是默 ...

最新文章

  1. Windows下命令行及Java+Tesseract-OCR对图像进行(字母+数字+中文)识别,亲测可行
  2. (转载博文)VC++API速查
  3. 他奶奶的,我要再不写技术文章,找工作都没有说服力!
  4. 九十一、前端可视化ECharts的使用
  5. 爬楼梯(Leetcode)
  6. C++ smart pointer
  7. 235. 二叉搜索树的最近公共祖先
  8. linux下关闭网络服务,Linux 关闭网络管理服务
  9. CodeBlocks配置openGL教程
  10. CAShapeLayer把图片做成圆形效果
  11. [转]FlightCaster如何预测飞机准点的
  12. MySQL连接、SSL加密与密码插件
  13. CF 1324-F Maximum White Subtree //树形换根dp
  14. java通过poi操作ppt
  15. 机器视觉之缺陷检测的光源
  16. python输入输入:input、map
  17. mysql 在linux环境下导出,window下导入报ASCII '\0' appeared in the statement
  18. MEEGO系统七大优势
  19. 数字经济专家高泽龙谈“金融元宇宙”与“元宇宙金融”
  20. 文件服务器打开八下地理导学案,七年级地理下册 7.4 俄罗斯导学案(新版)新人教版...

热门文章

  1. ipad mini android平板,iPad mini没想带Android平板玩
  2. uni-app - 拨打电话功能(在不同平台下,点击按钮触发一键拨号功能)
  3. NoClassDefFoundError解决方案
  4. 电脑技巧:分享6个实用的资源网站
  5. 谷歌浏览器百度搜索引擎输入后跳转到百度首页并且会吞掉输入内容
  6. 关于嵌套结构体大小的计算
  7. C语言关键字浅析-while
  8. iphone自带计算机删除,如何清理iPhone上的垃圾文件
  9. git push origin master报错的解决方法 常见git命令(待更新)
  10. UE5发布时出现SDK NOT Setup错误解决方法