饥荒联机版玩家们需要在游戏中和朋友们齐心协力共同生存下去,所以说拥有一个好的服务器是决定你能否与朋友长久玩下去的关键,饥荒由于其本身制作的原因其最适合运行的系统是linux,可以很好的降低服务器长时间运行所引起的卡顿,小伙伴们可以参考一下小编给你们带来的饥荒联机版服务器建立攻略,希望能给小伙伴们带来一些帮助!
服务器建立图文教程
一、概要
1.1 教程对象:
对linux服务器有基础了解的人、对各大厂商的云服务器有兴趣的人、善于排查debug的人
1.2 Linux建服优势:
在服务器领域,linux和windows的优劣网上一查就有,我这就不多说了,就单提几点
1、linux建服后,可以做到无人值守,存档主体由服务器托管,对人无依赖。
2、linux服务器版本无图形计算,对资源消耗低
3、linux本身就是一款主流的服务器操作系统,性能稳定耐用,对资源消耗低,极长时间开着也很稳定。(我linux的云主机将近一年没关机了,上面的应用例如VPN还稳定得很)
1.3 教程基础需求:
steam正版饥荒联机版一份,云平台服务器一台,自家电脑一台(废话),SecureCRT等ssh连接软件
1.4 关于本教程
文笔仓促,难免有疏漏之处
如果图片分辨率不对,请点击放大查看,谢谢各位。
二、前期准备
1、先申请一台云服务器,各大主流厂商的都可以,一般来说都会带有公网IP的,我这里用的是AWS的一年免费套餐。单核1G内存主机,带宽流量一个月总量不超15G的传出就可以,SSD IO写入不超过50G就可以。详细各大云平台的产品自己去看吧,这里就不做广告了。
2、我采用的是centos 7操作系统,64位,因此先安装依赖,安装依赖用yum命令即可
备注:我尝试使用6.5系统发现不成功,原因是饥荒主程序需要glibc.i686依赖,版本需要2.15版本,但是6.5好像默认最高才2.14,因此我必须用centos7或者reht7
用SCRT登录服务器,切换到root,安装依赖,注意前面几个lib的依赖库,都是要32位版本的
因为steamcmd是一个32位的程序,因此安装之前最好yum search 对应的包,看看i386 i686 x86之间的版本。不同的linux发行版可能不同yum源,各个yum源的版本命名可能有点不一致。
yum install glibc.i686 libstdc++.i686 libcurl4-gnutls-dev.i686 screen lrzsz unzip
注意,我们要装32位的,如果yum里面提示.x86的,是64位的。有可能ibcurl4-gnutls在某些源找不到,直接安装libcurl,然后做个软链
cd /usr/lib/
ln -s libcurl.so.4.3.0 /usr/lib/libcurl-gnutls.so.4
这样也可以启动,但是启动是时候会有个警告,说版本似乎不对,可以忽略。
screen这个软件用于把饥荒程序挂入后台,这样即使关闭了终端,也可以使用
lrzsz 用于安装rz sz命令,用于服务器和自己电脑上传下载文件
unzip用于解压zip包
三、安装steamcmd
类比个人win7下面玩steam的饥荒,换成Linux也一样,首先要安装个steam的命令行版本,然后下载游戏的服务器版
先创建一个服务器上面的steam账号,如同你在win7也是要一个账号才能登入。linux的账号系统比win7要强很多,文件资源都是以账号来划分的。
useradd steam
创建密码
passwd steam
这里不用说了,其实很简单,按照代码执行即可。
su - steam
mkdir ~/steamcmd
cd ~/steamcmd
wget http://media.steampowered.com/installer/steamcmd_linux.tar.gz
tar -xvzf steamcmd_linux.tar.gz
./steamcmd.sh
login anonymous
force_install_dir /home/steam/steamapps/DST
app_update 343050 validate
quit
四、配置目录
网上凡是看到setting.ini,都是旧版饥荒,新版的都是使用cluster.ini和server.ini和server.ini
简单梳理一下,我们当前服务器上面的目录
#steamcmd的位置
~/steamcmd
#饥荒配置及存档的位置
~/.klei/DoNotStarveTogether/MyDediServer/Master
#饥荒主程序的位置
/home/steam/steamapps/DST
先创建饥荒的配置目录,注意,DoNotStarveTogether后面的一层目录,就是存档和配置的主体目录了,我这里命名为MyDediServer,你用其他什么名字都可以,然后这层目录后面再创建一个Master目录。
Master目录就是地上世界,如果要创建洞穴,那还要再这层目录创建一个Cave目录
一条命令解决
mkdir -p ~/.klei/DoNotStarveTogether/MyDediServer/Master
创建一个cluster.ini。用于记录服务器的模式
cd ./.klei/DoNotStarveTogether/MyDediServer/
vim cluster.ini
#填写一下内容,参数参考饥荒官方论坛最新的文档
[GAMEPLAY]
game_mode = endless
max_players = 6
pvp = false
pause_when_empty = true
enable_snapshots = true
enable_autosaver = true
[NETWORK]
cluster_description = lich world
cluster_name = lich world
cluster_intention = cooperative
cluster_password =
[MISC]
console_enabled = true
[SHARD]
shard_enabled = true
bind_ip = 127.0.0.1
master_ip = 127.0.0.1
master_port = 10889
cluster_key = supersecretkey
创建一个server.ini。用于记录地上世界和steam的各项认证端口,需要放在Master目录下面
cd Master
vim server.ini
编辑如下
[NETWORK]
server_port = 11000
[SHARD]
is_master = true
[STEAM]
master_server_port = 27018
authentication_port = 8768
然后,饥荒为了反盗版,需要用令牌来开服,用win7登录steam,然后按出控制台(我是按~键),然后输入TheNet:GenerateClusterToken()
令牌将会在你的C:\Users\Administrator\Documents\Klei\DoNotStarveTogether里面生成,名字是 cluster_token.txt
在服务器输入命令
cd ~/.klei/DoNotStarveTogether/MyDediServer
rz -be
把刚刚的令牌上传到这里
五、配置mod
我这里都是用steam的创意工坊mod,非创意工坊的mod没试过,请其他大神支招。
mod有两个需要进入配置的目录,第一个配置在饥荒程序位置,文件是dedicated_server_mods_setup.lua,用于通知程序启动时候,需要下载哪些创意工坊mod。
cd /home/steam/steamapps/DST/mods
vim dedicated_server_mods_setup.lua
参考以下格式,其中数字就是mod的编号,编号可以在steam的创意工坊页里面获取,有2个最简单粗暴的办法
1、到创意工坊,Mod的详情页,把url后面的数字参数复制出来,那个就是编号,例如
Albert Higgsbury
一个 Don't Starve Together 的创意工坊物品
作者:not Wilson
Commissioned by quoth143! Albert Higgsbury is the brother of Wilson who had a rather unfortunate deal handed to him when his brother took the nightmare throne (See Cyclum here:...
683832500
2、到win7 steam 饥荒游戏本地的目录,有个mod的文件夹,里面的目录后缀就是编号。目录里面有modinfo.lua,用notepad++或者其他文本编辑工具打开,可以看到是什么mod,什么内容,有什么配置。
ServerModSetup("656256171")
ServerModSetup("458587300")
ServerModSetup("387385956")
ServerModSetup("597710604")
ServerModSetup("375859599")
注意,服务器安装mod的时候,最好只安装服务器mod而不是客户端mod,如何分辨呢?也是有2个最简单粗暴的办法
1、modinfo.lua里面有写
2、先用steam订阅mod,然后进入win7 steam版饥荒进入主菜单后,有个mod的选项,里面可以看到你订阅的mod是客户端mod还是服务器mod
3、安装Mod成功的话,/home/steam/steamapps/DST/mods目录会多了几个目录,开头是workshop-数字。这就是mod下载回来的实体。里面有modinfo.lua等文件。
然后配置一下mod对某个存档的启动
cd ~/.klei/DoNotStarveTogether/MyDediServer/Master
vim modoverrides.lua
return {
["workshop-597710604"] = { enabled = true },
["workshop-375859599"] = { enabled = true },
["workshop-458587300"] = { enabled = true },
["workshop-656256171"] = { enabled = true,
configuration_options =
{
give_dubloons= 3,
rec_gold = 1,
rec_dubloon = 1,
}
},
}
我看到各个lua文件都是755权限,因此我也改一下
chmod 755 modoverrides.lua
可以看到,我这里安装了5个mod,但只启动了4个,原因是有个mod在饥荒启动的时候有报错,因此我这里没写它。
然后可以看到,配置里面,
enabled = true 表示启动mod。其他configuration_options 可以在mod的modinfo.lua文件里面查阅,我这里是配置了一个老虎机mod,mod的编号是656256171,改了每天收到的金币数等参数,格式参考我的,以逗号分隔。
modinfo.lua里面有写参数的name 和 默认值,请仔细阅读。
modoverrides.lua必须放在Master目录里面,才会生效。
六、进阶配置及启动
配置管理员
cd ~/.klei/DoNotStarveTogether/MyDediServer/
vim adminlist.txt
然后写入用户id,这里不是指游戏ID,而是klei对各个正版玩家的一个编号。
编号可以在steam打开饥荒后,进入主菜单,右下角有个acc info的图表,点进去看。
或者每次有玩家进入你的服务器,控制台日志也会打印出它的编号
编辑完成后保存
启动
先说一下,配置好了之后,成功启动后,目录大致如下
网上有一堆大神的启动脚本,很不错可以用来参考。其实脚本里面都是检查路径什么的,更重要的是自己明白里面的内容,并且查看官方文档里面的启动参数。
直接挂入后台
screen -S dst
./dontstarve_dedicated_server_nullrenderer -console -cluster "MyDediServer" -shard Master -monitor_parent_process $$
注意,这里-cluster 就是指定用哪个存档,参考上图的存档目录图,我可以-cluster "lich" ,指定使用lich这个存档。
其他启动参数参考下面的引用。
启动完成后,命令行最终输出
此时已经成功启动是在饥荒控制台了,输入什么c_announce("hell全世界“),就可以操纵游戏了
然后按住ctrl键+a键,再按d键就可以退出当前的终端。这样饥荒所在的终端就挂入后台了
下次再进来就这样
screen -ls
看到那个终端id号,然后输入
screen -r [你的ID号]
这样就可以返回饥荒的控制台
如果当前的终端有其他窗口打开着,是Attached,你需要-Rd 强行抢占。
关闭服务器就直接进入screen后,按ctrl+c
正常启动之后,应该在饥荒浏览房间里面看到你的房间了
如果饥荒官方有版本更新,记得去更新一下,否则会看不到房间,执行如下命令则可以更新,更新时候需要关闭服务器。建议做个crontab,让服务器定期自己更新、停机维护,这里就不详细说了。