《Minecraft服主养成手册》(技术向)

前言


我为什么要写这套教程?

我是『清风和煦』服务器的创办人兼服主Frea 从2017年年初开始我便对Minecraft服务器技术有兴趣 并着手建立自己的服务器 至今已有三年

而早在一年前 我对Minecraft本身及Minecraft服务器的兴趣日渐减退(我大概是老了 曾经一腔热情已消耗殆尽)况且我不可能开一辈子的服 曾经也有过撰写技术向教程的想法 缺迟迟没有动工 现今有了时间和灵感 不如在完全“退休”之前实现它 了此心愿

这段时间的服务器运营经历 使我积累了不少经验 在开服不断探索的过程中也踩过不少坑 遇过不少困难阻碍 我希望将这些经验传授给后来者 以少走弯路 致像我曾经一样迷茫的人

这三年 因习惯一人单干 且不擅长与他人协作的原因 服务器里外事务基本一人独扛 也曾渴望能有合适的伙伴来与我共同做这些事 但一直没有发现(谁有既有一身才能 又心甘情愿的跟着你用爱发电啊)

(借着这个机会也许能找到理想的接班人)

你为什么要开服?

在此之前 我想和你聊聊 你为什么要开服?

为了和认识的小伙伴们一起联机?过一把把权力至高无上OP的隐?开一个商业服务器并从中获利?

我不管你是因何种要开服(而且我也管不着)但我更希望你能开好一个服务器 对这份差事抱着敬畏 做一个对玩家负责的管理者

在决定要踏入开服之路前 希望你做好心理准备

开服 你需要具备 耐心 细心 以及不断探索的好奇心

开服是件辛苦的事 且会占用你大量的时间 特别是在前期中期 电脑前一坐就是数个小时以上 通宵达旦制作完善服务端 挖空心思宣传招揽玩家 排除故障 埋头在密密麻麻的错误信息中寻找答案 搜索发帖求助… 处理玩家之间的矛盾纠纷 惩罚熊孩子 应付突发事件…… 为了使服务器保持活力 你还要不定期的筹划各种活动……

开服也是件有意思的事 尝试大量的有趣的插件 将新学会的技术应用到服务器上 并体验其中的乐趣 以及成功带来的成就感 在这个过程中 你会主动/被动的去了解 学习以前从未接触过的知识 时间长了 你会发现无形中掌握了不少技能 尽管只是皮毛而已

渐渐的 你的思维也会发生改变 你会以一个构建者的视角来理解游戏 理解服务器是如何工作的 这在以前可能是没有过的体验

通过管理玩家 管理团队 你可以提升你的管理能力及人际交往能力 接触更多的人 发展自己的人脉 更是作为一服之主的身份 能给你带来一定的名誉和声望

做服主一定要懂技术吗?

不一定 我也认识一些服主 他们有一些人只懂得一点点的技术 同时他们的能力更侧重于策划 管理 而且他们可能会聘请另外一个人负责服务器的技术

如果你没有团队/合伙人 想要独自撑起一个服务器 技术是必要的

而且通常做技术维护的人 手握着服务器的命脉 你不会轻易的完全把命脉交给别人吧(即便你聘请了技术 也不要认为自己就可以高枕无忧了 你就不好奇你的技术人员每天都在做什么吗 别等到被删库跑路了 还不知道发生了什么 那才是最可悲的 再者 如果你想把自己的想法清晰的表达给对方 了解技术方面的知识无疑会更有助于你表达)

如果你不懂的技术 做任何事都抱着疑惑 且小心翼翼 甚至会因缺乏经验 造成了不可挽回的灾难(明白自己在做什么 不是件好事吗)

所以 我认为每一个服主 或多或少都一定要懂技术

教程开始

本教程将会一步一个脚印 渐进的带领你 从最简单的官服 到插件服 再到群组 及其他高级应用 旨在普及知识 建设一个专业化 高质量的服务器

本教材的重点在于技术 其他内容也会顺带提一些 要知道开服是一个综合的事情 光有一身技术 并不一定就能做好服务器(比如我)

说在最前面 “专业的技术不是你在他人面前秀肌肉 吹嘘的资本 技术本是为了解决问题而生 技术也没有高低之分 合适的 能有效解决问题的就是好技术”

