饥荒联机 内网穿透 异地组网 专属服务器
梦竹千殇
编辑于 2026年03月31日 23:48
收录于文集
共1篇
饥荒:联机版

前言:科雷自带的服务器太卡了,遂决定自己本地开一个服务器,简单记录一下,万一以后如果需要用到。其中一、二、三都是为了解决饥荒联机的延迟、稳定问题,使用其中一种即可,四是如何搭建专属服务器(windows,饥荒服务器在本地完全可以搭建,单独开vps实在不必要,就不折腾了)。

一. frp穿透

相当稳定成熟的方案,推荐,延迟会比其他方案稍高。

1.开辟frp隧道

master运行在10999,caves运行在10998,开辟两条frp隧道分别指向这两个端口,隧道会给予连接的地址和端口。(推荐sakura-frp)

2.端口匹配

Klei服务器会上传本地服务器的地址和端口,进洞穴或大厅联机时,Klei就会提供这个错误的地址和端口,真正的地址和端口由隧道给予,他们并不一致,因此有两个解决办法。

法一:安装“强制纠正ip端口”的服务端mod,它有一个“扩展配置”的依赖,应用扩展配置,再配置本mod,配置方式详见创意工坊详情作者置顶帖。(另外客户端也会被强制安装)。一定可以成功

法二开专服,假设存档Cluster_1为根目录,./Master/server.ini和./Caves/server.ini中各有配置server_port=10999和server_port=10998,各自更改,使server_port、frp远程端口、frp本地端口三者一致。(按理说,ip也应该一致,所以还是需要IP纠正才对,但目前没测试过,建议法一

3.好友直连

联机的好友使用shift+~打开饥荒命令行,c_connect("地址",端口),填写指向mater(地上)的隧道地址和端口,即可联机。

如果ip端口纠正了,也可以大厅搜索。

注意:如果没有纠正ip端口,则进入洞穴需要使用c_connect()指令,内容添对应地址和端口,且不能在洞穴退出游戏。

二. 异地组网ipv4

和好友间搭建一个内网,如果能成功p2p打洞,延迟会低上不少。

1.组网

组网工具有很多,譬如贝锐蒲公英,就不一一列举,以下以贝锐为例。在console(https://console.sdwan.oray.com/zh/main),建立网络,组网类型为对等组网(p2p),添加所有成员,设置密码,记录每一个成员的uid和其密码,这是登录凭证。

2.连接

下载好组网工具客户端。贝锐下标准版即可,和好友分别使用不同的uid和密码登录客户端,可以查看好友的连接情况并ping查看延迟。让好友复制服务端(自己)的虚拟ip,替换c_connect()中的地址项,端口可以不做修改(如果开了纠正Mod记得关了,不然会崩溃)

3.补充

由于这是内网联机,大厅不会显示,ip端口都是对的不需要纠正,c_connect()的端口填写默认的10999即可。

4.关于p2p

P2P至少要求锥型Nat,不在运营商大内网(对称型Nat)下,即几乎要求有公网Ipv4,否则对等组网(p2p)会退化成中继转发,大概会增加20ms延迟,个人体感不如frp。

三. 异地组网ipv6

几乎是最宽松的p2p搭建方式了,打洞原理类似ipv4但是没有nat干扰。由于饥荒还未添加IPv6联机,因此用该方式需要端口转发。

现在没人陪我玩,不想折腾,先就此搁置。

四. 专属服务器

前言:最简单的开服方式是去找鸽子鸽(一个开服工具,b站有大量视频),就不需要以下折腾了。

饥荒Don't Starve Together Dedicated自带开服工具Don't Starve Together Dedicated Server,在steam库里,勾选tool栏可以找到。

如果以下目录没找到,可能是没生成,建议在steam界面启动一次服务器后关闭。

1.mod资源与启动文件

在steam右键库里的饥荒->管理->浏览本地文件,将打开

./steam/steamapps/common/Don't Starve Together/

退到上一级目录common,存在饥荒服务器的文件夹,将打开

./steam/steamapps/common/Don't Starve Together Server/

当然,也可以在steam库里以相同的方式打开服务器的文件夹。这两个文件夹格式是一致的。

我们需要:

文件夹1:./steam/steamapps/common/Don't Starve Together/mods/

文件夹2:./steam/steamapps/workshop/content/322330/

文件夹3:./steam/steamapps/common/Don't Starve Together Server/mods/

文件4:./steam/steamapps/common/Don't Starve Together/bin/scripts/launch_preconfigured_servers.bat

文件夹1中存储着mod文件夹,格式为workshop-xxxx,文件夹2中一样存储mod文件夹,格式为xxxx,需要统一命名为workshop-xxxx,存入文件夹3.

(推荐用.bat或者命令行一键改名,或者使用mklink)

文件4是服务器的启动文件,更改最后两行 start "你喜欢的地上窗口名" /D "%~dp0.." "%~dp0..\dontstarve_dedicated_server_nullrenderer.exe" -cluster 存档文件夹名 -console -shard Master

start "你喜欢的地下窗口名" /D "%~dp0.." "%~dp0..\dontstarve_dedicated_server_nullrenderer.exe" -cluster 存档文件夹名 -console -shard Caves

2.打开存档文件

打开游戏->创建游戏->随便选择一个已创建的世界->管理世界->打开世界文件夹,它将位于:

.\Documents\Klei\DoNotStarveTogether\一串数字id\Cluster_x\

退回到./Documents/Klei/DoNotStarveTogether/,该目录下将存放你的服务器存档,你可以选择将刚刚打开的Cluster_x复制到该目录下,并更名为在1.中所命名的存档文件夹名,这将是你的服务器存档。(又或者使用mklink /d将存档链接到该处)

我们假设存档文件夹名为Cluster_1,则记住路径

文件夹5:./Documents/Klei/DoNotStarveTogether/Cluster_1/

我们需要在文件夹5下写入两个文件:adminlist和cluster_token.txt。

3.写入管理员和token

打开游戏->账号,将进入Klei的账户登录界面,使用steam登录,选择饥荒联机版服务器,创建服务器,获得服务器token,同时查看你的账户,获得你的Klei id,将服务器token复制到cluster_token.txt,将Klei id 复制到adminlist

注意adminlist没有后缀,如果需要添加好友为管理,请让好友自查Klei id,并添加进adminlist,每个id占一行。(实际上在好友进入游戏的时候,你可以在服务器看到他的Klei id)。

4.服务器设置和mod配置

法一

在游戏里,创建世界,配置好设置和mod,启动世界生成存档,关闭世界后将存档迁移到上述存档路径(记得改名)。

法二

在存档根目录下,./cluster.ini是世界设置,配置世界模式、pvp、服务器密码等。

./Master/leveldataoverride.lua是地上资源配置,同理

./Caves/leveldataoverride.lua是洞穴资源配置。

./Master/modoverrides.lua是mod配置,如果需要更改,需要同步更代

./Caves/modoverrides.lua。

5.服务器运行端口

依旧在存档目录下,其中

./Master/server.ini, server_port = 10999 指定地上服务器监听端口,有需要可以更改该端口,地下同理。


结语

整了个.bat,自动链接存档和mod,以及adminlist和cluster_token.txt文件,避免每次新增mod、替换存档,总得手操一下。本来还想要不再花点时间整个可视化界面,但是毕竟已经鸽子鸽这样的珠玉在前了,还不如一开始就用它呢,遂绝此念。

就这样吧,应该不会有人需要这样的杂乱的文章的帮助,用它为这些折腾画一个句号。嗯,以后再次感兴趣的话再拾起也方便。