本文将会详细讲述僵尸毁灭工程41.7x的云服务器建设以及相关问题解答,除非后续官方大幅度修改联机流程,不然此教程将一直适用。
僵毁的服务器非常的神秘,和网络有关的问题非常的多。目前最新版的41.78.12版本,我在和朋友联机时,我和几个人是移动,有一个朋友是联通,游玩过程中总会玩一会儿就有人说除了自己,其他队友消失的情况。必须退服重新进服才能再看见,并且这种情况非常频繁,非常影响游玩。并且经过测试,原版和挂载mod后都会出现这个问题,搜索反馈也发现并没有大面积出现这种问题反馈,所以大概率不是游戏自身的问题,所以只能判断是网络问题了。
后来在搜索解决办法的时候,有人提到使用41.73版本联机会有所改善。经测试情况有很大改善,我和其他几个移动的朋友连接的非常顺利,并且没有再出现队友消失的问题,只有偶尔在前往新地图的时候会突然掉线,但并不影响游玩。除了联通的朋友依然每次要连接好几次才能进服,并且时不时会有队友消失的BUG,非常影响他的游玩。
所以姑且得出个人结论,如果你的网络不是太好的话,尤其是除了电信以外的朋友,如果只是为了和朋友一起玩,请酌情购买服务器。避免花重金购买服务器,并且捣鼓了半天,最后自己和朋友进不去服的情况。
作者这里选用的云服务器为腾讯云,并不是说必须要用腾讯云,如果你们有别的云服务器选择的话,前提是以下几点:
1、一个独立的固定公网IP
2、系统是windows 1803版本以上
3、放行对应端口以及防火墙
如果是用其他服务器的话,以下有关腾讯云的操作请自行参考,然后在选用的其他云服务器上进行修改。
首先是云服务器购买,腾讯云经常会有这种新用户秒杀活动,价格不一。这是我之前购买时,腾讯云2核4GB轻量级应用服务器的价格:

优惠价格
2核4G是配置很低的服务器了,根据隔壁UP的结论来说,该配置使用Linux系统开服能支持11-12人左右的原版服务器。Windows系统运行时占用内存会更高一点,应该是能满足6-8人的原版服务器游戏体验的。
但打上mod又是另一码事了,所以建议想开很多mod的玩家酌情购买,可能需要添加预算购买更高级的配置。
我的服务器是4核16G的服务器,分配了10G,打了70个左右的mod,10个人游玩绰绰有余,各位可以参考一下。
(别再问我什么配置,打了多少mod能不能带的动了,我不是卖服务器的,没有那么多的样本测试,你问我不如去找个僵毁服务器的群问问服主。)
购买云服务器后创建系统时选择的系统是Windows server 2019:

windows server 2019
注意必须是2019!注意必须是2019!注意必须是2019!
2012R2和2016已测试运行服务器时会弹出“ZGC requires Windows version 1803 or later”错误代码,无法启动服务器。因为新版的僵毁服务器在启动时会同时启动一个java自带的低延迟垃圾收集器ZGC,该收集器不支持低版本的Windows。
因为Windows server 2012R2相较于Windows server 2019占用内存更小,如果各位服主没有开大型多人服务器的需求,想节省内存占用,在Windows server 2012R2上运行服务器的话,只需要把这个收集器删除即可,如何删除请看后文分配内存的部分。
(感谢泣いた愚者)
在云服务器的网页控制台处,选择重置密码,用户名保持默认的Administrator即可,密码改成自己的。

重置密码
控制台-网络信息 点击管理规则。

管理规则
添加规则。

添加规则
把16261 UDP端口和16262 UDP端口开放。
16261端口和16262端口是僵毁云服务器的默认端口,如果你在服务器配置里修改的话,这里也得改。
因为我所购买的云服务器使用期为一年,以后不玩僵毁了玩别的游戏也能做云服务器使用,不同游戏的端口不尽相同,所以为了省事我这里直接改成了全ALL,毕竟我也不会往里面存一些敏感数据,都是游戏服务器。再说腾讯的东西,我觉得一般人还真不敢黑。
看你自己,是单选端口还是全放。
(评论区有人反应只开放这两个端口,可能会有部分玩家延迟极高,全ALL后反而正常,还挺玄学。)

添加规则
到此云服务器设置完毕,腾讯云的服务器不需要设置防火墙相关,如果你不是腾讯云的话,请自行参考进行开放端口和防火墙的操作。
全部设置完毕后,记得重启服务器。
打开你自己电脑的开始菜单,找到远程桌面连接,别跟我嗦没有,只要是Windows系统的都自带,开始菜单有搜索,你可以输入“远程”,看看检索后有没有。
(演示用的Windows7,Windows10也一样的)