个人写作风格较为唠叨 如能接受 请继续往下读

理解本教程需具备的基本能力

本教程是写给具有基本的计算机操作基础的读者看的 如果你连基本的文件管理 上网获取信息的能力都没有 就更别提开服了(据我所知现今国家还是很重视信息教育的 而且高二学生都要参加一级计算机考试的吧)

如果你真的不会 那也不必着急 买本计算机基础入门教材 如《中老年人学电脑》先看看吧

除了计算机基础知识以外 你还要了解TCP/IP 以及C/S工作模型 这些网络相关的知识(别看说的似乎很高大上 其实是很简单的东西)如果有可能 你最好还了解一点点的计算机程序设计思想(非必需 但有助于你后面理解一些东西)

以及你最好有一定的英语基础 因为往后打交道的通常是英文

英语很差怎么办 没关系 在弄懂了一些常见高频的词汇后 你也能看懂一二了 你还可以借助翻译工具 总之你绝对不要害怕它 而且许多都是计算机术语 或MC特定的译名 这和通用英语不同 每个人都要从新认识
久而久之你的英语水平甚至会因此提高 词汇积累得到增加 特别是在做汉化插件等工作 这是一个良性循环

如果你有良好的英文基础 你则可以畅游各大MC英文论坛 寻找及使用未被搬运至国内的优秀插件 毕竟国外在这方面的资源更丰富

除了上述内容以外 还有一点很重要 熟悉Minecraft的游玩(我想大多数能找到本教程的都应该会)毕竟先做好一个玩家 才能做好服务器管理者


目录 (编辑完善中)

准备工作
基础篇
  • 服务端种类及差异

  • 服务端的搭建与运行

    • 运行环境部署
    • 服务端的获取
    • 服务端目录/文件详解
  • 插件的安装调试与配置

    • 常用基础插件介绍
    • 版本兼容性与依赖关系
    • YAML语法基础
    • JSON语法基础
    • 权限分配与管理
    • 命令
  • 域名的注册与解析

    • 域名后缀
    • 解析记录
  • 服务器的租用与选购

    • 服务器硬件配置需求
    • 服务器种类
      • 面板服务器
      • VPS服务器
        • 安装自定义系统
      • 实体服务器
  • 数据备份与迁移

    • 数据备份
    • 数据迁移
  • 服务器维护

    • 检查与安装更新

    • 故障排除

      • 检查网络连通性
      • 服务端常见错误信息
  • 服务器安全

    • 系统环境安全
      • Window/Linux防火墙
    • 玩家身份验证
    • 玩家行为监控记录
    • 反作弊
  • 其他小技巧

    • 文件存放分类
进阶篇
  • BungeeCord群组应用
  • MySQL数据库应用
  • 使用Linux开服

服务器上线

  • 门面工程

    • 名称与LOGO
    • 服务器官网
  • 服务器宣传

    • 宣传途径
      • MCBBS宣传
扩展
  • 家庭宽带开服
    • 公网直连
    • 内网穿透
  • 正版&盗版混合验证
    • 正版玩家白名单自动放行
  • 多BungeeCord数据同步
  • 一端一图 跨服同步
  • 多版本支持
  • 支持BE客户端加入JE服务器
  • 正版验证代理
  • 服务器邮箱
  • 组装自己的实体服务器

正文开始

必备软件工具

如果你认为你已经做好准备 那么就开始吧
毋庸置疑 运行维护服务器需要一台电脑作为你日常工作的平台 而在你的电脑上需要准备一些必要的软件工具 本教程以Windows操作系统为例

  • 一个文本编辑器

通常可以是Notepad++ / Atom / SublimeText3VisualStudio Code 等 用于查看或编辑配置文件 以上任意一种即可 不必太过纠结 至少具备查找替换 文件编码转换 代码高亮等功能

  • 一个网页浏览器

推荐使用Firefox(火狐)或Chrome(谷歌浏览器)以及Edge(Win10自带浏览器)

如果你平时习惯使用QQ浏览器 搜狗浏览器 之类的国产浏览器 我也不反对

  • 服务器远程管理终端

