僵尸毁灭工程吧 关注:118,658贴子:973,231

更简单、更易用、更强大——使用LinuxGSM部署僵尸毁灭工程服务器

只看楼主收藏回复


算是个更简单的服务器搭建方案,跟随本贴的教程,你将学会:
1 如何用LinuxGSM快速搭建服务器
2 如何利用modmanager的服务器模式,在服务器里快速批量加mod
3 如何使用crontab与shell脚本定期重启服务器与创建回档备份,使得服务器能24小时持续运营
b站专栏:https://www.bilibili.com/read/cv14919656 (也是本人写的,如果楼被吞了一部分请移步b站专栏)


IP属地:浙江1楼2022-01-20 22:48回复

    目录:
    零 简介
    一 架设前准备
    二 架设流程
    三 配置文件设置
    四 mods
    五 长期运营


    IP属地:浙江2楼2022-01-20 22:50
    收起回复
      零 简介
      为什么使用LinuxGSM?
      LinuxGSM是一个命令行工具,用于快速简单的部署和管理你的专用游戏服务器。他集成了SteamCMD,让你无需额外下载和管理游戏更新。通过LinuxGSM的控制台即可完成服务器的更新、启动和维护。
      + 一键式傻瓜安装,简单易用
      相比于自己一步步手动安装SteamCMD,下载专用配置文件,LinuxGSM能用简短的几行代码来一键完成以上工作,让管理员花更少的时间边挠头皮边管理,省下更多的时间在自己搭建的服务器上享乐。
      + 功能强大
      LinuxGSM不仅仅能运行僵尸毁灭工程的服务器,事实上,它目前已经支持超过100款游戏服务器的傻瓜式搭建与维护(包括潜渊症、我的世界、DayZ、叛乱沙漠风暴等),并且这个数字还在不断的增加
      + 免费开源
      要是收费的话我也不会专门写个帖子安利这东西了,哦不过服务器另算哈,linux服务器还是得自己准备的


      IP属地:浙江3楼2022-01-20 22:50
      回复
        一 架设前准备
        1 当然先需要一台服务器了!

        我个人使用的是在腾讯云购买的云服务器。如果你也一样暂时对“从0开始搭建服务器”一无所知的话,推荐像俺一样先多花点钱解决问题。
        比较推荐去找阿里云、腾讯云、华为云这些比较大型的供应商,在能够保证服务器的安全性的同时还具有许多的扩展功能
        目前大厂的云服务器都有新用户优惠,对于一个多人的僵尸毁灭工程服务器,推荐选用4核8G内存 带宽5m以上的配置,越好的配置,同一时间能承载mod与玩家数就越多(我个人用的是4核16G 带宽12m)
        有闲钱的话推荐买个大点的,毕竟习惯了LinuxGSM的使用后,我敢打赌你绝对不会只开这一个服务器玩的(我就之前开了潜渊症的,虽然现在暂时让给僵尸毁灭工程了)
        系统镜像推荐选用Ubuntu 16.04 LTS、Debian 9、CentOS 7及往上版本


        IP属地:浙江4楼2022-01-20 22:52
        回复
          2 在你自己的电脑上下载WinSCP,XShell,并【自行学会】如何使用它们来远程操作服务器

          我认为这一部分需要你来【自学】,毕竟这些东西以后你会【经常用到】,而且我不敢保证我能用一篇贴子写的面面俱到
          至于去哪里找这些教程呢?一方面腾讯云、阿里云的帮助文档会涉及到这些教程,另一方面你也可以B站或者百度搜索。
          附:如果你没法弄到XShell学习版的话,另一个方法是VScode + Remote SSH插件
          也很好用,习惯以后甚至会大呼“VScode永远滴神”,虽然我个人没这个习惯就是了
          如果打算用VScode + Remote SSH的话,可以参考下面这个文章,但是大多数东西还得你自学
          https://zhuanlan.zhihu.com/p/412736012
          打开LinuxGSM网站的僵尸毁灭工程页面(或者直接百度LinuxGSM后点击“servers”,找到僵尸毁灭工程)
          https://linuxgsm.com/servers/pzserver/


          IP属地:浙江5楼2022-01-20 22:55
          回复
            二 架设流程
            呦西呦西呦西呦西呦西呦西呦西呦西呦西呦西呦西呦西
            很好接下来就是正题了!接下来我会以腾讯云为例,带你手把手搭建服务器
            1 在云服务器上打开游戏的默认端口
            完成服务器的购买后,点击右上角的控制台,来到控制台首页,找到轻量应用服务器,来到服务器控制界面

            点击“轻量应用服务器”

            找到你刚刚买好的服务器,点进去

            这里可以看到你的服务器目前使用情况
            可能第一次启动的时候会提醒你重置root密码,没有提醒的话也切记要重置。ROOT账户相当于windows系统的Administrator账号,密码的配置不能过于简单。

            跳转到防火墙界面
            点击“添加规则”添加TCP 8766 和 UDP 16261端口,这是僵毁服务器的默认端口,通常不推荐自行修改


            IP属地:浙江6楼2022-01-20 23:00
            回复
              2 开始下载LinuxGSM并安装
              推荐的最老系统版本:
              Ubuntu 16.04 LTS
              Debian 9
              CentOS 7
              (由于俺用的是Ubuntu 20.04 LTS,因此这里以Ubuntu的安装流程为例子,其他的在LinuxGSM网站上也是有的,这里就不写了,有需要的请自己去官网查)
              在安装之前,必须确保系统具有运行 pzserver 所需的所有依赖项。
              你可以通过下面这个指令一键安装所有依赖项:
              Ubuntu 20.04 版及以下:
              sudo dpkg --add-architecture i386; sudo apt update; sudo apt install curl wget file tar bzip2 gzip unzip bsdmainutils python3 util-linux ca-certificates binutils bc jq tmux netcat lib32gcc1 lib32stdc++6 libsdl2-2.0-0:i386 steamcmd default-jre rng-tools
              Ubuntu 20.10 版及以上:
              sudo dpkg --add-architecture i386; sudo apt update; sudo apt install curl wget file tar bzip2 gzip unzip bsdmainutils python3 util-linux ca-certificates binutils bc jq tmux netcat lib32gcc-s1 lib32stdc++6 libsdl2-2.0-0:i386 steamcmd default-jre rng-tools


              IP属地:浙江7楼2022-01-20 23:01
              回复
                开始安装:
                (1)创建一个新账户
                adduser pzserver
                密码随意设置,不过不推荐空着
                (2)切换到pzserver账号
                su - pzserver
                用login pzserver 然后输入密码也可
                (3)下载 linuxgsm.sh
                wget -O linuxgsm.sh https://linuxgsm.sh && chmod +x linuxgsm.sh && bash linuxgsm.sh pzserver
                (4) 确认下载完毕后,执行安装命令
                ./pzserver install
                之后应该会开始全自动安装,只需按照屏幕上的说明一路像鼠人一样yesyes过去就行

                当显示以下内容的时候,代表LinuxGSM正式启动,接下来等待游戏安装完成即可
                第一次使用者应注意:除非屏幕上出现”I agree” “Y/N”之类需要操作的部分,其他时间应尽量避免操作,尽量不要用ctrl C中断安装

                安装完成后,使用WinSCP转到/home/pzserver文件夹下就能看到游戏服务器的文件


                IP属地:浙江8楼2022-01-20 23:03
                收起回复
                  5)启动你的服务器!!!
                  ./pzserver start
                  你的服务器应该就会以最默认的形态开始运转了,输入对应ip地址和端口号就能直连进入
                  ip地址就是你服务器公网的地址
                  如果需要关闭服务器,使用以下指令:
                  ./pzserver stop
                  #也可以使用下面这个指令来快速重启
                  ./pzserver restart
                  其实先输入stop然后再start效果是一样的


                  IP属地:浙江9楼2022-01-20 23:05
                  回复
                    三 配置服务器基础设置
                    现在你有了一个完全纯净的原版服务器,但是该如何修改服务器的内容呢?
                    俺目前使用的是两种方法
                    1 本地编辑配置文件后上传至服务器
                    打开自己本地的僵尸毁灭工程游戏,找到 建立服务器——服务器设置,打开本地的服务器文件配置,新建一个名为pzserver的配置文件,在这里本地编辑它


                    选项很多,这里就不一一说明了
                    编辑完以后,找到你的本地配置文件保存处(管理配置文件页面通常会显示路径的)
                    将这三个文件用WinSCP上传至服务器的/home/pzserver/Zomboid/Server文件夹内,通常你应该能看到三个同样名字的文件,覆盖即可。


                    IP属地:浙江10楼2022-01-20 23:06
                    收起回复
                      2 获取游戏内管理员权限,在游戏里编辑
                      服务器成功启动后,登录一次自己的服务器,记住游戏内的id
                      打开Xshell远程操作服务器,登录pzserver账号
                      输入./pzserver console,打开僵尸毁灭工程的服务器控制台


                      回车后就会进入了,可以输入help查询部分可以使用的口令
                      (注意:退出控制台的时候请使用Ctrl+b 然后按d退出,不要直接Ctrl+c,Ctrl+c会直接关闭服务器)

                      这边可以看到,在服务器控制台使用 grantadmin 用户名 就可以给指定用户权限,后台输入口令后,再次登录该账号就能看见左上角多出来一堆东西

                      这就代表获取管理员权限成功了
                      侧边栏’’client’’下面也多出来一个’’admin’’选项
                      点开admin后在沙盒设置与服务器设置里调整目前服务器的相关内容。注意可能不会立刻生效,有些设置需要重启服务器才会生效。


                      IP属地:浙江11楼2022-01-20 23:08
                      回复
                        四 mods
                        虽然僵毁的原版内容已经能支撑起基本的游玩体验,但是不加点mod确实会感觉少了点什么。
                        说实话我不太清楚是僵毁服务器本身就自带这个还是LinuxGSM的功能,每次重启的时候,服务器后台便会自动检查mod的版本并更新,没有的mod也会自动下载,玩家只需耐心等待就行了。
                        也就是说,你只需要调整好mod清单,剩下的服务器会自己完成
                        添加mod清单也很简单,在本专栏 三.1 本地编辑配置文件后上传至服务器 部分本地编辑配置文件的时候,打开创意工坊插件设置和模组设置,就可以添加你已经订阅的mod

                        没有订阅的可以直接输入工坊id添加
                        注意:
                        1 “创意工坊插件设置”只负责添加mod,由于有些mod添加后会有多个启动选项(比如Autotsar的福特野马mod会有原版刷新几率,刷新几率x2,刷新几率x10三个启动选项)添加后是默认全部启动的,会造成冲突,需要你在“模组设置”里一一排查然后关掉一部分,这很麻烦,但是不想让你的服务器进去就开始报错的话建议一个个排查过去。
                        2 诸如Customize Zombies这类mod会有本专栏未涉及的【特殊的设置方式】,请查阅mod订阅界面,作者通常都会写明该怎么做,(使用本贴方法部署的服务器通常叫dedicated server,专用服务器,查阅的时候别找错了)
                        3 别忘了有些mod是有前置mod的,别忘了一起加上去,别忘了。


                        IP属地:浙江12楼2022-01-20 23:09
                        回复
                          这里你可能会说:哇如果我要加上百个mod岂不是要非常麻烦了?
                          很遗憾!是的!
                          但!是!
                          有mod作者帮我们解决了这个问题
                          如果你需要添加大批量mod的话,请去创意工坊订阅ModManager : Server这个mod

                          和modmanager一样,这是一个专门针对服务器配置文件的界面优化mod,用法已经在订阅界面写的很清楚了:
                          启动modmanager后,再启动ModManager : Server这个mod,之后你会在工坊模组界面找到一个server选项
                          选择你需要载入的配置文件以后,就可以操作了,操作完毕再用winscp上传至服务器即可
                          总之,如果你需要大批量添加mod的话,我推荐用这个!确实舒服了不少,帮我省下了不少时间



                          IP属地:浙江13楼2022-01-20 23:16
                          收起回复
                            最后 长期运营
                            这里分享两个长期运营的小技巧:定时重启和定时存档备份
                            这两个技巧都用到了crontab这个指令,可以先百度自行了解一下
                            1 定时重启
                            确保你退出了服务器的后台控制台,然后输入crontab -e

                            第一次使用时选2,然后会进入一个文本编辑界面
                            关于crontab的命令格式:

                            (摘自runnoob.com)
                            说回我们刚刚的操作步骤,打开后你应该能看到如下的界面


                            最后两行黄、红的代码就是你需要写的部分,没有动过的话应该只有蓝色部分
                            打开后,按i开始编辑该文件,并且在最下面像我一样,输入
                            0 */4 * * * /home/pzserver/pzserver restart > /dev/null 2>&1
                            #解释一下,这行命令意味着每4小时发送一次重启命令,“pzserver restart”就是重启指令
                            #至于> /dev/null 2>&1,是由于
                            #当程序在你所指定的时间执行后,系统会发一封邮件给当前的用户,显示该程序执行的内容,若是你不希望收到这样的邮件,需要在每一行空一格之后加上 > /dev/null 2>&1
                            按esc后,输入”:wq”保存文件即可

                            保存后应该会显示“installing new crontab”
                            这样以来它就会自行每4小时重启一次了,无需额外的人工维护


                            IP属地:浙江14楼2022-01-20 23:19
                            回复
                              2 定时存档备份
                              不管服务器管理的再严格,总是会不可避免的放进来一些熊孩子,这个时候回档就显得很重要了,接下来我将教你如何用crontab与shell脚本实现服务器每8小时自动备份存档
                              新建一个pzserver_backup.sh文件(本地建或者是直接在Winscp远程搞都行)
                              文件内输入以下指令
                              cp -af /home/pzserver/Zomboid/Saves/Multiplayer/pzserver/ /home/pzserver/Zomboid/Saves/save_backups/$(date -d "today" +"%Y%m%d_%H%M%S")/
                              # 此行含义: 将/home/pzserver/Zomboid/Saves/Multiplayer/pzserver/复制到/home/pzserver/Zomboid/Saves/save_backups/目录下, 并以当前日期命名文件夹的名称
                              # 之后请在crontab上设置定期执行指令
                              # 本来还有个定时清理时间过长备份的想法的,因为笔者最近时间太紧迫,暂时没写完,晚些时候发上来
                              将这个文件用WinSCP放到/home/pzserver目录下,设置组和拥有者给pzserver

                              (说个题外话:如果你的服务器无法启动,通常是管理者给服务器上传了什么东西,却没有正确设置权限导致的!解决方法和这里的一样,别忘了点“循环设定组、拥有者和权限”,没点的话只有文件夹本身被设置过,但是里面的文件还是没动过的! )

                              说回刚刚的内容,最后一步是给予脚本执行权限,在远程终端输入:
                              chmod +x pzserver_backup.sh
                              然后再次打开crontab(crontab -e)
                              输入:
                              0 */8 * * * /home/pzserver/pzserver_backup.sh > /dev/null 2>&1
                              #这行的意思是每8小时执行一次备份脚本
                              就是这样,:wq保存crontab文件后,它就会在每天的8点、16点、0点自动执行一次备份
                              备份存档文件可以在/home/pzserver/Zomboid/Saves/save_backups/下找到
                              需要用的时候,先./pzserver stop关闭服务器,然后把/home/pzserver/Zomboid/Saves/Multiplayer/下的pzserver文件夹删除
                              找到需要回档的对应备份,文件夹改成pzserver后,将整个文件夹复制到/home/pzserver/Zomboid/Saves/Multiplayer/下即可。
                              之后启动服务器,存档应该会恢复成几天前的存档


                              IP属地:浙江15楼2022-01-20 23:20
                              回复