在差不多两年前我写了篇 Minecraft联机与开服基础教程 ,在末尾我挖了个坑说之后写篇进阶教程,今天把坑填一下(
各位服主都知道的,自己的服务器一般如果不想开正版验证,比如开给群友的联机服,但是又害怕玩家被冒名顶替偷东西,怎么办呢?
老玩家应该对下面这张图不陌生,基本上当年90%的离线第三方服务器都在用这个验证插件,什么/login,/reg都是这个插件的

这个插件是 AuthMe ,至今还有很多服务器在用,但是我觉得这个插件不优雅,我更喜欢正版验证那种体验,就是PCL里登录账号启动游戏直接进服务器的感觉,同时还能保存账号密码,不需要每次进服务器都要输一遍密码 (甚至我现在玩的一个95%玩家都是正版的服务器,为了那一小撮离线玩家选择安装AuthMe,严重破坏正版玩家体验)
Blessing Skin Server 是GitHub上开源的皮肤站项目。本职是一个皮肤站,但是通过一些插件就可以实现简易“正版验证服务器”的效果。实现玩家自助注册,皮肤管理,启动器登录,服务端验证的一条龙服务。同时如果自建Blessing Skin Server,服主还能超高效管理服务器,毕竟皮肤站=验证器,如果有玩家做出违规行为,可以直接从皮肤站下手,再也不需要动mc服务器那边的白名单了。如果需要多人同时管理服务器人员流动,也可以从皮肤站入手,直接授予管理员权限。我开服快10年就没见过比皮肤站更好管理玩家的方案了
目前想使用 Blessing Skin Server 有两种途径,一种是用现成的,比如比较著名的 LittleSkin ,一种是自建。先介绍现成的
这并不能代替正版
不能帮助你进入仅支持正版的服务器
在有条件的情况下请务必支持正版
本教程仅涵盖 LittleSkin 及自建皮肤站的搭建与接入流程
这是目前最大的 Blessing Skin 皮肤站,用户数量庞大,因此拥有国内最全的共享皮肤库,而且热度很高,几乎能找到所有最新最热的皮肤素材
这个用起来很简单,去 LittleSkin 注册账号,如何接入下面分为玩家侧和服主侧
如果你用PCL,非常简单,去 版本设置 → 设置 → 服务器 里把 登录方式 设置为 第三方登录:Authlib Injector 或 LittleSkin 在下面就能看到个 设置为 LittleSkin 的按钮。


如果是老版本没有这个按钮就直接在认证服务器方框中填入以下地址就可以
然后返回启动游戏界面输入账号密码启动游戏就可以了
如果你用HMCL,也非常简单(这些国内启动器真的考虑很周全),在账户那一栏,点击头像,添加账户里面就已经内置了LittleSkin,输入账号密码就好了


如果是老版本没有这个按钮就直接添加认证服务器,认证服务器地址填入以下地址就可以(为了写教程我还特地翻GitHub Releases十几页才找到这个版本)

然后输入账号密码就可以启动游戏了
服主要明白为什么要用公共皮肤站,公共皮肤站是一个替代正版的好方案。但是在管理方面就略逊于自建,因为你没有玩家后台,只能当个Authme加强版。推荐有能力的服主自建皮肤站
假设我们现在已经构建好服务器端了
下载 authlib-injector 后存放至服务端根目录
下载地址:GitHub Releases , 123Pan
首先把服务器正版验证打开,server.properties 里面的 online-mode 设置成 true
然后我们在启动命令里面加上,这个版本号得跟你服务器的版本对的上
示例:
然后就设置好了,可以开服了
非皮肤站登录的玩家将会无法进入服务器,报错内容如下


白名单机制和正版验证无异,可以直接添加 LittleSkin 角色名就可以
这可是重头戏,也是我自己的选择。自建的好处就是
最重要的好处就是,这是一个掌握在自己手上的系统,自由度非常高
我假设你已经安装过openresty和mysql(如果没安装也不要紧,安装这俩不要什么参数,无脑安装最新版本就好)
去 网站 → 运行环境 创建PHP运行环境
名称和容器名称自定义,应用选 PHP 8,PHP版本选 8.1.33 其他默认就好
最重要的一步!扩展模板这里选 Default ,然后它就会帮你填充需要的扩展

点击确认后等待制作镜像完成即可创建站点
回到网站页面创建网站,顶部选 运行环境 ,类型选 PHP , 运行环境填刚才制作好的,域名 填自己的
推荐把数据库也顺手创建了,名称 和 用户名 都可以自定义,密码 推荐默认就好
(看不明白可以直接对照图片填)

下载 blessing-skin-server 后解压存放至网站目录
下载地址:GitHub Releases , 123Pan
在网站配置页面给皮肤站配置 运行目录 为 /public 保存,运行用户/组权限均设置为 1000 保存, 伪静态 页面填入以下代码并保存:
这时候就可以直接访问网站填写信息
服务器地址填 mysql ,端口保持不变,数据库用户名和名称填刚才创建的,密码可以返回数据库页面查看

然后填写超级管理员邮箱,昵称,密码,站点名称什么的自己看着填
然后就安装成功了,可以跳到优化篇
我也假设你已经安装过nginx和mysql(如果没安装也不要紧,安装这俩不要什么参数,无脑安装最新版本就好)
去 软件商店 安装 PHP 8.1
安装完成后设置 PHP 8.1 在 安装扩展里找到以下扩展安装:
v11.3.0 ,除 fileinfo 需手动安装外,其余扩展均已默认预装。安装好扩展后去 禁用函数 里禁用下列函数:
v11.3.0 ,除 realpath 未被禁用,其余函数全部默认禁用,解除禁用即可。这时候就可以返回 网站 页面,添加站点了
域名就填自己的的域名,数据库选MySQL,数据库账户密码自定义,PHP选择刚才配置好的 PHP-81
(看不明白可以直接对照图片填)

下载 blessing-skin-server 后解压存放至网站目录
下载地址:GitHub Releases , 123Pan
进入网站设置面板,切换到 网站目录 页面。将运行目录修改为 /public ,并取消勾选 防跨站攻击 选项,点击保存
随后切换至 伪静态 页面,填入以下代码并保存:
这时候就可以直接访问网站填写信息
服务器地址端口保持默认不变(地址 localhost ,端口 3306),数据库用户名,密码,名称可以返回宝塔面板数据库页面查看,这里就不截图了
然后填写超级管理员邮箱,昵称,密码,站点名称什么的自己看着填,填完就安装成功了
刚安装好后进入插件市场会有这样的报错

这很正常,我们只需要到网站根目录里的 .env 添加一行代码就能正常加载了
一样,也是到 .env 里面配置
对应参数改成自己的就好
这是重点!皮肤站的登录验证都靠它
Yggdrasil API + authlib-injector = ✨
去插件市场找到 Yggdrasil API 并下载,然后在 插件管理 菜单勾选启用
然后去 插件配置 的子菜单 Yggdrasil API 里按需修改即可使用
返回用户中心仪表盘里就能看见 快速配置启动器 的卡片,将 将此按钮拖到启动器 的按钮拖到启动器就可以配置快速配置第三方登录
跟自建比起来简直不要再简单很多步骤就是 将此按钮拖到启动器 就可以
懒得截图了,想看图可以直接看上面 LittleSkin 的接入方法,只要把验证服务器换成自己的地址就行
“将此按钮拖到启动器”
(手动配置)
非常简单,去 版本设置 → 设置 → 服务器 里把 登录方式 设置为 第三方登录:Authlib Injector 或 LittleSkin
认证服务器方框中填入你皮肤站 快速配置启动器 卡片中的地址就行
“将此按钮拖到启动器”
(手动配置)
在账户那一栏,点击头像,添加账户下面的 添加认证服务器,输入你皮肤站 快速配置启动器 卡片中的地址就行
添加完了别忘了点击服务器输入账号密码
假设我们现在已经构建好服务器端了
下载 authlib-injector 后存放至服务端根目录
下载地址:GitHub Releases , 123Pan
首先把服务器正版验证打开,server.properties 里面的 online-mode 设置成 true
然后我们在启动命令里面加上,这个版本号得跟你服务器的版本对的上
示例:
然后就设置好了,可以开服了
非皮肤站登录的玩家将会无法进入服务器,报错内容如下


其实很简单,因为现在服务端只认皮肤站登录了,只需要装上 注册邀请码 和 单角色限制 这两个插件就可以实现
通过QQ等聊天软件1对1发放注册邀请码,通过单角色限制来防止一个用户注册多个角色共用账号
发放邀请码的管理或者服主也可以通过表格统计谁发放哪个邀请码给谁,谁搞破坏封谁,都能对应到QQ号本人。甚至是哪个UID用了哪个邀请码都很清楚,后台一查,对应邮箱,游戏内ID,再加上统计的表格,信息一目了然
别问我为什么这么懂,因为我对我自己的服务器就这么干过(
自己研究研究后台,会发现可玩性非常高,什么东西都一清二楚。所以这也是我强推有能力的服主自建更好
https://littleskin.cn/api/yggdrasil
https://littleskin.cn/api/yggdrasil
online-mode=true
-javaagent:authlib-injector-1.2.6.jar=https://littleskin.cn/api/yggdrasil
"/opt/zulu/17/bin/java" -Xms4G -Xmx16G -Dfile.encoding=utf-8 -javaagent:authlib-injector-1.2.6.jar=https://littleskin.cn/api/yggdrasil -jar server.jar --nogui
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location / {
try_files $uri $uri/ /index.php?$query_string;
}
PLUGINS_REGISTRY=https://d2jw1l0ullrzt6.cloudfront.net/registry_zh_CN.json
MAIL_MAILER=smtp
MAIL_HOST=smtp.xxxxx.com # 邮件服务器地址
MAIL_PORT=465 # 端口,默认465,也可以改成25
[email protected] # 账户
MAIL_PASSWORD=xxxxx # 密码
MAIL_ENCRYPTION=null
[email protected] # 发件地址
MAIL_FROM_NAME=mint-skin #发件名称
online-mode=true
-javaagent:authlib-injector-1.2.6.jar=https://{你自己皮肤站的地址}/api/yggdrasil
"/opt/zulu/17/bin/java" -Xms4G -Xmx16G -Dfile.encoding=utf-8 -javaagent:authlib-injector-1.2.6.jar=https://xxxxx.com/api/yggdrasil -jar server.jar --nogui