事无巨细的Steam饥荒联机云服搭建教程(阿里云;CentOS7.7)【更新至单服务器洞穴】 您所在的位置:网站首页 阿里云服务器无法停止运行 事无巨细的Steam饥荒联机云服搭建教程(阿里云;CentOS7.7)【更新至单服务器洞穴】

事无巨细的Steam饥荒联机云服搭建教程(阿里云;CentOS7.7)【更新至单服务器洞穴】

#事无巨细的Steam饥荒联机云服搭建教程(阿里云;CentOS7.7)【更新至单服务器洞穴】| 来源: 网络整理| 查看: 265

关于饥荒的云服搭建网上已经有很多文章了,还有脚本和exe,真正的一键开服。 这篇文章是写给和我一样对服务器和linux系统的了解不足,但对安全性要求很高, 爱折腾,想要自己全盘管理自己的服务器的道友们的。 (简称人 菜 瘾 大) 这不是一篇傻瓜教程,需要您有一定的耐心, 我全程会尽量解释清楚每个环节怎么做和为什么,但受限于我本人的能力应该也不会太专业 看完这篇教程,你应该就能拥有一定的自己解决自己云服产生问题的能力了。 虽然整体非常简单,但是能碰到的问题也很多, 我解决掉的会发在这上边,希望给后来者减少一点麻烦。 选购服务器 商家选择(价格参考日期:20220922) 腾讯云:有【云服务器CVM】和【轻量应用服务器】两种,新人优惠专区链接。 云服务器CVM比较贵,性能也比较好,最低价也要¥173/年(折合约¥14.42/月),因为价格较贵,配置也用不上,所以不推荐使用。轻量应用服务器比较便宜,轻量2核2G4M的现价¥65/年(折合约¥5.42/月),缺点是必须要按年买。因为比较划算,我后来也改用这个了。需要注意的是,腾讯云的轻量应用服务器和云服务器CVM页面中都有低价(¥59)售出云硬盘,那个是已有服务器后加购的硬盘,不是服务器,小心不要错买。 阿里云ECS:23岁学生优惠不知道是否还能用,现在新人购买有¥17.49/三月(折合约¥5.83/月)的优惠,但是超过三个月后,续费可能就需要¥20-30一个月,性价比大降。优点是一次花的钱少,先买三个月,如果只是想试试水,不打算长期用的,可以购入。优惠选购链接Vultr:应该没有大的变化,可以参考下文旧的说明。 商家选择(价格参考日期:20200514)

阿里云ECS:学生优惠(23岁以前自动享受学生优惠)¥9.9/月——我用的是这个 优点是便宜方便,缺点是可以选的机房地点不多,毕竟十块一个月嘛大家要求不要太高,我买的时候只有华北华东的机房,最后买在了杭州,实测广州连过去延迟50ms左右,如果特别高你就要检查下自己家宽带了。

腾讯云:学生优惠也差不多¥10/月,新用户优惠包年可能还会更低,甚至还有免费试用 优点是新用户优惠真的很便宜,有99包年,就八块多一个月了,白菜价啊。 其他没用过不知道。

Vultr:最低价2.5美元/月,一般只能买到5/6美元的 优点是支持按时租用(也就是$0.015/h),也就是用的时候打开,不用的时候备份删除服务器,如果不经常玩的话价格会非常低! 缺点是Vultr没有中国的机房,延迟高,而且有时候因为墙还可能ssh登录不上;另外每次充值最低要充入10美元。玩家全在国内的话即使买日本的服务器延迟最低也会有50-100ms,网络稍微差一点就200ms起步不封顶了。所以只建议有跨国联机需求的租用!!

跨国联机也有很多其他选择,在此不一一列举。选择Vultr是图按时收费,以后如果试过了其他会在此推荐。

配置选择

