饥荒联机吧 关注:150,752贴子:2,371,491

回复:【2015_09_06】Don’t Starve Together Dedicated Server 搭

取消只看楼主收藏回复

3.4 扩展配置
扩展配置不是服务器所必须的,只是为了方便管理和增加游戏乐趣而额外添加的一些配置。
3.4.1 mod配置
服务端安装mod有两个步骤,第一步下载mod,通过配置文件dedicated_server_mods_setup.lua来完成,第二步启用mod,有两种方法,这里只介绍通过modoverrides.lua文件来配置的这种方法,更加科学,官方也是推荐使用这种方法。至于另外一种方法可到官网自行查阅,此处不作说明。
下载mod的配置方法。要下载某个mod,只需要在dedicated_server_mods_setup.lua这个文件中添加一行 ServerModSetup("xxxxxxxx"),其中xxxxxxx是一串有数字组成的编号,每个mod在创意工坊都有一个独立的编号。这里介绍把编号和mod对应的方法:首先订阅mod,游戏的目录里会下载mod,打开某个mod文件夹,这时候这个文件夹的名字是workshop-xxxxxxx,xxxxxx就是编号,mod的名字在此文件夹里面的一个名为modinfo.lua的文件里有记录。
启用mod的方法。配置modoverrides.lua文件,文件的配置格式为:
return {
["workshop-350811795"] = { enabled = true },
["workshop-387028143"] = { enabled = true },
["workshop-361336115"] = { enabled = true,
configuration_options =
{
hunt_time = 6,
["String Phrase Option Name"] = "some value",
}
},
["workshop-336882447"] = { enabled = true }
}
要启用前面某个已经配置下载的mod只要把编号替换就可以。configuration_options是mod的配置,不同mod配置不同。可以删除采用默认配置,简化后的配置文件如下,一行代表启用一个mod,false则不启用。
return {
["workshop-350811795"] = { enabled = true },
["workshop-387028143"] = { enabled = true },
["workshop-361336115"] = { enabled = true },
["workshop-336882447"] = { enabled = false }
}
通过这种配置方法,可以不同的房间开启不同的mod,在后面的房间多开很有用。
3.4.2 自定义世界
通过worldgenoverride.lua这个文件来自定义世界,达到修改世界资源的目的。由于要配置的资源很多,文件的内容将在后文附录中列出。
3.4.3 添加管理员
独立服务器默认是提供令牌的用户为管理员,如果要其他的人成为管理员,需要配置文件,配置文件路径\save\adminlist.txt。在这个文件下添加用户的UserID,一行一个,用户便成为管理员,可以通过控制台来管理当前的世界,比较重要的功能有:重置世界、重载世界、踢人、救人、回档。当然亦可以刷东西,管理员拥有使用控制台的全部功能权利。
下图是添加管理后的结果(拿第一版的截图充数看看效果):

UserID可以在游戏中加入房间后按退格键查看,显示在右下角,以KU_ 开头的一串字符。也有其他方法查看,请自行查阅。
3.4.4 房间多开
如果服务器资源有较多空闲,可以同时开启多个房间。这些房间都有独立的参数,在外界看来是互不干扰的。这要解决两个问题:端口占用和存档冲突。好在这两个问题都可以通过配置settings.ini来解决。
多开的方法是在存档目录下新建一个文件夹,里面要包含settings.ini,令牌,(mod开启文件,世界配置等)一个房间必须的信息。假如文件夹名为:ROOM_INFO,在运行服务器程序的时候,使用命令行,在其后添加 -conf_dir ROOM_INFO (直接写文件夹名,不能写路径)选项。也就是说,一个文件夹就是一个房间的信息,指定不同文件夹就指定了不同的房间。