Windows7是远程桌面连接
点击选项打开更多设置。

选项
腾讯云要输入用户名!就是上文提到的默认的Administrator,计算机的位置输入你服务器公网IP地址。
(别家的云服务器可能不需要填用户名或者用户名不是这个,自行参考。)

记得输入用户名
输入密码进入远程操控界面。

输入密码

服务器界面
在C盘新建一个steamcmd文件夹。

新建steamcmd文件夹
使用下侧链接下载steamcmd.zip,把压缩包里面的文件解压到服务器端的steamcmd文件夹。
https://steamcdn-a.akamaihd.net/client/installer/steamcmd.zip
这是个下载链接,如果复制到浏览器没有自动下载的话,你可以复制到迅雷或者能够下载链接的程序里手动下载。

解压steamcmd.zip到服务器端的steamcmd文件夹
右键新建一个TXT文本,随意命名,这里命名为1。

1.txt
打开文本复制粘贴以下内容。
steamcmd +login anonymous +app_update 380870 +quit
这是正式版的代码,如果有需要下载测试版联机的需求,代码请在文章结尾的答疑解惑部分查询。注意首先请自行确认测试版是否开放联机功能。
(如果复制该专栏中所有提及的代码保存到记事本,提示什么文中含有UTF还是啥格式,需要转码才能保存的时候,切记不要转码保存,请选择否直接保存,然后重新打开记事本,把刚刚复制的代码中“?”的部分替换成空格。)
(专栏复制会自动带作者和文章后缀,我也没办法,但我相信不会有笨蛋复制以后不删后缀吧?)

复制粘贴保存
把1.txt的后缀改成bat。

看不到后缀名在查看勾选文件扩展名
全部整好后文件夹目录应该是这样的。

文件夹目录
双击1.bat会自动打开cmd下载steamcmd的主程序以及僵尸毁灭工程的服务器端程序。当出现0x3就说明开始下载僵尸毁灭工程的服务器端程序了。
下载完毕后cmd窗口会自动关闭,所以只要cmd窗口还没有自动关闭,就最好不要进行其他操作。下载时间取决于网速,如果是腾讯云的话,这个过程应该会挺快的,5-10分钟这样。
(如果下到一半卡住很久都不动的话,可以把CMD窗口关闭重新点击1.bat下载。)

下载steamcmd主程序

下载僵尸毁灭工程服务器端程序

下载僵尸毁灭工程服务器端程序
全部下载完后文件夹根目录会是这样的,双击steamapps文件夹。

steamapps
然后是common\Project Zomboid Dedicated Server。
如果没有这个文件夹的话就说明没有下载成功,重新运行1.bat。
打开Project Zomboid Dedicated Server
可以看见一共有三个启动服务器的bat,分别是StartServer32.bat,StartServer64.bat以及StartServer64_nosteam.bat,如果你服务器是32位就编辑32位的,64位就编辑64位的,那个nosteam不用管,可能是用来局域网服务器测试的。云服务器应该都是64位的,这里就编辑64位。

StartServer64.bat

右键编辑
分配内存很重要!除非你的云服务器端内存是16G往上(不含16G),否则一定要分配内存!
在StartServer64.bat里可以看到在下图红线所划位置,云服务器端默认分配内存是16G,但咱们整的2核4G服务器一共才4G,分配16G自然启动不起来,所以需要把这两个16G改成合适的内存,拿4G服务器来说,分配个3G没什么太大问题。
(不能把内存全部分配,比如4G的服务器不能分配4G,毕竟服务器的Windows系统本身运行也需要内存,需要给系统预留一些空余内存,虚拟内存有没有用没有测试过。)

分配内存

保存
如果你想节省Windows系统占用的内存而使用Windows server 2012R2,并且明确没有大型多人服务器的需求,可以把下图划线部分删除,这样就不会出现“ZGC requires Windows version 1803 or later”的报错了。

删除“-XX:+UseZGC”
好了,现在你的服务器就已经可以启动了。
为了避免一些解释起来很麻烦的问题,作者推荐还是先设置好服务器配置,再启动服务器。
服务器配置文件可以自己手动写,也可以在自己电脑的游戏端把服务器配置设置好,包括加模组。
(真的有人自己手动写吗?推荐直接在游戏端设置。)

