在Azure上运行饥荒联机版服务器


dst bar 图片来自 http://forums.kleientertainment.com/topic/54719-welcome-to-dont-starve-together/

Click here to read English version

本文中提到的Azure是由微软公司直接运营的全球Azure服务azure.com,而不是中国地区由世纪互联运营的azure.cn,由于两个服务可能存在差异,不保证本文所述内容可以正常运行于azure.cn之上。

目录


  1. 在Azure上创建容器服务
  2. 下载DST服务器Docker文件并配置你的DST服务器
  3. 获取你的DST服务器Token
  4. 更改Azure容器服务Master虚拟机大小
  5. 转发Azure容器服务Master虚拟机端口到本地
  6. 在你的Azure容器中启动DST服务器
  7. 移除服务器

现在利用Docker你可以在Azure上用几分钟的时间运行饥荒联机版(DST)服务器了!

第一步:在Azure上创建容器服务

在Azure管理后台左侧工具条上点击New,在Search the marketplace输入框中输入Azure Container Service。

azure container service

点击create按钮,在Basics标签中选择一个Master虚拟机管理员用户名并记下它,此处我使用了dst作为管理员用户名。将你的SSH公钥粘贴到SSH public key文本框中,选择一个订阅,然后用你喜欢的名字创建一个新的资源组,我依然使用了dst作为资源组的名字。你可以为资源组起任何名字,不必在想名字上花费太多时间。选择一个离你和你的朋友都比较近的地区,比如我选择了亚洲东部,即香港。然后点击OK。

basic

在Framework configuration标签中,选择Swarm作为orchestrator configuration,然后点击OK。

framework

在Azure Container service settings标签,将Agent虚拟机的大小改为Standard A1(注意:不要选择A0,DST服务器要求至少1GB内存,而A0只有0.75GB,如果选择A0你的服务器会由于内存耗尽而崩溃)。如果你无法找到A1,点击Choose a size窗口右侧的View all链接。服务器需要1GB的内存,每个玩家需要大约60MB的内存,所以我们可以用A1运行一个10人的服务器。在DNS prefix输入任何内容都可以,但必须保证在Azure中是独一无二的,然后点击OK。

container settings

之后Azure会想你展示一个配置清单,如果没有问题点击OK。

summary

点击Purchase按钮来部署你的容器。你不会被立即收费,而根据你以后的使用情况进行收费。

在容器部署完成之前你需要等上一段时间。

第二步:下载DST服务器Docker文件并配置你的DST服务器

https://github.com/Jamesits/docker-dst-server下载DST服务器的Docker文件。如果你对git熟悉可以使用git clone命令,也可以直接用浏览器从https://github.com/Jamesits/docker-dst-server/archive/master.zip下载。

进入代码仓库的plain/config/Cluster_1文件夹,用文本编辑器打开cluster_token.txt,将你自己的token粘贴进去。如果你不知道如何获取toke可以参见第三步,否则跳到第四步。 编辑cluster.ini,用以下内容覆盖原有文件:

[GAMEPLAY]
game_mode = endless
max_players = 10
pvp = false
pause_when_empty = true

[NETWORK]
cluster_name = My Azure DST Server
cluster_description = Welcome!
cluster_intention = cooperative
cluster_password = mydstserver

将My Azure DST Server改为你喜欢的名字,然后将cluster_password改为你自己的密码,如果你不想设置密码可以将其留空。

如果你想更改世界设置,比如兔子的数量,编辑Master文件夹下的worldgenoverride.lua。

第三步:获取你的DST服务器Token

在你自己的电脑上运行饥荒联机版,点击Acct Info

dst menu 图片来自 http://clients.fragnet.net/knowledgebase/186/Configure-Server-Cluster-Token-Required.html

在打开的网页中点击Generate Server Token

dst token 图片来自 http://forums.kleientertainment.com/topic/64212-dedicated-server-quick-setup-guide-windows/

第四步:更改Azure容器服务Master虚拟机大小

现在你的容器服务应该已经部署完成了,并且资源组放置在了你的控制台上。如果依然在部署就再等一小会儿。

resource group

在上面的截图中,Master虚拟机的名字是swarm-master-1C258…,如果你无法在控制台的资源组里找到它,可以点击See More链接来浏览全部资源。

master vm

Master虚拟机的大小默认是D2,我们不要这么强大的资源,而且这也会产生大额账单。将其改为A0就可以了。你的服务器运行于Agent虚拟机,而不是Master虚拟机,所以不必担心A0的内存问题。

master size

第五步:转发Azure容器服务Master虚拟机端口到本地

在Overview中查看它的IP地址,点击IP地址后在新打开的窗口中进行复制。

master ip

打开一个终端并运行ssh <root-name>@<master-ip> -p 2200 -L 22375:127.0.0.1:2375。容器的Master虚拟机SSH端口是2200而不是22。

master ssh

不要关闭这个窗口。

第六步:在你的Azure容器中启动DST服务器

打开终端并将DOCKER_HOST环境变量设为tcp://127.0.0.1:22375,如果你使用的是PowerShell,运行$env:DOCKER_HOST="tcp://127.0.0.1:22375"。然后进入第二步中下载的plain文件夹。

运行docker build -t dstserver .,然后Docker应该就开始编译镜像了。

docker build

当编译完成后,运行docker images来列出Azure容器服务中现在已有的全部镜像。

docker image

名为dstserver的镜像就是我们刚刚编译的。

运行docker run -dit --restart=always dstserver来利用这个镜像启动一个容器,之后你会看到一个容器ID。运行docker ps来列出全部正在运行的容器。

container up

如果你想要查看容器的命令输出,运行docker attach <container-id>。如果想退出来不要使用Ctrl+C,直接关闭终端窗口就好。

一小段时间后你就可以在服务器列表中看到你自己的服务器了。

server list

第七步:移除服务器

如果你不想让服务器继续运行,可以直接删除资源组,资源组内的全部资源会被删除,你以后不会被继续收费。

delete resource group

现在尽情和你的朋友一起享受游戏吧!

Comments (0)

Skip to main content