专用服务器配置项和命令行参数详解

1 点赞
饥荒联机版
转载

详解专用服务器中cluster.ini、server.ini的各配置项作用 服务器管理常见问题解答 服务器命令行启动参数详细说明 内容简介 写在最前:玩《饥荒》比较久,遇见很多问题,现将官方文档整理翻译,为中文社区做些贡献。文中个别地方加入了个人的理解,对于常见问题也做了记录。 本文分三部分。 如果想对服务器进行更精细的配置,以适应特定需求,请参阅cluster.ini和server.ini。ini配置项详解 如果需要控制服务器用户权限,设置管理员、设置黑白名单、预留空位,加入群组设定,请参阅常见问题解答 如果厌烦了每次建立新服务器都要调整一次配置文件,或是需要频繁的进行服务器参数微调测试,请参阅启动项命令行参数详解,用命令行参数覆盖配置文件中的设定。饥荒的专用服务器结构 饥荒的专用服务器采用分片结构,平日大家玩耍的地上、洞穴都独立运行,这里我们称之为分服。所有的分服组成了一个完整服务,这里我们称之为集群。 一个集群需要一个主分服。一般情况下,地上世界是一个集群里的主分服,一般称作主分服;地下世界洞穴是普通分服。 由于物理机性能各异,想让游戏流畅运行,需要选择一个合适的部署方式。通常情况下,有以下几个类型: 单一物理机运行

单物理机运行多个集群

双(多)物理机运行一个集群