建立服务器

服务器设置
创建配置文件的时候注意,一定是这个默认名称,“servertest”,如果不是也请修改成这个。
因为云服务器端启动服务器时,默认读取的服务器配置就是servertest,改成其他的服务器端会直接新建一个默认servertest并读取,所以别再问为啥明明配置了MOD但是进服啥也没有的问题了。

创建配置文件
下面来说明一些服务器比较重要的几个设置,没有提到的自行设置即可。
如果你在上文的云服务器端设置的两个端口就是这个的话,则不要改动,这两个属于懂得不用教,不懂的别改就行。

端口

端口
如果想能在公共服务器搜索到,需要把Public勾选,否则只能IP直连,这边建议是不管勾没勾选,都尽量用IP直连。因为目前服务器的搜索有点慢,以及各种不可名状的问题,可能需要花很久的时间才能搜索到或者完全搜不到。

Public勾选
当你有公网IP,并且想要在服务器列表中被搜索到的话,请取消勾选这个选项。如果是用自己电脑开服务器,并且没有公网IP的话,请勾选这个选项。

UPnP设置
开启了公共服务器的话,如果不是作为大型多人服务器的话,建议设置服务器密码或者进行后文里的白名单设置。防止不认识的人或挂哥进服搞破坏。

设置服务器密码
PauseEmpty勾选的话,服务器内没有玩家时,游戏时间会暂停,不勾选的话,服务器内不管有没有玩家,时间都正常流逝,按需勾选。

无人暂停设置
玩家设置,首先“Open”一定要勾选!“AutoCreateUserInWhiteList”按需勾选,如果只勾选了Open,那么只有服主在服务器端的CMD把玩家添加进白名单后,玩家才能进入服务器,如果两个都勾选了,那么任何人都可以直接进入服务器,并且在进入服务器的时候会自动添加进白名单,这项一般搭配有密码的服务器使用。

白名单设置
首先一定要注意保持创意工坊插件设置和模组设置两个栏位的mod保持一致,目前你在创意工坊插件设置栏里添加mod后,会自动在模组设置栏里添加同名mod,但是假如这个mod有多个启动项的话,模组设置栏会全部启动,举个栗子,看下图,我在创意工坊插件设置栏里添加了二手车MOD和吉普的MOD。

MOD相关的两个设置栏
但是在模组设置栏可以看到他自动添加了八个MOD,分别是二手车本体,二手车燃油测试,二手车有趣的命名,二手车真实的命名,吉普本体,吉普10倍刷新率,吉普2倍刷新率,吉普4倍刷新率。
很明显,有趣的命名和真实的命名冲突,2倍、4倍和10倍刷新率冲突,如果同时启用肯定会出问题,所以需要在模组设置栏手动删减。

模组设置
修改成这样后就没有问题了,所以我建议各位配置mod时,先在创意工坊插件设置栏里全部设置完毕后,再在模组设置栏里一项一项确认并删减。

修改后
你以为这就完了?并不!
也许有老玩家还记得,吉普MOD是需要一个前置MOD的!
但是如图所见,当你添加吉普MOD的时候,这个前置MOD并没有像单机启动需要前置的MOD时一样会自动启动。
而且服务器启动时,服务器读取MOD的顺序是完完全全按照你在模组设置栏的排序从上往下依次启动的,所以如果你把吉普MOD放在前面,而其所需的前置MOD放在了后面,那么进游戏面对你的可能就是报错,或者MOD不生效的情况。

前置MOD没有自动添加
所以整个流程就是:需要你在设置模组前,就要预先把哪些需要前置哪些需要后置的MOD整理好,然后在创意工坊插件设置栏里依次选择,最后再到模组设置栏里进行确认以及删减。
这时相信肯定有小伙伴已经经历过了以下几种情况。
因为忘记放了一个前置MOD,因为没有拖拽排序!只能忍痛把已经排好的一大堆MOD删除。
想要添加一个新的MOD,但是这个MOD需要排的尽量靠前,因为没有拖拽排序!只能忍痛把已经排好的一大堆MOD删除。
因为没有已添加的提示,并且没有缩略图和介绍,导致不确定有没有添加MOD,然后重复或者少添加了MOD!
设置了半天头晕眼花不小心按了取消没有保存!
……吗个鸡上面我都经历过!

模组管理器:服务器MOD
首先,在主菜单的模组界面启用这个模组!

哈哈!
然后选择Server!

哈哈!
在打开的界面这里选择你要添加模组的服务器配置表!

