首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

饥荒联机版Linux云服务器搭建+mod解决(2025年1月可用)

  • 25-02-16 11:01
  • 3642
  • 8145
blog.csdn.net

引言

我有一个闲置的阿里云服务器,正好假期打算和同学一起玩饥荒(别问为什么2025了还在打饥荒),就拿来开服用了。在装mod的时候遇到一些问题,写这篇文档记录经验,也可供大家参考。(我习惯用vscode,会用的小伙伴可以用,方便服务器操作)

一、云服务器准备

申请开通一个云服务器(阿里云、腾讯云、华为云都无所谓,阿里云试用可白嫖一下),我的服务器CPU是2核4G,系统Ubuntu 22.04,预装docker(但是没用到哈)。

read-normal-img

给服务器申请一个公网IP,然后安全组那里内网入方向添加规则:UDP协议 端口10998和10999(饥荒服务器地上和洞穴的默认端口)。如果要使用SSH连接的,记得把SSH协议也加进去。

read-normal-img

至此服务器准备结束。

二、环境准备

①安装steamcmd

安装依赖:

64位机器:

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

32位机器:

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

安装steamcmd到/steamcmd下:

  1. mkdir -p ~/steamcmd/
  2. cd ~/steamcmd/
  3. wget "https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz"
  4. tar -xvzf steamcmd_linux.tar.gz

②安装服务端工具

打开steamcmd,然后以匿名用户登录:

  1. ./steamcmd.sh
  2. login anonymous

下载服务端工具,饥荒联机版的对应代码是343050,安装完退出steamcmd:

  1. app_update 343050 validate
  2. quit

此时服务器根目录应该有一个/.klei的隐藏文件夹,用ls -al可以看到:

  1. cd ..
  2. ls -al

三、存档导入

导入存档,重点是获取token。

电脑steam打开游戏,点击首页的 账号——游戏——《饥荒:联机版》的游戏服务器。有的话直接复制,没有的新建一个就行。

read-normal-img

read-normal-img

然后在游戏里新建一个存档,根据自己的需求设置好,一定记得起一个比较特殊的名字,到时候好找!!!把要安装的服务器mod都选好配置好,不用进游戏。在创建存档界面这个时候就能看到自己的新建的存档了,点击“管理世界”——“打开世界文件夹”。新建一个文本文档cluster_tokentxt,把复制的这个token粘贴进去。然后这个文件夹里的四个内容全部传到服务器上去。

注意服务器的存档目录为: ~/.klei/DoNotStarveTogether/

read-normal-img

至于怎么传:第一种,文件夹页面上面栏(蓝箭头处)输入cmd,然后用scp指令+服务器的IP传到服务器上去(scp指令百度,有一定技术含量)。

第二种:用vscode(还记得我说云服务器加一个SSH连接规则吗?!Here!!)的Remote SSH插件连到服务器上,直接粘贴进去就行。

至此,存档创建成功!

四、mod安装

在装mod之前,先尝试启动一下服务器,确认前面步骤没问题。服务器根目录下新建一个.sh文件run_deldicated_servers.sh.

vim run_delicated_servers.sh

先按 i 键进入编辑模式,加入以下内容:

  1. #!/bin/bash
  2. steamcmd_dir="$HOME/steamcmd"
  3. install_dir="$HOME/dontstarvetogether_dedicated_server"
  4. cluster_name="MyDediServer"
  5. dontstarve_dir="$HOME/.klei/DoNotStarveTogether"
  6. function fail()
  7. {
  8.     echo Error: "$@" >&2
  9.     exit 1
  10. }
  11. function check_for_file()
  12. {
  13.     if [ ! -e "$1" ]; then
  14.         fail "Missing file: $1"
  15.     fi
  16. }
  17. cd "$steamcmd_dir" || fail "Missing $steamcmd_dir directory!"
  18. check_for_file "steamcmd.sh"
  19. check_for_file "$dontstarve_dir/$cluster_name/cluster.ini"
  20. check_for_file "$dontstarve_dir/$cluster_name/cluster_token.txt"
  21. check_for_file "$dontstarve_dir/$cluster_name/Master/server.ini"
  22. check_for_file "$dontstarve_dir/$cluster_name/Caves/server.ini"
  23. ./steamcmd.sh +force_install_dir "$install_dir" +login anonymous +app_update 343050 validate +quit
  24. check_for_file "$install_dir/bin64"
  25. cd "$install_dir/bin64" || fail
  26. run_shared=(./dontstarve_dedicated_server_nullrenderer_x64)
  27. run_shared+=(-console)
  28. run_shared+=(-cluster "$cluster_name")
  29. run_shared+=(-monitor_parent_process $$)
  30. "${run_shared[@]}" -shard Caves  | sed 's/^/Caves:  /' &
  31. "${run_shared[@]}" -shard Master | sed 's/^/Master: /'

然后按 esc 键,输入 " :wq " 保存退出。

接着运行文件:

./run_dedecated_servers.sh

等服务器启动后,一直等有一个sim pause弹出代表成功了,Ctrl+C退出就行。

重点!!!

因为stem2023年(好像是这一年哈,忘记了)改变了创意工坊workshop中mod的安装方式,有很多mod不能让服务器自己下载,需要我们把mod传上去!网上之前的教程让修改dedicated_server_mods_setup.lua这个文件方法是会导致有一部分mod安装失败的!!!你会看到你连进去的服务器怎么少mod了。

打开存档文件夹里面的/Master/modoverrides,里面能看到刚才创建村当时启用的mod,“workshop-一串数字代码”,打开文件后留着。这个里面都是服务器要装的mod代码。

read-normal-img

关闭游戏,steam界面上右键游戏,“管理”——“浏览本地文件”,先进入mods文件夹下,把能对上的mod代码的那些文件夹,全部上传到服务器,注意目录:

./donotstarvetogether_dedicated_server/mods/

此时能传的应该只有一小部分mod,剩下的mod在这里找:

刚才打开的游戏mod文件夹是:/steamapps/common/Don't Starve Together/mods

现在进入:/steamapps/workshop/content/322330/

在这个文件夹下,根据代码找到剩下的mod。先在电脑上随便找个地方把他们复制进去,然后把所有文件夹重命名为 workshop-代码 的格式,然后再传到服务器上去就好了。注意,全程不修改 dedicated_server_mods_setup.lua 这个文件,如果在里面setup了,那下一次启动服务器的时候就会自动把后面我们找到的mod删除,就白干了。

现在mod也全安装好了

五、后续启动工作

在我们刚才新建的run_dedicated_servers.sh,有一行代码是这样的:

./steamcmd.sh +force_install_dir "$install_dir" +login anonymous +app_update 343050 validate +quit

这个代码会在每次启动服务器的时候更新服务端,第一次运行是需要的,但是有一个很大的问题,后续每次运行的时候,他会清空所有mod。请直接删除这一行!!!或者在前面加一个井号+空格 “# ”把他注释掉!!!

然后启动服务器:

./run_dedicated_servers.sh

关闭服务器 Ctrl + C 键即可。

希望我的文档能有用哈

注:本文转载自blog.csdn.net的处州的文章"https://blog.csdn.net/2201_75556881/article/details/145100458"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2492) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

122
操作系统
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2025 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top