搭建饥荒服务器实际是一个部署的过程。只要按照需求修改配置文件中的配置项,即可完成服务器功能的调整。 注意: 修改配置文件,不可以使用windows记事本。由于记事本采用UTF-8 BOM+的编码,会造成很多问题。 推荐使用Notepad++,Vim,Sublime Text,Editplus等编辑器调整配置文件。 cluster.ini配置项详解 [MISC]max_snapshots 默认值: 6 快照留存最大值。每次存档会生成一个快照,用于回滚游戏。游戏默认存档动作在天刚亮的时候执行。 console_enabled 默认值: true 允许在游戏控制台或正在运行的server终端中输入命令 [SHARD]shard_enabled 默认值: false 开启服务器分片。搭建多层世界,此配置项必须设置为true。单层世界可以忽略。 *每个cluster.ini中的设置必须一致。(见章节末尾说明) bind_ip 可被server.ini的配置覆盖 默认值: 127.0.0.1 在shard_enabled = true,is_master = true时,必须配置 bind_ip指定了主服务器监听分片服务器连接请求的网络地址。当分片服务器向此地址发出连接请求后,主服务器监听到请求,自动连接其他世界。如果你的主服务器和分片服务器都在同一台机器上,此值设为127.0.0.1即可;如果在不同的机器上,此值设为0.0.0.0。此配置项只需要在主服务器端的cluster.ini或server.ini中设定。 master_ip 可被server.ini的配置覆盖 默认值: none 在shard_enabled = true,is_master = false时,必须配置 未配置主服务器的分片服务器,将尝试使用此IP地址连接主服务器。如果一个集群中的所有服务器都在同一机器上,将此地址设置为127.0.0.1 master_port 可被server.ini的配置覆盖 默认值: 10888 主服务器对此UDP端口保持监听状态,未配置主服务器的分片服务器将使用此端口连接主服务器。对于所有分片服务器,应只在cluster.ini中保证唯一配置,或者直接忽略此配置项,采用默认配置。此配置项的值必须与主服务器的server_port值不同。 cluster_key 可被server.ini的配置覆盖 默认值: none 在shard_enabled = true时,必须配置 这是从属服务器连接主服务器时,用于验证的密码。如果主从服务器运行在不同的机器上,每台机器上配置的cluster_key值需保持一致。如果主从服务器在同一机器运行,在cluster.ini中设置一次即可。 *每个cluster.ini中的设置必须一致。(见章节末尾说明) [STEAM]steam_group_only 默认值: false 如果设置为true,服务器将仅允许steam_group_id配置项中所指定steam群组的成员加入。 steam_group_id 默认值: 0 用于给steam_group_only / steam_group_admins指定steam群组id。 steam群组id获取方法,见本指南“常见问题”部分。 steam_group_admins 默认值: false 如果设置为true,指定steam群组的管理员将自动成为饥荒服务器的管理员。 [NETWORK]offline_cluster 默认值: false 创建一个离线服务器。此服务器不会在公共服务器列表展示,只有本地用户可以加入,所有steam相关的功能无效。 *每个cluster.ini中的设置必须一致。(见章节末尾说明) tick_rate 默认值: 15 这个值表示服务器每秒向客户端刷新状态的次数。加大这个值会使客户端响应更加精确,但同时也会增加网络通讯压力。推荐将此值保持默认值15。如果确实要更改此设定,推荐在局域网环境下进行,取能整除60的值(15,20,30)。 whitelist_slots 默认值: 0 为白名单中的玩家预留的空位数量。要将玩家加入白名单,在whitelist.txt文件(此文件应与cluster.ini放置同一目录)中添加相对应的Klei用户id即可。 **仅主服务器有效(见章节末尾说明) cluster_password 默认值: none 玩家进入服务器时所输入的密码。如果不需要密码,将此项留空或忽略设置即可。 **仅主服务器有效(见章节末尾说明) cluster_name 服务器名称,在公共房间列表中将显示此名称。 **仅主服务器有效(见章节末尾说明) cluster_description 默认值: empty 服务器描述。在公共房间列表中,服务器详细信息一栏将显示设定的内容。 **仅主服务器有效(见章节末尾说明) lan_only_cluster 默认值: false 如果设置为true,服务器仅允许同一个局域网的玩家进入。 **仅主服务器有效(见章节末尾说明) cluster_intention 默认值: 取决于游戏模式选择 服务器集群的游戏风格。此配置项的功能和游戏中Host Game中选择游戏风格的功能一致。可选值有:cooperative, competitive, social, madness **仅主服务器有效(见章节末尾说明) autosaver_enabled 默认值: true 如果此项设为false,游戏将不会在每天结束时自动存档。相对的,游戏会在关闭服务器时存档。通过c_save()命令手动存档依然可用。 [GAMEPLAY]max_players 默认值: 16 可用同时连接服务器的玩家数量。 **仅主服务器有效(见章节末尾说明) pvp 默认值: false 设置为true时,打开pvp功能 game_mode 默认值: survival 游戏模式。此配置项的功能与Host Game中游戏模式的选项一致(生存、无尽,狂野)。可选值有:survival, endless, wilderness *每个cluster.ini中的设置必须一致。(见章节末尾说明) pause_when_empty 默认值: false 设置为true时,当服务器中无玩家,暂停服务器时间流逝。 vote_enabled 默认值: true 设置为true时,打开玩家投票功能。 补充说明: 如果使用多物理机运行服务器,每个物理机上将有一个cluster.ini文件,且所有cluster.ini文件内容相同。 ** 上文中标记“仅主服务器有效”,表示仅有主服务器中的cluster.ini有效,其他分片服务器中cluster.ini中配置会被忽略。 * 上文中标记“每个cluster.ini中的设置必须一致”,表示所有机器中cluster.ini值必须一致。可忽略配置从而使用默认值。 server.ini配置项详解 [SHARD]is_master 默认值: none 如果shard_enabled = true时,必须配置 将一个分片服务器设为主服务器。每个服务器集群必须只有一个主分片服务器。在主服务器的server.ini中设置此项为true,其他分片中设为false name 默认值: none 如果shard_enabled = true, is_master = false时,必须配置 日志中显示的分片服务器名字。主分片服务器会使用[SHDMASTER]作为名字,覆盖此项的设置。 id 默认值: 随机生成的数字 此字段是分片服务器自动生成,用于保持分片服务器的唯一性。当玩家进驻服务器之后,修改或移除这个值,可能会产生程序错误。 [STEAM]authentication_port 默认值: 8766 steam使用的内部端口。同一机器上每个分片服务器,此端口设定不能为同一个。 master_server_port 默认值: 27016 steam使用的内部端口。同一机器上每个分片服务器,此端口设定不能为同一个。 [NETWORK]server_port 默认值: 10999 此服务器用于监听连接的UDP端口。一个多层世界集群,同一机器上各分片的端口设置需不同。如果想让服务器在公共服务器列表页显示,此端口取值范围应是10998~11018。此项实际可取值范围是1-65535,小于1024的端口在一些操作系统上会涉及用户权限问题,不推荐使用。 常见问题处理 问:如何设置黑名单? 答:在cluster.ini同级目录下,添加文件blocklist.txt。blocklist.txt文件支持Klei id和steam64 id。 在服务器的Master目录下,查看server_log.txt文件,找到用户的登录记录,如下