建立一个稳定的独立服务器必须确保系统满足以下要求: 1. 网络上传速度:8KB/玩家/秒。如果按照独立服务器最大人数为6人来换算,网络上传速度必须达到50KB/秒或以上才能让6个玩家同时进行游戏,当然网络上传带宽越大越好,较差的网络通信会导致连接独立服务器的玩家动作卡顿以及卡屏。 2. 内存:大约65MB/玩家。如果按照独立服务器最大人数为6人来换算,可用内存大小必须达到500MB或以上才能让6个玩家同时进行游戏。 3. CPU:官方网站没有明确说明。 (以上摘抄自Steam社区置顶帖,一时间找不到了,这种不cite应该问题不大??)

选购服务器的时候,4-6人的房间一般一核CPU,1G内存,1M宽带就够用了,如果服务器人数较多或天数增加以后变得卡顿,可以酌情升级宽带和内存。 系统选择ubuntu CentOS等等都是可以的,这些都是linux的不同发行版。其中,如果这个服务器只用于饥荒云服的话,建议可以选择32位的系统,后续会省去许多步骤。本篇文章选择的是我相对比较熟悉的64位CentOS7。 服务器地理位置一般选择距离自己比较近的(废话),我朋友在美国俄亥俄,在Vultr租用的东京服务器实测效果还不错,有跨国联机需求的可以考虑。

配置服务器 远程连接服务器

服务器买好以后,要记录两个比较重要的信息:公网IP和初始密码。

一般来说都是通过ssh来连接服务器,市面上有很多免费或者收费的ssh软件,windows系统里有自带ssh服务(默认关闭,需要手动开启ssh服务),mac更是在终端即可直接使用。

windows系统可以选择远程连接软件xShell、putty等,也可以开启win10的ssh服务,直接在cmd里进行ssh连接。win10开启ssh服务教程 OSX系统在终端中即可直接使用ssh服务,方便起见也可以安装ssh客户端。

为了不额外安装软件,我选择开启win10的ssh服务,并可以在命令行里连接我们购买的服务器: 快捷键win+q开启windows的应用搜索,再输入cmd回车呼出命令行窗口,输入下面的命令:

ssh root@服务器IP

初始密码通常比较复杂,但是ssh输入密码的窗口里没办法使用ctrl+V粘贴,所以你可以在复制初始密码以后,右键点击命令行窗口的标题栏(也就是下图这个横条儿),选择编辑→粘贴,即可把密码粘贴上去√ 在这里插入图片描述 输入完密码,窗口显示[root@xxxxxxxxxx ~]$就登录成功了。

这里的root表示使用管理员用户root登录,而波浪号~的位置会显示当前所处文件夹。波浪号表示的是现在处在当前用户(即root)的home文件夹内。centos中每个用户都会在/home/中拥有一个以自己用户名命名的home文件夹。

为了方便,可以输入以下命令更改密码:

[root@xxxxxxxxxx ~]$ passwd 在开始之前:您所需要的一丁点儿的Linux知识

这一部分也可以略过,因为后边的每个指令的意义我都会给出自己的解释的。不过如果你能看完这一小节,对自己饥荒云服的管理会更加轻松自如。

CentOS是Linux系统的发行版之一,如果您不熟悉发行版的概念,可以将不同发行版理解为不同品牌,它们会有不同的配套软件和一些细微差别。

Linux系统的根目录是/。/之下会有各种系统目录,如/bin存放常用的命令,/etc存放系统管理的配置文件等等。其中我们的个人文档存放在根目录/下的/home目录中。每一个用户都会在/home中拥有一个以用户名命名的文件夹(通常称为该用户的home文件夹),你可以自由地在里边创建、更改、删除各种文件而不必担心影响你的系统工作,而根目录下的其他目录中的文件,还是最好先搞清楚它们的用途和这么做的后果,再行改变。在您没有设置新用户时,默认身份是管理员用户root,root的home文件夹比较特别,是位于/下的/root文件夹,并不跟普通用户一样在/home内。linux文件目录结构

linux系统用波浪号“~”来表示当前用户的home文件夹。比如,当前用户是默认用户管理员root,则~代表root的home文件夹/root/;而当前用户是名叫david的用户时,~指令则会让你进入david的home文件夹/home/david/。