IP属地:四川18楼2015-09-06 23:26
收起回复
    【今晚先写到这里,明晚继续剩余内容】


    IP属地:四川19楼2015-09-06 23:27
    回复
      继续更新


      IP属地:四川22楼2015-09-07 21:37
      收起回复
        今天计划更新完剩下的部分


        IP属地:四川23楼2015-09-07 21:37
        回复
          第4章 服务器搭建
          4.1 对战平台上的搭建
          对战平台有很多,笔者用过的只有游侠,所以此处只介绍游侠对战平台上的搭建方法。因为在对战平台上要求玩家版本一致,而笔者并没有找到在游侠上当前版本的服务端,所以无法开启服务端让外面的玩家进来测试,只用了最新的服务端和盗版匹配的客户端自己测试。
          笔者2台电脑用路由器隔开不再同一网段。一台先用游侠平台启动服务端,再直接启动客户端;另一台用游侠平台启动客户端,两台客户端均可搜索到服务器。远方的客户端可以加入游戏,但是运行服务端的机器无法加入游戏,提示不在同一局域网。
          笔者分析是游戏虚拟出来的IP是在192.168.2.X网段,远方的客户端经过游侠的虚拟后也是在192.168.2.X网段,反而我本地的客户端IP是172.16.X.X,不再同一网段。个人认为的解决方法是先把自己的IP修改到192.168.2.X网段,然后通过游戏运行服务端,再直接运行客户端。此时客户端理论上可以加入游戏。以上方法均为推测,没有验证。
          因为网络并非笔者独享,所以不方便修改光猫和路由器,以后有机会再来验证
          如果有145705的版本,给我来一份啊啊啊啊啊


          IP属地:四川24楼2015-09-07 21:46
          收起回复
            4.2 windows平台上的搭建
            windows平台搭建很简单。根据主机情况大致分为两种。专用服务器主机和普通PC机,PC机一个重要的问题是要自己解决网络环境的问题,你需要一个公网IP且上传速率不能太低且延迟不能太高。专用服务器主机一般采用租用的方式,同时也配备了固定的公网IP,稳定性也有保障,性能优于PC机,但是成本高。服务器主机采用远程登录的方式,登录后操作方法和自己的PC机一样。PC机解决网络环境问题先查询自己是否拥有一个可操作的公网IP,如果有,对这个IP做端口映射或者DMZ到自己的机器,如果没有,联系网络运营商给你分配一个(软磨硬泡)。
            前面介绍了服务端下载法,下载后根据自己的情况编写好配置文件,生成令牌,然后运行服务器程序,就是这么简单。
            如果使用win server 2008时提示并行配置不正确,安装vc++2008运行库即可。但是win server 2003笔者却没遇到这样的问题?!


            IP属地:四川25楼2015-09-07 21:49
            收起回复
              4.3 linux平台上的搭建
              linux是流行的服务器系统,虽然发行版众多,各有特色,但是基本都大同小异,原理上没有太大出入。根据实际情况采用不同策略。
              到了linux上,基本都是不用图形接口的,对于同等硬件水平,linux效能比win稍高。
              其次是管理方便,使用了文字接口,远程操作主机时对网络要求极低。低到什么程度?手机移动2G网络都可登录操作主机。也就是说在蹲坑无聊的时候都可以玩玩主机,笔者安卓机 vxconnectbot juicessh等这些登录软件都是可以用的 又扯远了


              IP属地:四川26楼2015-09-07 21:59
              收起回复
                4.3.1 依赖关系
                linux下运行的程序有大部分情况需要依赖于额外的库或者软件提供的功能,如果没有这些库或者软件,那么当前程序是不能运行的。要让程序运行需要先根据依赖关系安装相应的库或者软件。
                饥荒独立服务器程序是一个32位的软件,主要依赖于库文件。在安装依赖库的时候需要注意的问题有:
                lA 找到需要的库文件。
                lB 明确库文件的版本,太新太旧都不能运行。
                lC 如果是64位系统,让32位库和64位库并存。
                linux下动态库搜索路径优先级:
                1 编译目标代码时指定的动态库搜索路径
                2 环境变量LD_LIBRARY_PATH指定的动态库搜索路径
                3 配置文件/etc/ld.so.conf中指定的动态库搜索路径
                4 默认的动态库搜索路径/lib或/lib64
                5 默认的动态库搜索路径/usr/lib或/usr/lib64
                在上面的路径中,库文件只要在一处被搜索到,就能运行成功。饥荒独立服务器程序的指定路径是安装目录bin/lib32。
                4.3.2 安装工具软件
                饥荒独立服务器运行后会独占当前shell,如果会话断开则会停止运行。虽然可以使用nohup把服务器放到后台运行,但是不方便使用服务器的控制功能。官方推荐使用screen,利用screen可以很方便的管理饥荒独立服务器,也可以在房间多开时非常方便的管理。不同系统下根据不同命令安装screen即可(rpm,yum;apt-get)。工具的使用方法可以使用man screen查看。
                网络监控使用的一些工具,如ifstat,iftop,nload等,有些系统已经自带。这些不是必须的,只是方便监控网络情况。


                IP属地:四川27楼2015-09-07 22:00
                收起回复
                  第5章 自动化维护脚本
                  上文已经说过,独立服务器的缺点之一是需要维护,很麻烦。我们可以编写shell script配合linxu的crond服务来完成一些自动化维护。
                  由于此处的内容已和本文主题相去较远,只是简单介绍。有兴趣的读者可以继续阅读。共有3个脚本参与,使用管线命令、正则表达式、文本处理和简单判断逻辑。一个负责升级检查(每天定点执行),一个负责错误检查(1分钟1次),一个负责错误后恢复(2分钟1次)。完成的功能有版本自动升级,程序崩溃(mod导致、程序本身导致、令牌挂载失败导致)后自动恢复,mod过期自动升级。
                  经笔者观察,除了mod偶尔导致的一些无法恢复的反复错误(笔者大约安装了25个服务端mod),其他问题服务器基本可以自恢复。
                  如果少装mod,基本上可以不用管理


                  IP属地:四川29楼2015-09-07 22:07
                  收起回复
                    第6章 测试和其他说明
                    6.1 简单验证
                    先说下笔者的主机配置,1核2.6GHz,1Mb带宽,1G内存。Linux系统(CentOS7.0),没有运行其他非系统服务。
                    上文已经说过,网络与CPU和世界设置息息相关,下面我们来看看具体的效果。本次只有笔者一人进行测试,但也能说明问题。


                    IP属地:四川30楼2015-09-07 22:11
                    收起回复
                      A 未运行服务器前CPU【负载0.01(刚关闭程序,以最新的1分钟为准),占用率0.6%】、网络状态【出口速率9.34kb/s,入口速率关系不大】


                      IP属地:四川32楼2015-09-07 22:40
                      收起回复
                        B 开启服务端(全默认,少量mod),笔者进入游戏后CPU【负载0.23,占用率11.3%】、网络【出口58.08kb/s】



                        IP属地:四川33楼2015-09-07 22:45
                        回复
                          C 控制台来200只杀人蜂套餐。CPU【负载0.65,占用率67.9%】,网络【出口655.19kb/s】



                          IP属地:四川34楼2015-09-07 22:47
                          回复
                            D 逃离杀人蜂群后CPU【负载0.41 占用率30.3%】网络【出口 136.66kb/s】


                            可以看出,CPU和带宽与玩家周围环境相关度很大


                            IP属地:四川35楼2015-09-07 22:49
                            回复
                              E 控制台100个二师兄来袭,与杀人蜂一战CPU【负载0.63 占用率85.9%】网络【869kb/s,接近临界点】


                              服务器状态:差,人物走路有延迟
                              这里手慢了一点,出口高峰期应该还在前面一些


                              IP属地:四川36楼2015-09-07 23:06
                              回复