使用什么样的终端取决于被远程管理的服务器运行的操作系统 如果是Windows 使用系统自带的“远程桌面连接”(mstsc.exe)即可 如果你在其他系统下 如Linux 则可以使用桌面自带的远程连接工具或xrdp 如果你是Android/iOS移动设备 则可以选择RDClient(Remote Desktop Client)

如果被管理的服务器是Linux操作系统 通常可以通过SSH(命令行)或VNC(图形桌面)这方面可用的软件就很多了 如PuTTY SecureCRT Mobaxterm Termius等(如果你是Win10 还可以使用自带的OpenSSH客户端 打开任意CMD或Powershell输入ssh即可)
若是Android/iOS移动设备 则可以用JuiceSSH
而VNC则有VNC Viewer

此外你还需要一个SFTP客户端来上传下载及远程管理文件 如WinSCP FlashFXP等

更多细节会在以后的篇章中讲到

  • “科学上网”工具

“科学上网”几乎是每个IT人的必备技能 此部分内容较敏感 便不多作介绍

“科学上网”允许你在国内使用一般情况下无法访问的网络服务 如谷歌搜索 或者可以加速一些海外网站 解决页面打开过慢或无法打开页面的问题 这对于提高你的工作效率非常实用 也不必天天求人代下资源

  • Java运行环境和Minecraft游戏客户端

这个不必解释


常用网站

这里整理了一份可能会经常用到的网站列表 希望对你有所帮助

Minecraft官方维基 https://minecraft-zh.gamepedia.com/Minecraft_Wiki
SpigotMC论坛(插件板块) https://www.spigotmc.org/resources
Bukkit论坛(插件版块)https://dev.bukkit.org/projects
Sponge论坛 https://forums.spongepowered.org/
MCBBS论坛 http://www.mcbbs.net/forum.php
GitHub https://github.com/
WIKI.VG https://wiki.vg
Minecraft星球 https://www.planetminecraft.com
Blingwang的Minecraft资源下载索引 https://labs.blw.moe/down


服务端的种类及差异

说到服务器 就不得不提传统的联机方式 有经验的玩家可能知道 我们平时想要联机 通常是使用客户端自带的功能(暂停菜单中的 “开放到局域网”)再配合Hamachi(蛤蟆吃)或游侠 来组建一个虚拟的局域网 从而把身在异地不同网络中的玩家连接在一起
3346.jpg

再者 就是官方付费的Realm服务(仅提供最新正式版)
0208.JPG
以上两种 你通常只有多人游戏的OP(管理员)权限 而无法接触服务器后台(也没有必要)这对于玩家来说 是不透明的

接着 就是“Minecraft Server”官方服务器(以下简称官服)
Mojang每次在发布一个版本的同时 也会提供其服务端供玩家下载(Minecraft.net官网新版本资讯底端/官方启动器中可以找到下载链接)
2631.jpg
通常是一个名为“server.jar”的文件 双击即可运行 用法非常简单(别忘了新建一个空文件夹把它丢进去 不然生成的服务端数据文件会到处都是)
官服相比一开始提到的两种联机方式有着更高的定制性(你可以编辑服务端配置文件为你想要的效果)
官服的优点是稳定 更新及时(与最新版本的客户端同时释出) 其缺点也很明显 性能差 消耗资源高(相对而言)
server.JPG

无论是客户端自带的“开放到局域网” 还是Realm 或者是Minecraft Server官服 他们都不能安装第三方插件或MOD!
如果你只是简单的希望三五个好友在一起联机 且对第三方插件/MOD没有需求的话 官服也是可以考虑的(那你还来看我这篇教程干啥?)

排除以上三种 下面便是我们的主角——第三方服务端了
而第三方服务端首先可以划分为插件服和模组服两大阵营(本教程以插件服为例)
当今主流的插件服服务端有 Spigot Paper
主流的MOD服务端有 Forge Sponge Thermos(1.7.10)


施工中……

这是草稿 未来可能会考虑分页 内容暂时也并非按目录顺序 想到什么写什么吧 最后一起整理

本教程仅在个人博客上发表 未经许可 不得转载!


知识共享许可协议
本作品采用知识共享署名-相同方式共享 4.0 国际许可协议进行许可。