将这个KU开头的Klei UserId拷贝至刚建立的blocklist.txt中,每行一个,保存退出。重启服务器即可。 如果因某种原因,无法查看服务器日志,也可以通过steam64 id来管理列表。关于steam64 id获取,请阅读下文的问答。另外,在游戏的UI中,管理员也可以通过图形界面将某人ban掉,以加入这个blocklist.txt列表中。 问:如何添加管理员? 答:在cluster.ini同级目录下,添加文件adminlist.txt。adminlist.txt文件支持Klei id和steam64 id。 将KU开头的Klei UserID逐行加入此文件,保存。重启服务器即可。 问:如何设置白名单,并预留位置给特定玩家? 答:在cluster.ini同级目录下,添加文件whitelist.txt。whitelist.txt文件支持Klei id和steam64 id。 将KU开头的Klei UserID逐行加入此文件,保存。 在cluster.ini的[NetWork]下,增加whitelist_slots = X,X为需预留的栏位。假设服务器人数上限是6,预留栏位是2,当服务器人数达到4人时,非白名单的玩家将无法加入服务器。 问:如何获取用于黑名单、白名单,管理员列表的steam64 id? 答:这里提供两种方法。 方法1:对于未设置自定义URL的steam用户,一般个人资料页的URL最后一段即为steam64 id。比如我的个人资料页URL是https://steamcommunity.com/profiles/76561198107878383/ 我的steam64 id为76561198107878383。 方法2:如果用户设置了自定义URL,无法直接看到id,通过一些第三方网站,可以比较方便的获取steam64 id。将个人资料页的URL填入网站搜索栏,即可获取账户id的详细信息。列举几个可用的网站: https://steamid.xyz/ http://steamrep.com/ 问:如何获取steam_group_id? 答:通过群组设定,可以更方便的管理游戏成员。 方法1:如果是群组管理员,在群组首页点击右侧的“编辑组资料”。进入管理员页面后,第一行的ID值即为steam_group_id 方法2:对于普通成员,在群组首页点击“邀请好友”,在URL栏取得invitegid的值,如103582791451482449。将这个值减去103582791429521408,即103582791451482449-103582791429521408=21961041,为当前steam群组的id。 问:服务器性能该如何估算和调整? 答:饥荒服务器对内存需求较高,对CPU的需求一般。wiki[dontstarve.wikia.com]的参考数据是:网络速度(上传) = 8KB/玩家/秒,内存 = 约 65MBs/玩家。考虑到操作系统运行也会占用一部分内存,对于6人的服务器,单shard(地上或洞穴),应使用至少1G内存,推荐2G以上内存的机器。 如果物理机配置较差,建议单机器只部署一个shard。 此外,就是mod的数量控制。在物理机配置有限的情况下,关闭一些消耗系统资源的mod,可以改善服务器工作状况。 问:地上和洞穴shard不在同一机器上,设置该如何调整? 答:配置文件需求请参考第二部分中的示意图。 在cluster.ini中,将bing_ip的值修改为0.0.0.0。 将master_ip的值设为地面shard所在物理机的IP地址。如果Master和Caves在同一网络中,master_ip的值也可以为内网地址。 将修改后的cluster.ini拷贝至Caves所在的物理机中。 将cluster_token.txt拷贝至Caves所在的物理机。 在两台机器上分别启动shard即可。 服务器启动命令行参数详解 命令行指的是Don't Starve Together Dedicated Server/bin 中的dontstarve_dedicated_server_nullrenderer 正常情况下,使用命令行启动shard不需要很多参数。但是某些命令行参数可以覆盖配置文件中的设置,可以作为一个备选方案使用。 下面是各参数的作用说明。 -persistent_storage_root 更改配置项的默认存储位置。参数值必须是一个绝对路径。配置文件存储的完整路径为<persistent_storage_root>/<conf_dir>/ ,其中<conf_dir>的值是由参数-conf_dir提供的。在不同的平台上,默认存储位置分别为: Windows: <Your documents folder>/Klei Mac OSX: <Your home folder>/Documents/Klei Linux: ~/.klei -conf_dir 更改配置目录的指向。参数值不能包含“/”或“ ”。配置文件存储的完整路径为<persistent_storage_root>/<conf_dir>,其中<persistent_storage_root>值由参数-persistent_storage_root提供。 -conf_dir的默认值为“DoNotStarveTogether” -cluster 设置游戏服务器cluster所使用的目录。服务器将在以下路径中去寻找cluster.ini文件:<persistent_storage_root>/<conf_dir>/<cluster>/cluster.ini -cluster参数的默认值是:“Cluster_1” -shard 设置shard服务器所使用的目录。服务器将在以下路径中去寻找server.ini文件: Set the name of the shard directory that this server will use. The server will expect to find the server.ini file in the following location:<persistent_storage_root>/<conf_dir>/<cluster>/<shard>/server.ini -shard参数的默认值是: "Master". -offline 以离线模式启动服务器。服务器启动后,不会在公共服务器列表显示,只有本地局域网玩家可以加入游戏,所有steam相关的功能也不能工作。 -disabledatacollection 关闭数据收集功能。 Klei官方会持续收集用户数据来提供在线服务。如果使用此参数,用户数据将不再发送,但服务器将处于离线模式。 -bind_ip <bind_ip> 修改服务器所绑定的,用于监听用户连接请求的IP地址。此特性大多数用户可能不会用到。(对于多物理机的服务器,有机会使用) -port <port_number> 可用值范围:1~65535 服务器用于监听连接请求的UDP端口。这个参数的值将覆盖server.ini中[NETWORK]分支下的server_port值。如果运行一个多层世界,每层世界的服务器端口设置不能相同。只有在10998~11018范围内的端口设定,才能使游戏服务器在公共服务器列表显示。小于1024的端口在一些操作系统上,会遇到一些权限问题。 -players <max_players> 取值范围:1~64 设置允许加入服务器的最大玩家数。这个参数值将覆盖cluster.ini文件中[GAMEPLAY] / max_players的设定。 -steam_master_server_port <port_number> 取值范围:1~65535 steam使用的内部端口。这个参数值将覆盖server.ini文件中 [STEAM] / master_server_port的设定。请确保同一个机器上的服务器使用不同的端口值。 -steam_authentication_port <port_number> 取值范围:1~65535 steam使用的内部端口。这个参数将覆盖server.ini文件中 [STEAM] / authentication_port的设定。请确保同一个机器上的服务器使用不同的端口值。 -backup_logs 在每次服务器启动时,创建一个之前log文件的备份。这些备份文件将存储于server.ini同目录下的backup文件夹中。 -tick <tick_rate> 取值范围:15~60 这个数值表示服务器每秒钟与客户端的交互次数。增加此参数值,将增加网络带宽消耗。这个参数的使用,将覆盖cluster.ini中[NETWORK] / tick_rate setting的设定。推荐将此值保持默认值15。如果确实要更改此设定,推荐在局域网环境下进行,取能整除60的值(15,20,30)。 参数使用范例: 运行一个双层世界,使用的命令行形式如下: dontstarve_dedicated_server_nullrenderer -console -cluster MyClusterName -shard Master dontstarve_dedicated_server_nullrenderer -console -cluster MyClusterName -shard Caves 上面两行命令,将使用以下位置的配置文件来运行游戏服务器: <Klei默认路径>/MyClusterName/cluster.ini <Klei默认路径>/MyClusterName/Master/server.ini <Klei默认路径>/MyClusterName/Caves/server.ini