「maincraft_server(マイクラのマルチサーバ)」でホワイトリスト(whitelist)を使用する方法についてまとめています。
ホワイトリストの導入について
知っている仲間内だけで遊びたい場合など、知らない人が勝手にサーバに入ってくることを防ぐことが出来ます。
荒らしユーザからの被害を防ぐにも効果があります。
ホワイトリスト設定
ホワイトリスト設定を有効にするための方法として、下記の方法がありますのでそれぞれについて説明していきます。
- サーバコンソールから設定
- Minecraftクライアントから設定
- server.properiesを編集して設定
サーバコンソールから設定
「Minecraft_server」が動作しているサーバのコンソールから、「whitelist on」コマンドを実行することでホワイトリストを有効にする事ができます。
whitelist on
「whitelist on」コマンドを実行
「whitelist on」コマンドを実行すると、「Turned on the whitelist」のメッセージが表示され、ホワイトリストが有効化されたことが分かります。
whitelist on <--コマンドを実行 [10:57:22] [Server thread/INFO]: Turned on the whitelist
「server.properties」の方も自動的に設定変更されます。
$ grep white-list server.properties white-list=true
Minecraftクライアントから設定
オペレータ権限を持ったユーザで「/whitelist on」コマンドを実行すると、ホワイトリストを有効化できます。
/whitelist on コマンド実行
マイクラのゲームクライアントから「/whitelist on」コマンドを実行します。
すると、「ホワイトリストを有効にしました」というメッセージが表示され、ホワイトリストが有効化されます。
こちらの場合も「server.properties」は自動的に変更されます。
server.properties編集
マイクラの設定ファイルである「server.properties」を直接変更することでも、ホワイトリストを有効化することが出来ますが、設定を反映させるために再起動が必要となるため、ちょっと面倒です。
vi server.properties
編集内容
「white-list」の部分を「false」から「true」に変更します。
変更前
white-list=false
変更後
white-list=true
設定反映
「maincraft_server」を再起動することで設定が反映され、ホワイトリストが有効化されます。
動作確認
minecraftのクライアントからサーバに接続してログインして動作確認を行ってください。
初期状態では、ホワイトリストに誰も登録されていないので「You are not whitelisted on this server!」と表示されてログイン出来ません。
サーバ側のログにも「You are not whitelisted on this server!」と表示されます。
[10:19:01 INFO]: UUID of player tamohiko is ad6bb107-d45a-43fb-b0fa-64d91ef48ef3 [10:19:01 INFO]: Disconnecting com.mojang.authlib.GameProfile@76a4cb85[id=ad6bb107-d45a-43fb-b0fa-64d91ef48ef3,name=tamohiko,properties={textures=[com.mojang.authlib.properties.Property@2cb9e0a7]},legacy=false] (/xxx.xxx.xxx.xxx:xxxx): You are not whitelisted on this server!
※IP情報は伏せています
ホワイトリストに登録されていないのにログインできてしまう場合
ログインするユーザにオペレータ権限が設定されているとログイン出来てしまいますので、その際は一旦サーバのコンソールから「deop ユーザ名」コマンドでオペレータ権限を外してから再度ログインしてください。
下記は「tamohiko」ユーザからオペレータ権限を外した際のログとなります。
>deop tamohiko [10:18:56 INFO]: De-opped tamohiko
ホワイトリストへのユーザ追加
ホワイトリストにユーザを追加する方法は下記の3通りがありますので、それぞれの方法について説明していきます。
- サーバコンソールから追加
- Minecraftクライアントから追加
- whitelist.jsonを直接編集
サーバコンソールから追加
「Minecraft_Server」が動作しているコンソールから、ホワイトリストにユーザを追加する際の書式は下記のとおりです。
whitelist add [ユーザ名]
ユーザ追加
ホワイトリストに「tamohiko」というユーザを追加した際のログとなります。
>whitelist add tamohiko [10:32:26 INFO]: Added tamohiko to the whitelist
「whitelist list」コマンドを実行することで、ホワイトリストに登録されているユーザを確認することが出来るので確認してみましょう。
>whitelist list [10:32:32 INFO]: There are 1 (out of 2 seen) whitelisted players: [10:32:32 INFO]: tamohiko
Minecraftクライアントから追加
オペレータ権限を持ったユーザで下記コマンドを実行すると、ホワイトリストにユーザを追加することが出来ます。
/whitelist add [ユーザ名]
ユーザ追加
「tamohiko」ユーザをホワイトリストに追加したところです。
ホワイトリストに追加した旨のメッセージが表示され、ユーザが追加されたことが確認できます。
whitelist.jsonを直接編集
「whitelist.json」を直接編集してユーザを追加する方法は面倒なのでおすすめしませんが、一応手順を説明しておきます。
whitelist.json編集
ホワイトリストの設定は「whitelist.json」ファイルに記述されていて、登録するユーザ毎に「uuid」と「name」の2項目で構成されています。
項目 | 説明 |
---|---|
uuid | minecraftユーザに設定されているユニークなIDとなり、このID番号はMojangが公開しているAPIで確認することが出来る https://api.mojang.com/users/profiles/minecraft/ |
name | minecraftのユーザ名 |
whitelist.json設定例
[ { "uuid": "ad6bb107-d45a-43fb-b0fa-64d91ef48ef3", "name": "tamohiko" } ]
設定反映
「whitelist.json」を編集したあとに、「Minecraft_server」が動作しているコンソール上で「whitelist reload」コマンドを実行することで、設定が反映されて、ユーザが追加されます。
whitelist reload
実行例
「whitelist.json」を編集した後に「whitelist list」コマンドでホワイトリストの設定内容を確認すると、誰もユーザが登録されていなことがわかります。
[11:10:15] [Server thread/INFO]: whitelist list [11:11:21] [Server thread/INFO]: There are 0 (out of 3 seen) whitelisted players:
「whitelist reload」コマンドを実行し、「whitelist.json」の内容を読み込みます。
[11:11:21] [Server thread/INFO]: whitelist reload [11:11:26] [Server thread/INFO]: Reloaded the whitelist
「whitelist list」コマンドで確認すると、ホワイトリストにユーザが登録されたことが分かります。
whitelist list [11:11:35] [Server thread/INFO]: There are 1 (out of 3 seen) whitelisted players: [11:11:35] [Server thread/INFO]: tamohiko
複数ユーザを追加する場合
複数ユーザを追加する場合は「,」で区切って追加します。
[ { "uuid": "xxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "name": "ユーザ名" }, <--「,」で区切ります { "uuid": "ad6bb107-d45a-43fb-b0fa-64d91ef48ef3", "name": "tamohiko" } ]
ユーザの削除
サーバコンソールから削除
サーバコンソールからホワイトリストのユーザを削除する際の書式は下記のとおりです。
whitelist remove [ユーザ名]
下記は「tamohiko」ユーザを削除した際のログとなります。
whitelist remove tamohiko [14:00:57] [Server thread/INFO]: Removed tamohiko from the whitelist
「Removed tamohiko from the whitelist」と表示され、ホワイトリストからユーザが削除されたことが分かります。
Minecraftクライアントから削除
オペレータ権限をもったユーザで下記コマンドを実行することで、ホワイトリストからユーザを削除することが出来ます。
/whitelist remove [ユーザ名]
ユーザの削除
「tamohiko」ユーザをホワイトリストから削除します。
ユーザを削除した旨のメッセージが表示され、ユーザがホワイトリストから削除されたことがわかります。
サーバのログ上にも、誰がどのユーザをホワイトリストからユーザを削除したのかが分かるログが残ります。
[14:14:44] [Server thread/INFO]: [tamohiko: Removed tamohiko from the whitelist]
ホワイトリストの停止
ホワイトリストを停止するための方法として、下記の方法がありますのでそれぞれについて説明していきます。
- サーバコンソールから停止
- Minecraftクライアントから停止
- server.properiesを編集して停止
ホワイトリストの機能を停止すると、誰でもサーバにログインできるようになります。
サーバコンソールから停止
「Minecraft_server」が動作しているコンソールから、下記コマンドを実行することでホワイトリストの機能を停止させることが出来ます。
whitelist off
ホワイトリスト機能停止
「whitelist off」コマンドを実行すると、「Turned off the whitelist」と表示され、ホワイトリスト機能が停止したことがわかります。
whitelist off [10:58:12] [Server thread/INFO]: Turned off the whitelist
「server.properties」も「white-list=false」に自動的に変更されます。
$ grep white-list server.properties white-list=false
Minecraftクライアントから停止
オペレータ権限を持ったユーザで下記コマンドを実行することで、ホワイトリストが無効化されます。
/whitelist off
ホワイトリストの停止
「Minecraft」のクライアントからホワイトリストを停止させます。
ホワイトリストを無効にした旨のメッセージが表示され、ホワイトリストが停止したことがわかります。
server.propertiesを編集して停止
最後に「server.properties」を編集してホワイトリストを停止する方法です。
server.properties編集
「server.properties」の「white-list」項目を「false」に変更し、「Minecraft_Server」を再起動することで設定を反映させることが出来ます。
$ vi server.properties
変更前
white-list=true
変更後
white-list=false
設定反映
「maincraft_server」を再起動することで、設定が反映されます。
whitelistコマンド一覧
whitelistコマンドの一覧です。
コマンド | 内容 |
---|---|
whitelist on | ホワイトリストの有効化 |
whitelist off | ホワイトリストの無効化(機能停止) |
whitelist list | ホワイトリストに登録されているユーザの確認(リストを表示) |
whitelist add ユーザ名 | ホワイトリストにユーザを追加 |
whitelist remove ユーザ名 | ホワイトリストからユーザを削除 |
whitelist reload | ホワイトリストの再読み込み |
コメント