下面你会经常用到的Linux命令: cd: change directory更改当前目录,可以理解为进入某个文件夹。常见例子如下:(#号及其后面的内容是该命令的注释)

cd /home/steam #进入/home/steam文件夹 cd #进入当前用户的home文件夹 cd ../ #进入当前目录的上一层目录 cd / #进入根目录/

ls:list列出当前目录的文件。常用例子如下:

ls #列出当前目录中的文件列表(不包括隐藏文件) ls -a #列出当前目录中包括隐藏文件的文件列表 ls -l #列出当前目录中的文件列表及其详细信息 ls -al#列出当前目录包括隐藏文件的文件列表及其详细信息

vi:linux中内置的文件编辑工具。类似windows中的记事本。 输入vi命令后一开始进入的是命令模式,可以使用方向键上下左右移动光标。 在命令模式下输入i可以进入编辑模式,就可以像txt一样编辑文档了。 在编辑模式下按ESC键会从编辑模式中退回命令模式。 在命令模式下输入:会进入退出模式(此处是作者为了方便理解生造的名字)。在退出模式下,输入wq回车能够进行保存和退出,输入q!会强制退出。需要注意的是此处的符号都是英文输入模式下的半角符号。 如果觉得我写得不好理解,可以到以下网址了解更多关于vi编辑器的使用知识,我这里只是为了下面的使用简单介绍了需要用到的功能。 https://www.runoob.com/linux/linux-vim.html

增加服务器的安全性

服务器直接开放22端口和root远程登录是比较危险的,这种赤身裸体暴露在外我也不喜欢x

建立一个新的root权限用户

使用非root用户登录能够提供更高的安全性。 首先添加新用户steam: (名称可以自己选择,但文中后面的命令将默认您设置steam为用户名)

useradd steam

为用户steam设置一个密码,输入以下命令后再根据提示输入新密码:

passwd steam

编辑/etc/sudoers文件,为用户steam增加root权限:

chmod u+w /etc/sudoers vi /etc/sudoers

位于/etc/目录下的sudoers文件保存着用户权限的配置设置,默认情况下是不可写入的。但是我们可以使用chmod命令更改它的读写权限,使它变为可写入文件,再使用vi编辑器来修改它的内容。

chmod命令的作用是改变文件读写权限,u+w是chmod命令的参数,表示为此文件所属的用户增加写入权限,sudoers即是我们想要更改权限的文件。安全起见,修改完sudoers的内容以后,需要再输入chmod u-w /etc/sudoers来取消它的写入权限。当然你不这么做也不会出什么大事。

通过上下左右的方向键查看文本,找到下面这一行:

## Allow root to run any commands anywhere root ALL=(ALL) ALL

按i进入编辑模式(窗口左下角会显示-- INSERT --),在这一行下面加入内容改成如下的样子,其中用户名steam改成你自己设置的用户名:

## Allow root to run any commands anywhere root ALL=(ALL) ALL steam ALL=(ALL) ALL

按ESC退出编辑模式,再输入:wq保存退出。 这时你的新用户steam就拥有root权限啦。

vi是linux系统中常用的一种文本编辑器,类似windows中的txt。输入vi命令后会进入查看模式,在查看模式下输入i可以进入编辑模式,就可以像txt一样编辑文档了,再按ESC键会从编辑模式中退回查看模式。编辑完成以后,输入:wq回车(注意是英文冒号)来进行保存并退出,或键入:q!进行不更改强制退出。

更改ssh连接端口,禁止root用户远程登录

ssh服务的默认端口是22,而且默认支持root用户的远程登录(不然我们咋登录);但这些设置都是有风险的,更改端口并禁止root的远程登陆可以带来更高的安全性。 首先进入存放着ssh服务配置文件的文件夹:

cd /etc/ssh vi sshd_config

cd是change directory的意思,改变当前所在的文件夹,也就是去往其他文件夹的意思。cd /etc/ssh即是进入文件夹/etc/ssh。

sshd_config是本机作为ssh服务器的配置文件。 比如电脑A用ssh登录电脑B,此时A就是客户端,B就是服务器端,因为我们是要更改别的机器登录我们的服务器时的设置,所以我们更改的是sshd_config,如果我们要更改我们的服务器登录别的机器时的设置,我们就要更改ssh_config了。

vi的使用方式在上一节已有介绍,不再赘述。

首先通过方向键一直往下,找到下面的这一段文字:

#Port 22

这里的井号#,是表示其后内容注释的意思,也即计算机不会将#后的内容作为代码/命令来接受。

输入i进入编辑模式,把这行内容更改成如下内容:

Port 22 Port 10086

sshd_config文件中的这一部分是用于指定我们通过ssh远程登录这台服务器的网络端口,将这段代码更换成如上形式以后,你的服务器将允许其他计算机通过22和10086两个端口建立ssh连接。此处的10086可以选取10000-65535之间的任意数字。(之所以要在10000以后选取,是因为10000以前的很可能被一些应用作为它们的默认通信端口,导致端口被占用无法建立ssh连接)

再通过方向键往下,找到下面的这一段文字:

PermitRootLogin yes

更改为:

PermitRootLogin no

这一段内容是用来设置服务器是否允许通过root账号远程登录的,设置为yes将允许root用户远程登录。禁用root的远程登录可以提供一定的安全性,尤其是当你的密码不够复杂的时候。需要注意的是,禁用root的远程登陆不代表你无法远程使用root用户,因为你通过其他用户远程登录以后,依然可以通过su命令来切换为管理员身份(root身份)。

更改完成后,按ESC退出编辑模式,输入英文冒号和wq(即:wq)来保存退出。完成这一步后,我们还需要打开防火墙,让我们设置的这个新端口10086能够通过防火墙,否则将被拦截,具体方法如下: (1) systemctl是管理系统各种服务的指令。首先我们通过systemctl start firewalld启动防火墙服务firewalld

systemctl start firewalld

(2) 再通过firewalld内置的命令行工具firewall-cmd把10086/tcp添加到允许通过的端口列表里(tcp是一种数据传输协议)。其中–permanent指永久允许。

firewall-cmd --permanent --add-port 10086/tcp

(3) 重新载入firewalld的端口列表(相当于刷新)

firewall-cmd --reload

(4) 重启firewalld服务

systemctl restart firewalld

(5) 查看firewalld当前允许通过的端口,确定是否已经将10086/tcp添加成功

firewall-cmd --list-port

可以看到结果中有显示10086/tcp,这就代表我们的防火墙现在已经允许10086端口的连接了。

如果你的服务器启用了SElinux的服务(输入getenforce指令,如果显示enforcing则你的服务器启用了SElinux),你将需要下面的额外设置来添加10086端口。

semanage port -a -t ssh_port_t -p tcp 10086

完成以上工作后,我们可以输入reboot指令,这将重启你的服务器并自动关闭你当前的ssh连接。

reboot

这是你就可以尝试通过你新设置的端口10086和steam用户来建立ssh连接了,具体方法是打开cmd命令行窗口并输入以下指令:

ssh -p 10086 steam@服务器IP

此处-p 10086是指通过端口(port)10086来连接服务器,steam@服务器IP则是指通过steam用户来登录该ip的服务器。

登录成功后,再进入/etc/ssh/更改sshd_config,将Port 22这一句也删除掉,以关闭22端口的ssh连接。具体操作如下:

vi /etc/ssh/sshd_config

方向键找到Port 22一行,输入i进入编辑模式,删除掉Port 22这一行,ESC退出编辑模式,:wq保存退出。

完成以上操作以后,你的服务器现在就只能通过10086端口和root以外的用户建立远程连接了,安全性大大提升。

安装游戏 安装steamcmd

我们通过之前新建的steam用户登录服务器,如果您仍以root登录,可以通过下面的命令直接切换当前用户为steam:

su steam

(注意,此处的steam指的是上述教程中为服务器新建的用户的名称steam,如果喜欢你也可以把你新建的这个用户改成其他名字)

首先,由于linux上的steamcmd需要在32位的环境下运行,而我们的系统是64位的CentOS7,因此我们要事先安装32位的运行库,如果你选购服务器的时候选择的是32位的系统,那么这一步可以略去。

sudo yum install xulrunner.i686

安装过程中有可能会弹出通知询问你是否同意安装,按它的提示输入y或者yes即可。

下面我们下载并安装linux系统中的命令行版本steam——steamcmd。 我们通过mkdir在当前用户的home文件夹中(linux中~/代指当前用户home文件夹)新建一个名叫steamcmd的文件夹,用cd命令进入这个文件夹,再通过wget命令从网址http://media.steampowered.com/installer/steamcmd_linux.tar.gz下载一个安装包,并用tar -xvzf命令将这个安装包解压缩。此时,通过ls命令可以查看到当前文件夹内有解压缩后的安装包文件了,请注意确认,里边是否有一个steamcmd.sh的文件,这个是steamcmd的运行脚本。【#字以及其后的文字是注释,输入指令时请忽略】

mkdir ~/steamcmd # 新建文件夹 cd ~/steamcmd # 进入刚刚新建的文件夹 wget http://media.steampowered.com/installer/steamcmd_linux.tar.gz # 下载steamcmd的安装包 tar -xvzf steamcmd_linux.tar.gz # 解压刚刚下载的安装包 用steamcmd安装饥荒联机

经过上一流程,steamcmd成功安装,输入下面的指令来运行steamcmd:

./steamcmd.sh

其中./的意思是当前所在文件夹,./steamcmd.sh即相当于您打开windows文件资源管理器视窗,在所在的目录./双击了一下steamcmd.sh这个脚本来运行它,因此需要保证你已经通过cd指令进入了含有steamcmd.sh文件的目录当中,您可以通过ls指令查看当前目录下的所有文件检查自己是否在正确的目录当中。 如果您在确定自己所在目录上遇到了困难,也可以通过完整的文件路径来运行steamcmd,像这样: ~/steamcmd/steamcmd.sh 这个指令表示运行"/home/steam/steamcmd/steamcmd.sh"

成功运行steamcmd.sh后,屏幕上将会显示出以下信息:

Redirecting stderr to '/home/steam/Steam/logs/stderr.txt' [ 0%] Checking for available updates... [----] Verifying installation... Steam Console Client (c) Valve Corporation -- type 'quit' to exit -- Loading Steam API...OK. Steam>

看到以上这些信息,您就成功运行了steamcmd.sh了,下面,我们就可以通过这个steamcmd程序(这其实就是一个命令行形式的steam)来下载安装我们想要的饥荒游戏了!在Steam>后输入下面的信息:

force_install_dir "/home/steam/dst/"

这个指令的意思是强制steamcmd将游戏下载到"/home/steam/dst/"这个目录中,linux会自动创建名叫dst的文件夹在dst下。(注意,这个更改是暂时的,即您退出再进入steamcmd的话需要再次输入这个指令来更改游戏的安装目录。)如果您在创建用户时选择了“steam”以外的用户名,则要将双引号里的内容改成"/home/你设置的用户名/dst/"。

再输入下面的指令:

login anonymous

这个指令的意思是“匿名登录steam”,相当于不登陆地打开了steam商店。输入后屏幕上应当会显示以下信息:

Connecting anonymously to Steam Public...Logged in OK Waiting for user info...OK Steam>

接下来输入下面的指令:

app_update 343050 validate

这个指令意思是安装编号为343050的游戏,这个编号是服务器版Don’t Starve Together的编号,在网站https://steamdb.keylol.com/可以搜索到。

等待它安装完成后,就可以输入exit指令退出steamcmd了。

exit 启动游戏 文件准备

在开始启动你的DST服务器之前,我们必须把一个存档启动所需的文件准备齐全,并放置到相应的文件夹当中。下图展示了整个流程中会需要编辑或添加的所有文件在文件系统中的层级结构。 file_structure

/etc/sudoers是存放用户配置的文件,用于调整不同用户的权限,我们在之前的步骤里已经修改过了/home/steam/steamcmd/steamcmd.sh是用于启动命令行版steam(steamcmd)的脚本/home/steam/dst/bin内存放着dontstarve_dedicated_server_nullrenderer,这是启动饥荒服务器的文件/home/steam/dst/mods/dedicated_server_mods_setup.lua是控制mod的总文件注意,.klei是隐藏文件夹,因此你用ls指令打印该目录下内容时,是无法看到它的,但是仍旧可以通过cd命令来进入。/home/steam/.klei/DoNotStarveTogether/,该目录下的每一个文件夹都代表着一个存档。默认情况下这个目录是空的,当我们未指定存档而直接启动了饥荒服务器的时候,它会自动产生一个全新的空白存档,命名格式为Cluster_1、Cluster_2,以此类推。由于版本的更新,modoverrides.lua已变成worldgenoverrides.lua 生成服务器token(令牌)

打开饥荒联机游戏,点击主界面左下的account。 在这里插入图片描述 获取到自己的用户编号KU_xxxxxxx,这是klei后台识别用户的具有唯一性的id,后续要把其他人设为管理员的话就需要获取对方在这个页面显示的id。开设服务器的用户会自动成为该服务器的管理员,不需要额外设置。 点击菜单中的游戏。 在这里插入图片描述 点击图示按钮,进入饥荒联机服务器的设定页面。 在这里插入图片描述 给服务器设置一个名字,添加服务器。注意,此处的名字不一定是房间名,主要是用来做备注区分不同服务器的,房间名需要在后续流程中通过写入cluster.ini另外设置。 在这里插入图片描述 复制并且妥善保存这行token,最好建立个单独的txt或者在你习惯的地方统一放着用户id、服务器token等信息。 在这个页面里,点击配置服务器并不会真的直接配置好你的服务器,他只是klei提供的一个方便大家获取cluster.ini文件的工具。输入相应的配置,可以直接下载一个包含一个完整空白存档的压缩包,其中会自动为我们填写好cluster.ini cluster_token.txt等文件,待会我们要将存档上传到服务器相应的位置,才能算是配置好。 在这里插入图片描述

搬移已有的旧存档并启动

从本机文件夹里找到存档。 此处仅以steam端为例。一般而言,steam上的饥荒联机存档默认放在电脑的“文档”文件夹中,路径大致如下: C:\Users\\Documents\Klei\DoNotStarveTogether\\Cluster_1 此目录中的Cluster_1、Cluster_2等等,分别对应饥荒联机游戏界面中第一个存档 位、第二个存档位,取自己所需的旧存档即可,请记得备份。

配置旧存档(以 Cluster_1 为例)。 进入Cluster_1,更改cluster_token.txt的内容为之前我们获取的token。 更改cluster.ini的内容为我们获取token时下载的配置文件中的cluster.ini。

检查服务器端的目录完整性。 以安装了饥荒联机的用户登录服务器,进入home文件夹中,使用ls -al命令查看是否含有.klei/DoNotStarveTogether文件夹,若没有,则需用mkdir新建缺失的部分。

ls -al # 因为.klei默认是隐藏文件夹,所以需要加-al来检查它是否存在 mkdir .klei # 若.klei文件夹不存在,创建它 mkdir DoNotStarveTogether # 若DoNotStarveTogether不存在,在.klei里创建它

用scp上传存档至服务器。 在cmd里输入以下指令:(如果正连接到服务器上,使用exit退出服务器或者关闭并重新打开命令提示符cmd。)

scp -P 12345 -r @:/home//.klei/DoNotStarveTogether E:/my_cluster # 其中-P 12345是指定scp通过你前面为ssh设置的新端口号登录,注意P需要大写 # -r是因为我们要搬移的是文件夹,需要特别指称,让计算机遍历整个文件夹及其子文件 # E:/my_cluster改成你旧存档文件夹的地址

scp指令的基本结构是: scp 当接收/发送目录为服务器端目录时,需要指定服务器的用户名与ip地址,格式如下: [email protected]:/home/username/the_folder username是需要登录的用户名称,111.111.111.111为服务器IP,冒号后的部分用于指定服务器上的某个目录作为接收/发送目录

启动旧存档。 ~/dst/bin/dontstarve_dedicated_server_nullrenderer -console -cluster "my_cluster" # -cluster "my_cluster"双引号内改成你自己旧存档的文件夹名字,注意是英文双引号 # -console 表示打开控制台,即存档运行期间你可以在服务器里像在饥荒游戏里一样输入控制台指令 # -cluster "my_cluster"最好放在最后,否则容易将其他参数识别为存档名 上传官方空白存档并启动(推荐) 在此新链接中选择Don’t Starve Together的Game Server,点击Add New Server增加一个新服务器设置,按照提示填写好需要的内容后,点击Download Settings下载你的配置文件压缩包。解压该压缩包,将文件夹名字更改为my_cluster或其他你喜欢的名字,注意,之后启动时将需要用到这个文件名字,本文中将延用my_cluster作为存档文件夹名。(该名字仅用于启动存档时的代称,与你服务器在网络上显示的名称无关)用scp上传该文件夹到服务器 在cmd里输入以下指令:(如果正连接到服务器上,使用exit退出服务器或者关闭并重新打开命令提示符cmd。)scp -P 12345 -r @:/home//.klei/DoNotStarveTogether E:/my_cluster # 其中-P 12345是指定scp通过你前面为ssh设置的新端口号登录,注意P需要大写 # -r是因为我们要搬移的是文件夹,需要特别指称,让计算机遍历整个文件夹及其子文件 # E:/my_cluster改成你旧存档文件夹的地址

scp指令的基本结构是: scp 当接收/发送目录为服务器端目录时,需要指定服务器的用户名与ip地址,格式如下: [email protected]:/home/username/the_folder username是需要登录的用户名称,111.111.111.111为服务器IP,冒号后的部分用于指定服务器上的某个目录作为接收/发送目录

启动并测试。 ~/dst/bin/dontstarve_dedicated_server_nullrenderer -console -cluster "my_cluster" # -cluster "my_cluster"双引号内改成你自己改的存档的文件夹名字,注意是英文双引号 # -console 表示打开控制台,即存档运行期间你可以在服务器里像在饥荒游戏里一样输入控制台指令 # -cluster "my_cluster"最好放在最后,否则容易将其他参数识别为存档名 新建存档并启动 ~/dst/bin/dontstarve_dedicated_server_nullrenderer -console -cluster "my_cluster" # -cluster "my_cluster"双引号内改成你自己想新建的存档名字 # -console表示打开控制台,即存档运行期间你可以在服务器里像在饥荒游戏里一样输入控制台指令 # -cluster "my_cluster"最好放在最后,否则容易将其他参数识别为存档名 c_shutdown() # 关闭服务器 cd ~/.klei/DoNotStarveTogether/my_cluster # my_cluster改成自己起的存档名字 vi cluster_token.txt # 把复制的token粘贴到cluster_token.txt文件里 vi cluster.ini # 配置该存档 ~/dst/bin/dontstarve_dedicated_server_nullrenderer -console -cluster "my_cluster" # 再次启动存档 游戏服务器后台运行

用上边两种方法启动服务器,当你关闭命令行窗口断开ssh连接,游戏服务器就会停止运行。为了更方便使用,不需要时时刻刻保持ssh连接,我们需要在服务器上安装软件screen来“最小化”饥荒联机,让它可以保持在后台运行,即使断开连接也不会受到影响。 利用screen,我们还可以在服务器上同时运行多个饥荒存档,也可以开启洞穴(前提是你的服务器硬件资源足够,你可以查看文章前面的“选购服务器-配置选择”来计算你的服务器资源可以提供多少个饥荒存档同时正常运行)。

sudo yum install screen # 使用管理员身份安装screen cd ~/dst/bin screen -S "name" ./dontstarve_dedicated_server_nullrenderer -console -cluster "cluster_name" # 用screen来启动相当于打开了一个新窗口,在新窗口启动饥荒(不带洞穴) # -S "name"表示为这个小窗口起名为name

screen使用简介:

screen -ls # 查看当前所有窗口 screen -r name_you_like # 打开名叫name_you_like的窗口 # 同时按ctrl+a+d来切换当前窗口 # 想删除一个窗口,先打开它,停止正在运行的程序,再输入exit即可

用screen指令启动存档后,用快捷键ctrl+a+d切换窗口,然后即使退出ssh连接、关闭cmd,你启动的饥荒存档也会在服务器的后台继续运行。 关闭后想再次打开,使用服务器的控制台或者关闭存档时:ssh连接服务器,screen -ls查看正在运行的窗口,screen -r name_you_like打开正在运行饥荒存档的窗口。就可以输入控制台指令。其中,输入c_shutdown()会保存并关闭存档。

添加并配置mods

获取mods的ID 在steam的创意工坊中找到所需的mod或者mod合集,并复制其网址链接,链接最后的数字即为mod/mod合集的id。 例如:Global Positions在创意工坊中的网址

https://steamcommunity.com/sharedfiles/filedetails/?id=378160973

其中378160973就是我们需要的mod id。

在mods文件/home/steam/dst/mods/dedicated_server_mods_setup.lua中按照文件提示的格式写入id

vi /home/steam/dst/mods/dedicated_server_mods_setup.lua # 一般每个mod都要写入两句函数,格式如下: # 其中第一句用来下载安装mod,第二句用来指定游戏启动时自动更新mod ServerModSetup("此处填入mod id数字号码") ServerModCollectionSetup("此处也填入mod id数字号码")

重启服务器,使其自动下载mods,检查是否正常

开启洞穴

在你的饥荒云服中开启洞穴有两种方式:

在同一个服务器上同时运行地面部分和洞穴部分。在两个不同的服务器上分别运行地面部分和洞穴部分。 单个服务器开洞穴

考虑到预算问题,大部分人应该还是会选择第一个方案。 在进行下列步骤之前,请确认你对主服务器的洞穴设置开关是打开的。 为了打开洞穴,我们需要分别为洞穴和主地图分别配置相关参数属性。 如果您是通过上传官方新存档来创建存档的,则可以跳过下面的检查步骤。

检查文件缺失。 对照前面的文件层级结构,在已存在的存档/home/steam/.klei/DoNotStarveTogether/my_cluster/中寻找是否有文件缺失,请注意由于版本更新,某些文件名可能发生了更改。其中adminlist.txt是可选的,我们可以暂时不添加进去。 cd /home/steam/.klei/DoNotStarveTogether/my_cluster # ls指令查看当前目录下的文件 ls # 若Caves文件夹不存在,则创建它 mkdir Caves # 进入Caves文件夹 cd Caves # 若server.ini不存在,则创建它 touch server.ini # 编辑洞穴的设置文件server.ini vi server.ini

server.ini的内容编辑如下,其中数字保持为Master/server.ini中相应位置数字再+1:

[NETWORK] server_port = 11001 [SHARD] is_master = false name = Caves [STEAM] master_server_port = 27019 authentication_port = 8769 同时启动洞穴和主地图 # 启动主地图 ~/dst/bin/dontstarve_dedicated_server_nullrenderer -console -cluster "my_cluster" -shard Master # ctrl + a + d 切换为第二个窗口(详见前文“启动游戏/游戏服务器后台运行”) ~/dst/bin/dontstarve_dedicated_server_nullrenderer -console -cluster "my_cluster" -shard Caves # ctrl + a + d 切换为第三个窗口 此时可退出服务器进行测试 两个服务器开洞穴 Q&A 如果遇到找不到libcurl-gnutls.so.4的报错,譬如:“error while loading shared libraries: libcurl-gnutls.so.4: cannot open shared object file: No such file or directory”,可以参考下列的解决方法: cd /usr/lib sudo ln -s libcurl.so.4 libcurl-gnutls.so.4


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有