饥荒联机版玩家们需要在游戏中和朋友们齐心协力一同存活下去,所以说拥有一个好的服务器是决定你能否与朋友长久玩下去的重点,饥荒因为其本身制作是什么原因其比较适合运行的系统是linux,可以非常不错的减少服务器长期运行所引起的卡顿,小伙伴们可以参考一下记者给你们带来的饥荒联机版服务器打造攻略,期望能给小伙伴们带来一些帮助!
服务器打造图文课程
1、概要
1.1 课程对象:
对linux服务器有基础知道的人、对各大厂家的云服务器感兴趣的人、擅长排查debug的人
1.2 Linux建服优势:
在服务器范围,linux和windows的优劣网上一查就有,我这就不多说了,就单提什么时间
1、linux建服后,可以做到无人值守,存档主体由服务器推广托管,对人无依靠。
2、linux服务器版本无图形计算,对资源消耗低
3、linux本身就是一款主流的服务器操作系统,性能稳定耐用,对资源消耗低,极长期开着也非常稳定。(我linux的云主机将近一年没关机了,上面的应用比如VPN还稳定得非常)
1.3 课程基础需要:
steam正版饥荒联机版一份,云平台服务器一台,自己家里电脑一台(废话),SecureCRT等ssh连接软件
1.4 关于本课程
文笔仓促,难免有疏漏之处
假如图片分辨率不对,请点击放大查询,谢谢各位。
2、前期筹备
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包
3、安装steamcmd
类比个人Windows 7下面玩steam的饥荒,换成Linux也一样,第一要安装个steam的命令行版本,然后下载游戏的服务器版
先创建一个服务器上面的steam账号,好似你在Windows 7也是要一个账号才能登入。linux的账号系统比Windows 7要强不少,文件资源都是以账号来划分的。
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
4、配置目录
网上但凡看到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
然后,饥荒为了反盗版,需要用令牌来开服,用Windows 7登录steam,然后按出控制台(我是按~键),然后输入TheNet:GenerateClusterToken()
令牌将会在你的C:\Users\Administrator\Documents\Klei\DoNotStarveTogether里面生成,名字是 cluster_token.txt
在服务器输入命令
cd ~/.klei/DoNotStarveTogether/MyDediServer
rz -be
把刚刚的令牌上传到这里
5、配置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
一个 Dont 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、到Windows 7 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,然后进入Windows 7 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目录里面,才会生效。
6、进阶配置及启动
配置管理员
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,让服务器按期自己更新、停机维护,这里就不详细说了。