使用宝塔自建Minecraft外置登录服务器实现防假人和玩家皮肤

一直以来,中国境内的 Minecraft 服主都喜欢使用 Authme 等登录插件来实现玩家身份验证。与此同时,这种未经官方认可的登录方式也出现了不少问题,比如一些压测工具(如 EndMinecraft)会利用内置登录插件“先登录,再验证”的特点来使用大量假人进行轰炸,大量占用服务器资源;同时,正版账号的一个重要组成部分:皮肤,在这种类型的登录方式下也无法使用(除非用一些 Mod)。而一些皮肤(验证)网站就很好的解决了这些问题,这些网站可以伪装成 Mojang 服务器来进行“伪正版验证”,实现和正版验证几乎相同的效果。

这篇文章将讲解如何使用宝塔Linux面板搭建一个 Blessing Skin Server 网站并通过安装 Yggdrasil 插件实现伪正版登录。

如果你懒得自行搭建,或者下面的教程你是真的看不懂,还可以试试麦块科技的“统一通行证”。

如果不想使用宝塔,你可以自行安装网站环境,请参考此项目官方的安装指南

安装宝塔

系统要求:

CentOS 7+

Debian 9+

Ubuntu 16+

在 SSH 终端中,输入以下命令一键安装宝塔。

curl -sSO http://download.bt.cn/install/new_install.sh && bash new_install.sh

命令有可能随宝塔的更新而更改,具体的可以参阅宝塔官网

到这里,可能有一部分 Linux 小白已经出问题了。

如果出现 Command not found 之类的报错,说明你的系统还没有安装 curl ,请在宝塔官网重新选择适合你的安装命令。

按y回车

接下来宝塔会自行安装,安装时间取决于服务器的配置。

当输出如下图所示的信息后,说明安装成功。


返回信息中应该包含面板访问地址、用户名和密码。

个人建议安装完后不要急于打开面板,可以在 SSH 终端中输入 bt 回车,修改面板端口【一定要改】登录用户名、密码,如果觉得不需要安全入口功能,也可以在这里关闭。

 

配置环境和网站

打开面板,登录。

无法访问?

检查一下安全组是否放行了宝塔端口?

安装有没有报错?

安装 Nginx(Apache)、MySQL、PHP(7.2以上)

可选安装 phpMyAdmin 和 FTP

在侧栏“软件商店”中找到你安装的PHP,点击设置,安装扩展-fileinfo

在禁用函数中删除 putenv (这一般情况下不会影响系统和网站安全)

手动构建 LNMP 或 LAMP 环境的读者可以修改 php.ini 文件中的 disable_functions 字段来删除对 putenv 的禁用。

阅读这篇文章有助于使你了解如何手动安装 PHP扩展

点击侧栏“网站”-添加网站

如果你需要同时通过 example.com 和 www.example.com 同时能访问到你的网站,务必在这里同时添加

BS目前已经升级到5版本,安装方式有可能有细微的不同

创建好网站后,先删除网站目录内的所有文件,再把 Blessing Skin Server 网站程序上传到网站目录。(推荐使用Latest release 而不是Pre-release)如果无法使用“直接下载”,可以下载 Assets 中的包。像这样:

上传到网站目录

解压缩

回到侧栏“网站”,进行最后的一些设置。

在“网站目录”中,设置运行目录为 /public 并保存。

如果你安装的是 Nginx 需要在“伪静态”中添加伪静态代码。

直接选择Laravel5。

现在 SSL 几乎已经成为主流,可以在 SSL 菜单内添加你的 SSL 证书。

不使用 HTTPS,浏览器和游戏客户端都会提示连接不安全。

 

设置PHP

从BS 5开始,PHP不能设置任何一个禁用函数。所以,在开始安装前,需要清除掉PHP里的禁用函数。

软件商店-运行环境-PHP-配置文件,Ctrl+F5搜索disable_functions,删除“=”后面的所有函数名。

保存,然后重载(重启)PHP。

 

配置BS Server

如果配置没有问题,现在就可以通过域名来访问你的网站了。

填写你创建网站时设置的数据库信息。

以及管理员个人信息

如果不出意外,到这里为止应该不会出什么错误了,如果安装失败,请阅读翻译提示信息并查找哪里出了问题。

配置外置登录 Yggdrasil API 插件

要启用外置登录,你需要在管理面板安装 Yggdrasil API 插件。

 

服务端配置

安装完成后,在 http://authlib-injector.yushi.moe/~download/ 处下载 authlib-injector 放置在你的Minecraft游戏服务器下,并修改你的启动命令

如果你原来的命令是
java -Xmx1024M -Xms1024M -jar minecraft_server.1.12.2.jar nogui

那么修改后的命令就是
java -Xmx1024M -Xms1024M -javaagent:authlib-injector.jar=https://example.com/api/yggdrasil -jar minecraft_server.1.12.2.jar nogui

粗体标注出的是authlib-injector的文件名(如果不在Minecraft根目录还需要添加文件路径)
斜体标注出的是 Yggdrasil API 地址,可以在 Yggdrasil 插件配置里面找到:

玩家客户端配置

推荐使用 HMCL ,如果不想使用 HMCL ,可以使用支持自定义启动脚本和外置登录的启动器,把 authlib-injector 放置在游戏目录内,在自定义脚本里添加

-javaagent:authlib-injector.jar=https://example.com/api/yggdrasil

因为 HMCL 内自带了 authlib-injector 因此配置起来更加方便。

在添加认证服务器一栏中直接输入皮肤站的域名即可快速完成配置。

 

最后一点提醒

  • 如果你启用了 Cloudflare 等 CDN 或内网穿透,请在管理面板中将你的IP获取方式改为 HTTP_X_FORWARDED_FOR

在BS 5中,默认IP获取方式是HTTP_X_FORWARDED_FOR,若要启用REMOTE_ADDR,可搜索相关插件
  • 如果你启用了 Cloudflare 、云锁、加速乐等WAF软件,在登录Minecraft的时候可能报错,请根据情况适当修改防护等级。Cloudflare 必须关闭 Firewall>Settings>Browser Integrity Check ,不要开启5秒盾。
  • 可以把要修改的主页背景、页面图标放置在“图床”里,网上有很多。

至此,安装结束。

资瓷

发表评论

电子邮件地址不会被公开。必填项已用 * 标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据