Jianrry

【饥荒联机版】专用服务器快速搭建指南(Windows)
这篇指南介绍了如何快速搭建【饥荒联机版】专用服务器,专用服务器在一定程度上可以降低游戏的延迟,可以减少出现掉线、延...
扫描右侧二维码阅读全文
06
2019/02

【饥荒联机版】专用服务器快速搭建指南(Windows)

这篇指南介绍了如何快速搭建【饥荒联机版】专用服务器,专用服务器在一定程度上可以降低游戏的延迟,可以减少出现掉线、延迟过高的情况。如果你很喜欢这款游戏,建议你去尝试一下搭建专用服务器。

一:基础篇

1.下载并安装SteamCMD(必选)

1)下载SteamCMDhttps://steamcdn-a.akamaihd.net/client/installer/steamcmd.zip

2)将steamcmd.zip解压到:

C:\steamcmd

2.下载和更新DediServer Server(必选)

复制下面的代码:

c:\steamcmd\steamcmd.exe +login anonymous +app_update 343050 validate +quit

保存到:

C:\steamcmd\UpdateMyDediServer.bat

3.创建配置文件的存放目录:

C:\Users\[User]\Documents\Klei\DoNotStarveTogether\MyDediServer
C:\Users\[User]\Documents\Klei\DoNotStarveTogether\MyDediServer\Master
C:\Users\[User]\Documents\Klei\DoNotStarveTogether\MyDediServer\Caves

4.创建服务器基本设置文件(必选)

