前言

最近又玩儿上了新游戏-星露谷物语,女朋友目前唯一感兴趣的联机游戏,让我爱搭服务器的心又泛滥了起来。

在网络上搜了很多开服教程,大部分都是Windows的开服教程,很少有Linux的,并且比较繁琐。

找着找着,找到了Docker部署星露谷的文章,原来是能用Docker部署的,于是开始疯狂找Docker部署的方法,还真让我找到了一个步骤简单,并且实验可行的Docker开服方法,下面记录下我的部署步骤。

开始

其实星露谷官方是没有服务端的,服务端是由主持创建的,服务端同时也是客户端,意思是必须要有一个主持玩家才能开服。

这个开服逻辑就是相当于在Docker容器里面运行了一个星露谷,并且还放了个主持人机。

拉取仓库

到服务器任意目录,如/opt/game使用Git拉取docker-compose仓库

1
2
3
4
5
6
7
8
# Github源仓库
git clone https://github.com/insectmk/stardew-multiplayer-docker-study.git

# Gitee镜像仓库,Github访问失败使用此镜像仓库
git clone https://gitee.com/insectmk/stardew-multiplayer-docker-study.git

# 进入文件夹
cd stardew-multiplayer-docker-study

启动容器

拉取完仓库后修改docker-compose.yml文件,修改imageVNC_PASSWORD

  • image: registry.cn-hangzhou.aliyuncs.com/dockercns/stardew-multiplayer

  • VNC_PASSWORD: 你自定义的VNC密码(重要,不要泄露)

1
2
3
4
5
6
services:
valley:
image: registry.cn-hangzhou.aliyuncs.com/dockercns/stardew-multiplayer
container_name: stardew
environment:
- "VNC_PASSWORD=你的VNC密码"

使用命令启动docker编排

1
sudo docker compose up -d

开启服务器

启动完成后存档保存在valley_saves文件夹中,你可以从你的Windows中下载存档并放到该目录下。

Windows存档地址C:\Users\你的用户名\AppData\Roaming\StardewValley\Saves,可以看到有很多文件夹,文件夹名称对应的就是你的农场名称。

启动Docker编排后会启动一个容器,容器开放了580124642端口

  • 5801:NoVNC 的 Web端,不用下载VNC客户端,直接访问服务IP:5801就能访问星露谷桌面了
  • 24642:服务端端口,星露谷默认端口,在星露谷客户端点局域网连接的时候不用带上这个端口,直接给IP或者域名就行了

将你需要转移到服务器的存档上传,进入你的服务器IP:5801就能访问Web端VNC了,此时你就能看到你正在星露谷的游戏界面,非常神奇。

选择?可切换成中文,选择合作可以选择你上传的存档,或者是自己新建一个存档,成功进入存档之后,此时服务器就已经开启了,这个主持就相当于一个人机。

如图,这是已经进入存档,开服后的界面:

image-20251020202718169

服务器特性

目前知道的有

  • 主持机器人,默认晚上9点睡觉,想要跳过今天,需要在9点睡觉
  • 当服务器只剩主持机器人后,主持机器人会暂停,防止时间流逝

到现在服务器已经正常启动了,现在就可以尝试连接服务器了,打开星露谷客户端,点击合作,加入局域网,输入你的ip,就能进入了!

安卓端

星露谷是多端互通的,可以到这里下载安卓学习版。

默认移动端是没有开放联机入口的,处于测试阶段,可以参考星露谷物语 (Stardew Valley) 联机指南 | SakuraFrp 帮助文档进行开启。

下面复制一下该网站的文章内容,以防止内容丢失

目前移动版星露谷物语的联机功能仍可能不稳定,因此作为测试版功能存在,
您需要使用下面的秘籍来开启多人游戏功能。

首先,您应当点击右下角的语言列表,并将游戏切换到英文(English)语言。
目前这个秘籍只能在英文版界面使用,在您开启之后即可切换回中文。

现在我们有英文版的游戏主界面,在这个界面中可以看到招牌上有四个叶子,
在下面图中圈出并以 ↑ ↓ ← → 来表示这四个叶子,
依次点击 ↑ ↑ ↓ ↓ ← → ← →,然后点击右下角的问号按钮,即可解锁多人模式。

mobile-multiplayer-CsyGKyRF

构建镜像

拉取的仓库,使用的registry.cn-hangzhou.aliyuncs.com/dockercns/stardew-multiplayer镜像,服务端版本是1.6.14的,目前最新的版本是1.6.15,因此在Steam安装的星露谷是进不了服务器的,因为版本不一样。

想要进入该服务器,你可以在Steam上,右键Stardew Valley -> 属性 -> 测试版 -> 参与测试(previous_version - The previous version osf Stardew Valley (currently 1.6.14)),可以让你回到1.6.14版本,以进入服务器。

当然,还有一种办法,就是升级服务器版本,但是想要升级服务器版本,就得重新构建镜像,进入docker目录,编辑DockerFile文件,更换https://eris.cc/Stardew_1.6.15.tar.gz为你想下载的指定版本试一试,目前已经是更新到1.6.15了,例如你以后想要更新到1.6.16就改为https://eris.cc/Stardew_1.6.16.tar.gz,你可以先测试一下这个连接是否能下载到对应的文件。

修改完成后,在docker文件夹执行以下代码构建新镜像(build时间有点儿长,我构建了一晚上T_T)

1
2
# -t参数后的名字可以任意指定,这里是insectmk-stardew:0.1.0,不要忘了指令后面的点.
sudo docker build -t insectmk-stardew:0.1.0 .

修改仓库根目录docker-compose.yml文件的镜像,改为build的镜像名称,这里是insectmk-stardew:0.1.0

1
2
3
services:
valley:
image: insectmk-stardew:0.1.0

回到仓库根目录,重新构建docker编排

1
sudo docker compose up -d

运行成功后,使用对应版本的星露谷客户端连接试试。

参考文档

利用雨云和Docker创建星露谷物语服务器

星露谷物语 (Stardew Valley) 联机指南 | SakuraFrp 帮助文档

星露谷Linux下载

stardew-multiplayer-docker