
自己搭建的服务器,关闭正版验证,没了用户验证,不显示皮肤,小伙伴还频繁换“马甲”,甚至有陌生人闯入?开启正版验证,小伙伴又没买国际版账号?试试外置登录吧!
什么是“外置登录”?
-> 外置登录,就是相比Minecraft提供的内置登录,是由我们或者第三方提供的登录。同时,外置登录一般还会有自己的皮肤站,也能正常使用皮肤嗷。
接下来,就教大家怎么搭建自己的Minecraft皮肤站,并实现外置登录。注意:
本次教程,适用于Minecraft Java版本服务器。对类型没有要求(也就是支持Forge)
受限于篇幅,B站图文只演示核心步骤。完整步骤(如:网站环境搭建、依赖编译)请看博客嗷。
本教程同步访问在Mintimate's Blog:
https://www.mintimate.cn/2021/09/26/MinecraftBlessing
本文使用blessing-skin-server作为皮肤站,这个其实是LittleSkin的开源社区版本。实现效果:

用户角色管理

用户皮肤管理
你还可以安装很多插件,实现:邀请码注册、外置登录等等功能:

丰富的插件
基于前文的皮肤站,我们使用Yggdrasil API实现外部登录

外置登录选项

外置登录角色
最后实现的效果是:搭建一个网站,用户可以注册账号,并登录系统进行皮肤的上传、下载以及激活皮肤为角色皮肤。 皮肤站和外置登录配合,就可以达到和正版登录一样的效果:
允许用户注册账号
允许用户上传和自定义自己游戏皮肤
并且方便服务器管理者规范玩家行为(嘿嘿,防止用户频繁换“马甲”,或者禁止某个玩家登录)
准备工具很简单:
LEMP环境:
Linux服务器:Debian、CentOS都可以。极其不推荐使用Windows Server。
Nginx/Apache:推荐使用Nginx环境
MySQL/MariaDB:可以使用Linux服务器自己搭建,也可以直接买现成的。
PHP:PHP版本推荐7以上,本文使用PHP7.4
Minecraft服务器端:如果没有搭建MC服务器,参考:零基础搭建MC服务器
为了照顾小白用户,本文提供两个思路搭建:
宝塔搭建【推荐小白】:可视化部署LEMP环境,并可视化部署皮肤站和外置登录
编译安装【推荐老手】:编译安装LEMP环境,并命令后操作部署皮肤站和外置登录
Opt1:宝塔面板
如果你是宝塔部署的LEMP环境:

宝塔部署LEMP环境
那么需要注意,到宝塔的软件商店内激活函数:
symlink
readlink
putenv
realpath

删除->激活函数
并安装fileinfo的扩展(如果你的服务器内存小于2G安装不上,可以去添加Swap):

安装fileinfo
之后,到网站选项卡内,添加网站:

添加网站
并上传BlessingSkin(https://github.com/bs-community/blessing-skin-server/releases)的发行版本到网站内解压:

解压后效果
之后,设置伪静和主页即可:

设置伪静和root
location / {
try_files $uri $uri/ /index.php?$query_string;
} 剩下的,可以看看初始化部分嗷。
Opt2:编译部署
这里的编译部署,其实主要是编译Nginx和PHP以及MariaDB/MySQL。其实,我之前的视频基本有演示,比如:树莓派上Linux编译安装PHP、Nginx并搭建_h5ai。
但是,需要注意⚠️:
BlessingSkin需要PHP的gd依赖,而gd里需要freetype的支持,需要我们提前编译freetype并添加到pkg变量内。
参考的的PHP编译参数:
./configure \
--prefix=/usr/local/php7 \
--with-curl \
--with-mysqli \
--with-openssl \
--with-pdo-mysql \
--with-jpeg \
--enable-gd \
--enable-fpm \
--with-fpm-user=www \
--with-fpm-group=www \
--enable-bcmath \
--enable-xml \
--with-zip \
--enable-mbstring \
--enable-sockets \
--with-zlib \
--enable-fileinfo \
--enable-exif \
--with-freetype

PHP编译参数
最后,不要忘记设置Nginx:
location / {
index index.php index.html index.htm;
try_files $uri $uri/ /index.php?$query_string;
}
当然,还有root地址。这里就不演示了嗷(博客图文可以了解一下)。
如果LEMP部署正常,BlessingSkin的包也正常,就可以初始化了。Terminal进入BlessingSkin的网站目录,执行(宝塔似乎不用执行初始化,挺奇怪的……):
cp .env.example .env
/usr/local/php7/bin/php artisan key:generate 之后,进入网站,即可访问:

访问网站
这个时候,需要填个MySQL或者MariaDB了,宝塔用户可以到数据库选项卡内创建,编译用户……既然都会编译了,数据库创建应该不用我说吧……
初始化成功,我们登入网站,就可以准备外置登录了。
使用外置登录,服务器的online-mode记得设置为true哦~
接下来,我们使用Yggdrasil API来外置登录。
1. 皮肤站上操作
首先,我们需要配置我们的皮肤站(其实,说是皮肤站,倒像是个百宝箱),之后选择管理面板:

管理面板
之后,选择插件市场:

安装插件
安装好插件后,我们进入,勾选插件,之后,会出现小齿轮⚙️,我们 点击就可以进入这个插件的管理面板,记住API Root中的地址,这个就是我们外置登录的验证地址:

外置登录地址
2. 服务器上操作
其次,我们需要设置我们的 Java Minecraft服务器的启动命令,先下载最新版本的,下载地址:
authlib-injector:https://authlib-injector.yushi.moe/

authlib-injector下载
之后,我们回到我们Minecraft的启动界面,如果你之前的Minecraft服务器启动命令是:
java -jar -Xms1024M -Xmx5120M LoliServer-1.16.5-89-server.jar 那么,加上验证就是:
java -jar -Xms1024M -Xmx5120M -javaagent:authlib-injector-1.1.39.jar=http://URL LoliServer-1.16.5-89-server.jar 其中:
authlib-injector-1.1.39.jar:这个需要替换为你刚刚下载的authlib-injector版本。
http://URL:为上文`Yggdrasil API`地址。
服务器也是可以正常启动的。
3. 客户端上操作
最后,我们到客户单上设置,以HCML为例,我们打开HMCL后,在登录里选择外置登录:

外置登录
添加的内容:
验证服务器:我们的Yggdrasil API地址
用户名:我们自己皮肤站上注册的用户
密码:我们自己皮肤站上……
这样,就可以看见自己的角色了(皮肤站上,事先要创建一个角色嗷):

添加成功
这样,我们就可以类似正版登录一样,进入我们刚刚的服务器了嗷~~
外置登录和皮肤站就是这么简单,有什么问题,欢迎评论区留言嗷。
Tips:如果代码不方便复制,或者想获得更详细的步骤,可以访问博客嗷:
https://www.mintimate.cn/2021/09/26/MinecraftBlessing