复制下面的代码(#后面的内容是我写的注释,不要复制到配置文件中):

[GAMEPLAY]
game_mode = survival                      # game_mode(游戏模式):survival(生存), endless(荒野) or wilderness(无尽),默认survival
max_players = 6                           # max_players(最大人数):取值范围在1-64之间,默认6人
pvp = false                               # pvp(是否开启pvp模式):true or false,默认false
autosaver_enabled = true                  # autosaver_enabled(是否开启天亮自动保存):true or false,默认false
pause_when_empty = true                   # pause_when_empty(服务器无人时,是否暂停):true or false,默认false
vote_kick_enabled = false                 # vote_kick_enabled(是否允许玩家投票踢人):true or false,默认false


[NETWORK]
cluster_name = Jianrry's World            # cluster_name(服务器名称):建议使用英文,使用中文可能会出现乱码
cluster_description =Welcome to my world! # cluster_description(服务器描述): 建议使用英文,使用中文可能会出现乱码
cluster_intention = cooperative           # cluster_intention(游戏风格):cooperative(合作), competitive(竞争), social(交际), or madness(疯狂),默认cooperative
cluster_password = 1010                       # cluster_password(房间密码):默认为空,无密码              
offline_server = false                    # offline_server(是否离线服务器): true or false,默认false。离线服务器,只有同一局域网的用户才能加入,所有依赖Steam的功能均不可用,比如说礼物掉落
lan_only_cluster = false                  # lan_only_cluster(是否只允许同一局域网加入游戏):true or false,默认false。
tick_rate = 15                            # tick_rate(每秒通信次数):取值范围在15-60之间,次数越多,游戏体验越好,但会加大服务器负担,默认15。
whitelist_slots = 1                       # whitelist_slots(白名单席位):为白名单用户保留的席位,默认是0

[STEAM]
steam_group_only = false                  # steam_group_only(是否只允许某个Steam群组的成员加入):true or false,默认false          
steam_group_id = 28205197                 # steam_group_id(Steam组的id):此次填写你想指定的Steam群组的id               
steam_group_admins = true                 # steam_group_admins(Steam组的管理员是否拥有服务器的管理员权限):true or false,默认false 

[MISC]
console_enabled = true                    # console_enabled(是否开启控制台):true or false,默认true。  
max_snapshots = 6                         # max_snapshots(最大快照数):服务器保留的最大快照数,决定了可回滚的天数

[SHARD]
shard_enabled = true                      # shard_enabled(是否开启服务器共享):true or false,默认true。如果开启洞穴服务器,则必须启用服务器共享。
bind_ip = 127.0.0.1                       # bind_ip(服务器监听的ip地址):当所有实例都运行在同一台机器时,可填写 127.0.0.1,默认127.0.0.1                
master_ip = 127.0.0.1                     # master_ip(Master服务器的ip地址):针对非 master 服务器,若与 master 服务器运行在同一台机器时,可填写 127.0.0.1
master_port = 10000                       # master_port(master 服务器的 UDP 端口):所有连接至 master 服务器的非 master 服务器必须相同
cluster_key = Jianrry                     # cluster_key(服务器连接密码):每台服务器必须相同

保存到:

C:\Users\[User]\Documents\Klei\DoNotStarveTogether\MyDediServer\cluster.ini

5.生成访问令牌(必选)

生成访问令牌的方式有2种:

方式一(推荐):登陆Klei账号后,生成访问令牌

方式二:登陆游戏后,按下Tab上面的那个键打开控制台,输入TheNet:GenerateClusterToken(),将会生成访问令牌到:

C:\Users\[User]\Documents\Klei\DoNotStarveTogether\[ID]\cluster_token.txt

将访问令牌保存到:

C:\Users\[User]\Documents\Klei\DoNotStarveTogether\MyDediServer\cluster_token.txt

6.创建Master、Caves服务器配置文件(必选)

地表(Master):

复制下面的代码(#后面的内容是我写的注释,不要复制到配置文件中):

[SHARD]
is_master = true             # is_master(是否是主世界):true or false,主世界是true,从世界是false,只能存在一个主世界和若干个从世界
name = Master                # name(服务器名):确保每一个实例都不相同
id = 1                       # id(世界id):主世界默认是1,无论是否设置,确保每一个实例都不相同    

[NETWORK]
server_port = 10001          # server_port(服务器端口):取值范围在10998-11018,确保每一个实例都不相同


[STEAM]
master_server_port = 20001   # master_server_port(master服务器端口):取值范围在1-65535,确保每一个实例都不相同
authentication_port = 30001  # authentication_port(认证端口):取值范围在1-65535,确保每一个实例都不相同


[ACCOUNT]
encode_user_path = true

保存到:

C:\Users\[User]\Documents\Klei\DoNotStarveTogether\MyDediServer\Master\server.ini

洞穴(Caves)

复制下面的代码(#后面的内容是我写的注释,不要复制到配置文件中):

[SHARD]
is_master = false          # is_master(是否是主世界):true or false,主世界是true,从世界是false,只能存在一个主世界和若干个从世界
name = Caves               # name(服务器名):确保每一个实例都不相同
id = 2                     # id(世界id):确保每一个实例都不相同


[NETWORK]
server_port = 10002        # server_port(服务器端口):取值范围在10998-11018,确保每一个实例都不相同


[STEAM]
master_server_port = 20002 # master_server_port(master服务器端口):取值范围在1-65535,确保每一个实例都不相同
authentication_port =30002 # authentication_port(认证端口):取值范围在1-65535,确保每一个实例都不相同


[ACCOUNT]
encode_user_path = true

保存到:

C:\Users\[User]\Documents\Klei\DoNotStarveTogether\MyDediServer\Caves\server.ini

7.设置世界地形(必选)

生成世界地形的方式有三种,这里只介绍其中一种。

地表世界地形(必选)

本地存档的地形配置文件(leveldataoverride.lua)、Mod配置文件(modoverrides.lua)可以替代DediServer Server中对应的配置文件。

1)删除之前的存档,重新创建一个新的存档

2)复制下面的文件:

C:\Users\[User]\Documents\Klei\DoNotStarveTogether\[ID]\Cluster_1\Master\leveldataoverride.lua

黏贴到:

C:\Users\[User]\Documents\Klei\DoNotStarveTogether\MyDediServer\Master\leveldataoverride.lua

洞穴世界地形(必选)

重复上面的步骤,复制下面的文件:

C:\Users\[User]\Documents\Klei\DoNotStarveTogether\[ID]\Cluster_1\Caves\leveldataoverride.lua

黏贴到:

C:\Users\[User]\Documents\Klei\DoNotStarveTogether\MyDediServer\Caves\leveldataoverride.lua

8.下载和启用Mod(可选)

下载和更新Mod(可选)

1).运行UpdateMyDediServer.bat,等待程序下载完成后自动退出

2).复制下面的代码:

<!--将下面Mod的ID改为你想要添加的Mod的ID,一行一个,不需要任何符号隔开。-->

<!--ServerModSetup("367546858"):下载和更新ID为"367546858"的Mod-->

<!--ServerModCollectionSetup("876487357"):下载和更新ID为"876487357"的合集里面的全部Mod-->

<!--推荐使用ServerModCollectionSetup,可以直接在合集里面添加和移除Mod,无需修改配置文件-->

ServerModSetup("367546858")
ServerModSetup("378160973")
ServerModSetup("458587300")
ServerModSetup("666155465")
ServerModSetup("375859599")
ServerModSetup("737932010")
ServerModSetup("375850593")

