約2年前に Minecraftマルチプレイとサーバー構築基礎チュートリアル という記事を書きました。その末尾で「後で上級編も書く」と言っていたので、今日その穴を埋めることにしました(
サーバー管理者の皆さんならご存知の通り、自分のサーバーで正規版認証を使いたくない場合、例えばグループメンバー向けのマルチプレイサーバーで、でもプレイヤーがなりすまされてアイテムを盗まれるのが心配な場合、どうすればいいでしょうか?
古参プレイヤーなら下の画像に見覚えがあるはずです。当時、90%のオフラインサードパーティサーバーがこの認証プラグインを使っていました。/loginや/regといったコマンドは全てこのプラグインのものです。

このプラグインは AuthMe です。今でも多くのサーバーで使われていますが、私はこのプラグインがエレガントではないと思っています。正規版認証のような体験、つまりPCLでアカウントにログインしてゲームを起動すれば直接サーバーに入れる感覚が好きです。同時にアカウントとパスワードを保存できるので、サーバーに入るたびにパスワードを入力する必要がありません。(私が今プレイしている95%のプレイヤーが正規版のサーバーでさえ、ごく一部のオフラインプレイヤーのためにAuthMeを導入しており、正規版プレイヤーの体験を著しく損なっています)
Blessing Skin Server はGitHubでオープンソースのスキンサーバープロジェクトです。本来はスキンサーバーですが、いくつかのプラグインを使用することで簡易的な「正規版認証サーバー」の効果を実現できます。プレイヤーのセルフ登録、スキン管理、ランチャーログイン、サーバー側認証のワンストップサービスを実現します。また、自前でBlessing Skin Serverを構築すれば、サーバー管理者は非常に効率的にサーバーを管理できます。なぜならスキンサーバー=認証器だからです。プレイヤーが違反行為をした場合、スキンサーバー側から対処でき、もうMCサーバー側のホワイトリストをいじる必要がありません。複数人でサーバーの人員管理をする必要がある場合も、スキンサーバーから対応でき、直接管理者権限を付与できます。私はサーバー運営歴10年近くになりますが、スキンサーバーよりプレイヤー管理に優れた方法を見たことがありません
現在 Blessing Skin Server を使用するには2つの方法があります。1つは既存のものを使う方法で、例えば有名な LittleSkin があります。もう1つは自前で構築する方法です。まず既存のものから紹介します。
これは正規版の代わりにはなりません
正規版専用サーバーへの参加を助けることはできません
可能な限り正規版をサポートしてください
本チュートリアルはLittleSkinおよび自前スキンサーバーの構築と接続方法のみを扱います
これは現在最大のBlessing Skin スキンサーバーで、ユーザー数が膨大なため、国内最も充実した共有スキンライブラリを持っています。また人気も高く、ほぼすべての最新・人気スキン素材を見つけることができます。
使い方はとても簡単です。LittleSkin でアカウントを登録し、以下でプレイヤー側とサーバー管理者側に分けて接続方法を説明します。
PCLを使っている場合、非常に簡単です。版本设置 → 设置 → 服务器 で 登录方式 を 第三方登录:Authlib Injector 或 LittleSkin に設定すると、下に 设置为 LittleSkin というボタンが表示されます。


古いバージョンでこのボタンがない場合は、認証サーバーの入力欄に以下のアドレスを直接入力すればOKです。
その後、ゲーム起動画面に戻ってアカウントとパスワードを入力してゲームを起動すれば完了です。
HMCLを使っている場合も非常に簡単です(これらの国産ランチャーは本当に配慮が行き届いています)。アカウント欄でアバターをクリックし、アカウント追加の中にLittleSkinが既に組み込まれているので、アカウントとパスワードを入力するだけです。


古いバージョンでこのボタンがない場合は、認証サーバーを直接追加し、認証サーバーアドレスに以下のアドレスを入力すればOKです。
~~(チュートリアルを書くためにGitHub Releasesを十数ページもスクロールしてようやくこのバージョンを見つけました)~~

その後、アカウントとパスワードを入力すればゲームを起動できます。
サーバー管理者は公共スキンサーバーを使う理由を理解する必要があります。公共スキンサーバーは正規版の良い代替案です。しかし管理面では自前構築に劣ります。なぜならプレイヤーのバックエンドがないため、Authmeの強化版程度にしかなりません。能力のあるサーバー管理者には自前でスキンサーバーを構築することをお勧めします。
サーバー側が既に構築済みと仮定します。
authlib-injector をダウンロードしてサーバーのルートディレクトリに配置します。
ダウンロード先:GitHub Releases , 123Pan
まずサーバーの正規版認証をオンにします。server.properties 内の online-mode を true に設定します。
次に起動コマンドに以下を追加します。このバージョン番号はサーバーのバージョンと一致させる必要があります。
例:
これで設定完了です。サーバーを起動できます。
スキンサーバーでログインしていないプレイヤーはサーバーに入れず、以下のエラーが表示されます。


ホワイトリストの仕組みは正規版認証と同じで、LittleSkinのキャラクター名を直接追加するだけでOKです。
これがメインです。私自身もこれを選んでいます。自前構築のメリットは以下の通りです:
最も重要なメリットは、これが自分の手中にあるシステムであり、自由度が非常に高いことです。
openrestyとmysqlが既にインストール済みと仮定します(未インストールでも問題ありません。この2つは特別なパラメータ不要で、最新版を普通にインストールするだけです)
网站 → 运行环境 でPHP実行環境を作成します。
名前とコンテナ名は任意、アプリケーションは PHP 8、PHPバージョンは 8.1.33 を選択し、その他はデフォルトでOKです。
最も重要なステップ!拡張テンプレートで Default を選択すると、必要な拡張が自動的に入力されます。

確認をクリックしてイメージの作成完了を待てば、サイトを作成できます。
ウェブサイトページに戻ってウェブサイトを作成します。上部で 运行环境 を選択し、タイプは PHP、运行环境 は先ほど作成したものを入力、域名 は自分のものを入力します。
データベースも一緒に作成することをお勧めします。名称 と 用户名 は任意、密码 はデフォルトのままで良いでしょう。
(分からない場合は画像を参照してください)

blessing-skin-server をダウンロードして解凍し、ウェブサイトディレクトリに配置します。
ダウンロード先:GitHub Releases , 123Pan
ウェブサイト設定ページでスキンサーバーの実行ディレクトリを /public に設定して保存し、実行ユーザー/グループ権限をともに 1000 に設定して保存、伪静态 ページに以下のコードを入力して保存します:
これでウェブサイトに直接アクセスして情報を入力できます。
サーバーアドレスは mysql を入力、ポートはそのまま、データベースのユーザー名と名前は先ほど作成したものを入力、パスワードはデータベースページに戻って確認できます。

次にスーパー管理者のメールアドレス、ニックネーム、パスワード、サイト名などを適宜入力します。
これでインストール完了です。最適化編に進めます。
nginxとmysqlが既にインストール済みと仮定します(未インストールでも問題ありません。この2つは特別なパラメータ不要で、最新版を普通にインストールするだけです)
软件商店 で PHP 8.1 をインストールします。
インストール完了後、PHP 8.1 の設定で 安装扩展 から以下の拡張をインストールします:
拡張のインストール後、禁用函数 で以下の関数を無効化解除します:
v11.3.0 です。realpath 以外の関数は全てデフォルトで無効化されているため、無効化を解除するだけでOKです。これで 网站 ページに戻ってサイトを追加できます。
ドメインには自分のドメインを入力、データベースはMySQLを選択、データベースのアカウントとパスワードは任意、PHPは先ほど設定した PHP-81 を選択します。
(分からない場合は画像を参照してください)

blessing-skin-server をダウンロードして解凍し、ウェブサイトディレクトリに配置します。
ダウンロード先:GitHub Releases , 123Pan
ウェブサイト設定パネルに入り、网站目录 ページに切り替えます。実行ディレクトリを /public に変更し、防跨站攻击 オプションのチェックを外して保存します。
次に伪静态ページに切り替え、以下のコードを入力して保存します:
これでウェブサイトに直接アクセスして情報を入力できます。
サーバーアドレスとポートはデフォルトのまま(アドレス localhost、ポート 3306)、データベースのユーザー名、パスワード、名前は宝塔パネルのデータベースページで確認できます。ここではスクリーンショットは省略します。
次にスーパー管理者のメールアドレス、ニックネーム、パスワード、サイト名などを適宜入力すれば、インストール完了です。
インストール直後にプラグインマーケットに入ると、このようなエラーが表示されます。

これは正常です。ウェブサイトのルートディレクトリにある .env に1行コードを追加するだけで正常に読み込めます。
同様に、.env で設定します。
対応するパラメータを自分のものに変更してください。
これが重要です!スキンサーバーのログイン認証は全てこれに依存しています。
Yggdrasil API + authlib-injector = ✨
具体的な認証フローは以下の通りです(実は正規版認証も同じ原理です):
プラグインマーケットで Yggdrasil API を見つけてダウンロードし、插件管理 メニューで有効化にチェックを入れます。
次に 插件配置 のサブメニュー Yggdrasil API で必要に応じて設定を変更すれば使用できます。
ユーザーセンターのダッシュボードに戻ると 快速配置启动器 のカードが表示されます。将此按钮拖到启动器 のボタンをランチャーにドラッグすれば、サードパーティログインを素早く設定できます。
自前構築と比べると非常に簡単で、多くの手順は 将此按钮拖到启动器 だけです。
スクリーンショットは省略します。画像を見たい場合は上記の LittleSkin の接続方法を参照してください。認証サーバーを自分のアドレスに変更するだけです。
「将此按钮拖到启动器」
(手動設定)
非常に簡単です。版本设置 → 设置 → 服务器 で 登录方式 を 第三方登录:Authlib Injector 或 LittleSkin に設定します。
認証サーバーの入力欄にスキンサーバーの 快速配置启动器 カードに表示されているアドレスを入力するだけです。
「将此按钮拖到启动器」
(手動設定)
アカウント欄でアバターをクリックし、アカウント追加の下にある 添加认证服务器 をクリックして、スキンサーバーの 快速配置启动器 カードに表示されているアドレスを入力するだけです。
追加後、サーバーをクリックしてアカウントとパスワードを入力するのを忘れないでください。
サーバー側が既に構築済みと仮定します。
authlib-injector をダウンロードしてサーバーのルートディレクトリに配置します。
ダウンロード先:GitHub Releases , 123Pan
まずサーバーの正規版認証をオンにします。server.properties 内の online-mode を true に設定します。
次に起動コマンドに以下を追加します。このバージョン番号はサーバーのバージョンと一致させる必要があります。
例:
これで設定完了です。サーバーを起動できます。
スキンサーバーでログインしていないプレイヤーはサーバーに入れず、以下のエラーが表示されます。


実はとても簡単です。現在サーバー側はスキンサーバーログインのみを認識するので、注册邀请码 と 单角色限制 の2つのプラグインをインストールするだけで実現できます。
QQなどのチャットアプリで1対1で登録招待コードを配布し、単一キャラクター制限で1ユーザーが複数キャラクターを登録してアカウントを共有するのを防ぎます。
招待コードを配布する管理者やサーバー管理者は、誰がどの招待コードを誰に配布したかを表やスプレッドシートで記録できます。誰が問題を起こしたらその人をBAN、全てQQアカウントと紐付けられます。どのUIDがどの招待コードを使用したかも明確で、バックエンドで確認すれば、対応するメールアドレス、ゲーム内ID、さらに記録した表の情報が一目瞭然です。
||なぜこんなに詳しいか聞かないでください。自分のサーバーでまさにこうやっていたからです(||
自分でバックエンドを研究すると、非常に多くの可能性があり、全てが明確に分かることに気づくでしょう。だからこそ、能力のあるサーバー管理者には自前構築を強くお勧めします。
v11.3.0 です。fileinfo 以外の拡張は全てデフォルトでプリインストールされており、手動インストールが必要なのは fileinfo のみです。