记录在 64 位 ubuntu server 上手动部署饥荒独立服务器的流程。
关键点
- 安装 steamcmd
- 安装 Don’t Starve Together Dedicated Server
- 准备一个存档
- 给存档添加 cluster_token.txt
- 饥荒独立服务器,启动!
【服务器】安装 steamcmd
steam 有官方的文档,告诉你应该如何安装 steamcmd:下载 SteamCMD ,官方强调了不要使用 root 用户来操作,其中核心的部分如下:
1 | sudo add-apt-repository multiverse |
安装成功的标志,是可以在任何目录下直接用 steamcmd 命令。很多教程会把这一步弄的十分麻烦,其实完全没有必要。
【服务器】安装 Don’t Starve Together Dedicated Server
有了 steamcmd 以后,安装 Don’t Starve Together Dedicated Server 就很容易了,需要注意的一点是调整一下安装路径,后续的使用会方便很多,默认的安装路径不仅层级深,而且因为目录名字包含空格等一些特殊字符,会有很多坑。这一点几乎所有的教程都包含了。需要输入的命令和顺序如下:
1 | steamcmd |
其中 force_install_dir
指定自定义的安装路径,/home/ubuntu/dst_server 是我使用的目录,可以按需修改。343050 是饥荒在 steam 上的 app id。
如果某天突然游戏里找不到服务器了,可能是因为客户端和服务器版本不匹配,重新执行一下上面的命令,就可以更新服务器到最新版本。
安装完成后,进入 /home/ubuntu/dst_server 目录,长这样:
1 | ubuntu@VM-4-6-ubuntu:~/dst_server$ ll |
继续进入 bin64 目录,长这样:
1 | ubuntu@VM-4-6-ubuntu:~/dst_server/bin64$ ll |
其中 dontstarve_dedicated_server_nullrenderer_x64 就是我们需要用到的可执行文件,直接调用就会启动一个饥荒独立服务器。
【本地】准备一个存档
有很多种创建存档的方案,我最推荐的方式是直接进入游戏创建。这样可以使用游戏内的编辑器修改存档配置。创建的过程中需要注意:
- 使用一个好记的名字,方便从存档中找出对应的文件夹,也方便后续在游戏里找到自己的服务器;
- 如果公网部署最好添加密码,内网部署可以随意;
配置好以后开始游戏,进入到选人的界面就可以退出了。创建好的存档通常会在 文档\Klei\DoNotStarveTogether 目录下面,一个存档就是一个形如 Cluster_x 的目录,其中 x 是一个递增的数字。
进入存档里面,用记事本打开 cluster.ini 文件,通过 cluster_name 可以匹配到刚刚创建好的那一个。
【本地】给存档添加 cluster_token.txt
进入 klei 的官网 使用 steam 账号登录,然后进入 饥荒服务器管理页面,就可以创建服务器 token。一个合法的 token 是一串 pds- 开头的字符。
我们需要在前面创建好的 Cluster_x 目录下创建一个 cluster_token.txt 文件,然后将 pds- 开头的这一串字符复制粘贴进去。
这样一个可用的存档就准备好了。
【服务器】饥荒独立服务器,启动!
进入前面提到过的 bin64 目录下,执行 ./dontstarve_dedicated_server_nullrenderer_x64
命令,就会开始启动存档,同时打印出大量的日志,其中靠前的部分会有这样一段:
1 | [00:00:00]: Token file not found: /home/ubuntu/.klei//DoNotStarveTogether/Cluster_1/cluster_token.txt, success: F, len: 0 |
这里面包含了一些重要的信息: /home/ubuntu/.klei//DoNotStarveTogether/Cluster_1 就是默认用来启动独立服务器的存档路径。
上面的这一次启动是不会成功的,因为我们还没有把正确的存档放上去。这次启动只是为了自动创建好一些外层的目录,看到下面的日志就可以中断退出了。
1 | [00:00:03]: !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! |
然后需要使用 sftp 工具连接到服务器,做两件事情:
- 删除 /home/ubuntu/.klei//DoNotStarveTogether 目录下的 Cluster_1 目录;
- 将准备好的 Cluster_x 上传到 /home/ubuntu/.klei//DoNotStarveTogether 目录下,改名为 Cluster_1;
再次执行 ./dontstarve_dedicated_server_nullrenderer_x64
命令,就可以正常启动了。
总结
按照关键点一步步地来,理解了这个过程以后其实部署饥荒独立服务器非常简单。
但是目前为止,还是存在一些缺陷,比如服务器只有地面,没有洞穴,这是因为使用 dontstarve_dedicated_server_nullrenderer_x64 时没有带任何参数。如果想要进阶的配置,那么只需要进一步了解 dontstarve_dedicated_server_nullrenderer_x64 的 api,并且按照文档操作即可。
更多关于使用过程中的问题可以参考:Don’t Starve Together Dedicated Server 使用问题记录