或者:

ServerModCollectionSetup("876487357")

保存到:

C:\steamcmd\steamapps\common\Don't Starve Together Dedicated Server\mods\dedicated_server_mods_setup.lua

配置Mod选项(可选)

重复上面的步骤(见“设置世界地形”),复制下面的文件:

C:\Users\[User]\Documents\Klei\DoNotStarveTogether\[ID]\Cluster_1\Master\modoverrides.lua
C:\Users\[User]\Documents\Klei\DoNotStarveTogether\[ID]\Cluster_1\Caves\modoverrides.lua

黏贴到:

C:\Users\[User]\Documents\Klei\DoNotStarveTogether\MyDediServer\Master\modoverrides.lua
C:\Users\[User]\Documents\Klei\DoNotStarveTogether\MyDediServer\Caves\modoverrides.lua

9.启动服务器(必选)

1)复制下面的代码:

cd /D "c:\steamcmd\steamapps\common\Don't Starve Together Dedicated Server\bin"
start dontstarve_dedicated_server_nullrenderer -console -cluster MyDediServer -shard Master
cd /D "c:\steamcmd\steamapps\common\Don't Starve Together Dedicated Server\bin"
start dontstarve_dedicated_server_nullrenderer -console -cluster MyDediServer -shard Caves

保存到:

C:\steamcmd\StartMaster.bat
C:\steamcmd\StartCaves.bat

2)运行“StartMaster.bat”和“StartCaves”,等待服务器启动

二:进阶篇

10.设置管理员(可选)

获取服务器的管理员权限有3种方式:

1)访问令牌的所有者默认拥有服务器的管理员权限

2)如果设置了Steam群组,则Steam组的管理员自动拥有服务器的管理员权限(推荐)

[STEAM]
steam_group_only = false                 
steam_group_id = 28205197                                      
steam_group_admins = true

如上所示,id为28205197的Steam群组的管理员自动拥有服务器的管理员权限,同时允许非群组成员加入服务器

3)① 用户登陆Klei账号后,就会看到一串以KU_开头的字符, 这就是Klei ID

②将获取的Klei ID保存到(一行一个,不需要任何符号隔开):

C:\Users\[User]\Documents\Klei\DoNotStarveTogether\MyDediServer\admin.txt

11.创建白名单(可选)

为了避免出现服务器人数达到上限后而无法加入的情况,可以设置白名单。

白名单席位是为白名单用户准备的,只能白名单用户加入,普通用户无法加入。

比如说设置了服务器的最大人数为6人(max_players = 6 ),保留了一个白名单席位(whitelist_slots = 1),则最多可以同时加入5个普通玩家和1个白名单玩家,白名单席位占用最大人数。

1)重复上面的步骤(设置管理员),将获取的Klei ID保存到(一行一个,不需要任何符号隔开):

C:\Users\[User]\Documents\Klei\DoNotStarveTogether\MyDediServer\whitelist.txt

2)设置白名单席位

编辑下面的文件,修改whitelist_slots的参数,然后保存

C:\Users\[User]\Documents\Klei\DoNotStarveTogether\MyDediServer\cluster.ini

12.创建黑名单(可选)

为了防止世界被破坏,为了守护世界的和平,这个时候就轮到黑名单出场了。

1)查看服务器的日志,将你想要封禁的用户的64位Steam ID,保存到(一行一个,不需要任何符号隔开):

C:\Users\[User]\Documents\Klei\DoNotStarveTogether\MyDediServer\blocklist.txt

三、高级篇

13.在同一服务器上同时运行多个Master和Caves服务器(可选)

1) 将“Master”和“Caves”分别复制一份,分别重命名为“Master2”和“Caves2”,修改里面的配置文件,然后保存。

Master2中的“server.ini”:

[SHARD]
is_master = false
name = Master2
id = 3


[NETWORK]
server_port = 10003


[STEAM]
master_server_port = 20003
authentication_port = 30003


[ACCOUNT]
encode_user_path = true

Caves2中的“server.ini”:

[SHARD]
is_master = false
name = Caves2
id = 4


[NETWORK]
server_port = 10004


[STEAM]
master_server_port = 20004
authentication_port = 30004


[ACCOUNT]
encode_user_path = true

2)将“StartMaster.bat”和“StartCaves”分别复制一份,分别重命名为“StartMaster2.bat”和“StartCaves2”,修改里面的代码之后保存。

StartMaster2.bat