哈哈!
然后你可以看见,我这里只选择了吉普的2倍掉率mod,他自动帮我添加了吉普本体mod以及前置mod。

自动添加前置
当然你肯定还记得上文我说的,服务器启动顺序不是从上到下吗?图中右侧的顺序依然是有问题的,2倍掉率,吉普本体,前置,明显是不对的,但不要慌!点这里!

哈哈!
在这里就可以进行MOD启动顺序的调整了!芜湖!非常的方便!

哈哈!
点击保存后,再去服务器配置表里看就会发现!它已经全部设置好了!还排好序了!

哈哈!!!
重要!不要用这个MOD管理器添加新地图MOD!不然可能会出现服务器未响应的状态!
比如说贝德福德瀑布、红石堡这些新地图MOD。
为什么呢?请看下图,这是正常的添加地图MOD流程:
1.在创意工坊插件设置添加地图MOD。

添加地图mod
2.可以看见模组设置自动设置好了。

模组设置自动设置完毕
地图设置也自动设置好了。
(地图设置栏里的MOD地图必须位于原版“Muldraugh,KY”地图上方,不然不会生成新地图。)

地图设置也自动设置完毕
这是正确并且成功的地图MOD安装办法!
我们再来看看服务器版MOD管理器。
1.在服务器版MOD管理器添加地图MOD保存。

添加地图MOD
2.你会发现创意工坊插件设置和模组设置确实正确设置了。

没有问题

没有问题
3.但是你会发现地图设置并没有正常设置,依然只有原版地图,这个问题根据MOD作者反应暂时没有解决的办法。

只有原版地图
4.只能够手动添加,然后手动排序让原版地图放在最底下。

手动添加

手动排序
所以你可以选择:
1.用服务器版MOD管理器添加完所有非地图MOD后,再手动去服务器配置里的创意工坊插件设置栏里添加地图MOD。
2.用服务器版MOD管理器添加完所有MOD后,再手动去服务器配置里的地图设置栏添加地图并排序。
我比较推荐前者,毕竟地图也是有顺序的,手动排序可能会出现问题。
好了,你的服务器配置已经全部配置完毕了!找到这个文件夹!

找到这三个文件,把它们复制到你的服务器端。
再说一遍!记得要默认命名,就是图中这种,服务器默认读取的就是默认命名的服务器配置文件!

服务器配置
把它们保存到服务器端的C:\Users\Administrator\Zomboid\Server下,但因为你从来没有启动过服务器端的StartServer64.bat,所以是没有这个文件夹的。
但我还是建议不要先启动服务器端的StartServer64.bat让它自动生成,而是先把服务器配置复制到这里再启动。
所以你需要先在这个位置新建一个Zomboid文件夹,然后再新建一个Server文件夹,把服务器配置的三个文件复制进去,如下图所示。

放好你设置好的服务器配置
然后双击StartServer64.bat开启服务器,它会提示你输入两次admin密码,这是给玩家开管理员权限的时候用的。

输入管理员密码

确认密码
然后耐心等待,直到出现以下画面中的“SERVER STARTED”以及“Steam is enable”
就说明你的服务器已经开好了,可以在游戏里加入了,如果你在服务器设置中把Public勾选上了,那你可以直接在公共服务器里搜到了。
(看脸,也有可能是我有其他操作没有操作对,反正我是很难直接搜到)

服务器已开启
很多人会问为什么我服务器开了,游戏里面也能搜到,但就是进不去。这可能是因为白名单的原因,这种情况需要在服务器端的游戏服务器cmd上给玩家添加白名单。
(如果上文中白名单的两个选项都勾上的话,是不需要这步操作的。)
在服务器端的游戏服务器cmd输入adduser空格"昵称"空格"密码"回车即可(要加双引号)

添加白名单
你在游戏的这个位置,服务器名称随便输,IP地址输入服务器地址,如果你没改过端口的话,端口不变,服务器密码是你在服务器配置里设置的密码,昵称和密码就是白名单添加的昵称和密码。
白名单那两个选项都勾上的话,昵称和密码随便输,第一次输就相当于注册账号。
(昵称输入admin,密码输入第一次开服时cmd那里要求输入的管理员密码,登陆后就是管理员账号。)
保存登入即可。

对应
Q:如果需要更新服务器或mod怎么办?
A:首先需要停止你的服务器运行,在服务器端的游戏服务器cmd输入quit。