cd /D "c:\steamcmd\steamapps\common\Don't Starve Together Dedicated Server\bin"
start dontstarve_dedicated_server_nullrenderer -console -cluster MyDediServer -shard Master2

StartCaves2.bat

cd /D "c:\steamcmd\steamapps\common\Don't Starve Together Dedicated Server\bin"
start dontstarve_dedicated_server_nullrenderer -console -cluster MyDediServer -shard Caves2

3)逐一运行“StartMaster.bat”和“StartCaves”、“StartMaster2.bat”和“StartCaves2”,等待服务器全部启动成功。

4)进入游戏,切换到英文输入法,按下Tab上面的那个按键,打开控制台,按下ctrl切换到远程输入模式,依次输入下面的代码:

创建旅行机器(相当于落水洞,可以到达另一个世界):

c_spawn("migration_portal")

靠近旅行机器,设定到达的世界:

c_find("migration_portal").components.worldmigrator:SetDestinationWorld("1",true)

上面的“1”是世界对应的id,主世界的id默认是1,从世界的id需要自行设置,见Master中的server.ini里面的id。

14.在不同的服务器上分别运行地表和洞穴服务器(可选)

重复上面的步骤(见“在同一服务器上同时运行多个Master和Caves服务器”),修改下面的文件:

C:\Users\[User]\Documents\Klei\DoNotStarveTogether\MyDediServer\cluster.ini

master_ip改为 主世界的公网ip,bind_ip改为0.0.0.0,确保每一台实例中的cluster_key保持一致,最后分别在不同的服务器上启动对应的实例即可。

四:文件目录和文件汇总:

\Documents\Klei\DoNotStarveTogether\MyDediServer                               # 所有配置文件的存放目录
\Documents\Klei\DoNotStarveTogether\MyDediServer\cluster_token.txt             # 访问令牌
\Documents\Klei\DoNotStarveTogether\MyDediServer\cluster.ini                   # 服务器基本配置文件
\Documents\Klei\DoNotStarveTogether\MyDediServer\admin.txt                     # 管理员名单
\Documents\Klei\DoNotStarveTogether\MyDediServer\whitelist.txt                 # 白名单
\Documents\Klei\DoNotStarveTogether\MyDediServer\blocklist.txt                 # 黑名单

\Documents\Klei\DoNotStarveTogether\MyDediServer\Master                        # Master服务器的配置文件存放目录
\Documents\Klei\DoNotStarveTogether\MyDediServer\Master\server.ini             # Master服务器的配置文件
\Documents\Klei\DoNotStarveTogether\MyDediServer\Master\leveldataoverride.lua  # Master服务器的地形配置文件
\Documents\Klei\DoNotStarveTogether\MyDediServer\Master\modoverrides.lua       # Master服务器的Mod配置文件

\Documents\Klei\DoNotStarveTogether\MyDediServer\Caves                         # Caves服务器的配置文件存放目录                         
\Documents\Klei\DoNotStarveTogether\MyDediServer\Caves\server.ini              # Caves服务器的配置文件
\Documents\Klei\DoNotStarveTogether\MyDediServer\Caves\leveldataoverride.lua   # Caves服务器的地形配置文件
\Documents\Klei\DoNotStarveTogether\MyDediServer\Caves\modoverrides.lua        # Caves服务器的Mod配置文件
C:\steamcmd                                    # SteamCMD的安装目录
C:\steamcmd\UpdateMyDediServer.bat             # 下载和更新DediServer Server的脚本
C:\steamcmd\StartMaster.bat                    # 启动Master服务器的脚本
C:\steamcmd\StartCaves.bat                     # 启动Caves服务器的脚本

C:\steamcmd\steamapps\common\Don't Starve Together Dedicated Server\mods\dedicated_server_mods_setup.lua    
                                               # 下载和更新Mod的配置文件

五:常见问题

Q:为什么无法连接服务器?

A:1.检查防火墙是否放行了对应的端口,确保上述的端口全部放行,或者直接关闭防火墙,放行全部端口。
2.如果用的是云服务器,检查安全组里面是否放行了对应的端口,确保上述的端口全部放行。

Q:为什么出现中文乱码?

A:建议使用notepad++进行编辑,最后以UTF-8无BOM编码格式进行保存。

六:更新记录

2018/07/28:发布了Windows 下搭建饥荒联机版专属服务器

2019/02/06: 发布了【饥荒联机版】专用服务器快速搭建教程(Windows)

最后修改:2019 年 02 月 14 日 03 : 13 PM
如果觉得我的文章对你有用,请随意赞赏

发表评论