输入quit指令
一定要输入quit退出!因为他会在退出之前进行一次服务器保存,确保不会存档丢失。
如果是MOD更新的话,因为服务器的mod都是保存在本地,最简单粗暴的办法就是直接删除Project Zomboid Dedicated Server文件夹下的steamapps文件夹,然后重启服务器重新下载,这个办法的缺点就是如果服务器mod非常多的话,重启服务器重新下载mod会比较慢,好处就是省事以及绝对管用!
另一种办法就是打开Project Zomboid Dedicated Server\steamapps\workshop\content\108600文件夹,找到需要更新的对应mod文件夹删除。
然后记事本编辑在Project Zomboid Dedicated Server\steamapps\workshop文件夹下的appworkshop_108600.acf,查找对应mod的代码删除保存,然后启动服务器即可,他会自动下载更新mod。(这一步我不确定需不需要,可能直接删除mod文件夹就够了)。缺点就是比较复杂,优点就是不需要重新下载别的MOD了。
根据评论区反应以及我自行开服测试,新版本的服务器端直接quit以后重启服务器就会自动更新mod了。(如果不行再参考上述划线部分)
如果是游戏更新的话,建议直接删除Project Zomboid Dedicated Server文件夹,双击1.bat重新下载僵尸毁灭工程的服务器文件。然后重新按上文的内存设置部分设置启动就可以了,服务器配置和存档不用担心,他们保存在Zomboid文件夹中,不需要重新设置。
如果你打算新开档,那就直接删除Zomboid文件夹,然后按照上文服务器配置部分设置就可以了。
服务器配置在Zomboid\Server文件夹下
服务器存档在Zomboid\Saves\Multiplayer下
1.bat应该可以一直使用,如果联机版本进入IWBU的话,那你只需要右键编辑1.bat。
把
steamcmd +login anonymous +app_update 380870 +quit
换成
steamcmd +login anonymous +app_update 380870 -beta iwillbackupmysave +quit
即可
具体跟着这里改,前面记得加“-beta”

测试版代码
Q:为什么有些MOD在我的电脑上开专用服务器是中文,但是在服务器端使用就汉化失效了呢?比如简体中文电台。
A:因为这些mod是依赖中文环境版本制作的mod,服务器端默认的语言是ZH或者EN,反正都不是简体中文就对了(ZH可能是繁体?),打开Zomboid文件夹下的options.ini,找到language,把后面改成CN就好了,第一次启动服务器可能会出现没有生成这个文件的情况,别慌,关闭服务器再启动一次可能就有了。
(感谢评论区@-Dairy-)

改成language=CN
A:上述办法已失效,新的可以参考创意工坊“简体中文电台”评论区“losquare”的办法,在内存设置的后面添加“ -Duser.language=cn -Duser.region=CN”。

Q:有些MOD有开服前参数调整,为什么我没有在服务器配置表里找到?
A:这个就需要逐个分析了,大部分的话是需要你自己先在主菜单启动这个模组,比如,尸潮之夜,然后你再去服务器配置里就能看到有关尸潮之夜的设置了,设置好保存即可。至于像brita枪械包这种跟着主机设置走的,就需要具体问题具体分析了。brita的作者是给了个服务器配置模版,需要自己修改,发布,然后自己启用覆盖默认的配置模版来达成参数修改的效果。还有一些是改参数啥的,都挺复杂,需要自行查询MOD的评论区以及相关讨论了解。
Q:为什么我加载进去会黑屏?
A:这个问题就比较广泛了,有很多种不同的情况,最大的可能是网络不好,换一个网络或者让朋友进测试一下是自己的问题还是服务器的问题。如果都进不去,可能是mod冲突或者什么的。如果就自己进不去可能就是网络的问题。腾讯云的话是国内服务器,所以不需要开加速器,如果开加速器了关闭试试,如果还是进不去有一种可能是校园网被腾讯云ban了?我有个朋友校园网,我用腾讯云开的所有游戏的所有服务器,他都进不来,是完全搜不到服务器的那种,据他所说是因为他们学校的网被腾讯ban了,很神秘。
Q:游玩一段时间后,弹出“格式错误的数据包,类型XX”该怎么解决?
A:这个大多数是MOD的问题,他修改的部分触及到了游戏服务器的反作弊系统了,关闭服务器端的反作弊系统即可。打开服务器端的servertest.ini。

打开servertest.ini
找到对应的防作弊保护,假如弹的“格式错误的数据包,类型21”,就把类型21设置为false。如果都是朋友自己玩的话,你也可以把所有的防作弊保护全部false。

找到对应的防作弊保护false
