対象は Java 版のサーバーです。設定の名前と既定の値は、2026 年 10 月 25 日時点の minecraft.wiki によります。
RCON の仕組み
RCON (Remote Console) は、TCP で接続し、パスワードで認証したあと、コマンドを送って結果を受け取る仕組みです。Java 版 Beta 1.9 から使えます。Valve のゲームのサーバーで使われている Source RCON のプロトコルを実装したもので、多くのツールやライブラリが対応しています。
パスワードも
- 送ったコマンドは、サーバーのコンソールで入力したのと同じように実行されます。ワールドの変更、オペレーターの付与、サーバーの停止まで、すべてのコマンドを実行できます
- 結果が長いと、4096 バイトずつ複数のパケットに分けて返されます。最後のパケットを確実に見分ける方法はないため、ツールによって結果の受け取り方が異なります
- 知らないコマンドを送っても、エラーとして区別できないことがあります
設定
RCON は既定では無効です。server.properties で有効にします。
# server.properties
enable-rcon=true # 既定は false
rcon.port=25575 # 既定は 25575
rcon.password=長いランダムな文字列 # 空欄のままだと、有効にしても起動しない
broadcast-rcon-to-ops=false # 既定は true。RCON の実行の結果を、参加中のオペレーターに表示する
broadcast-rcon-to-ops が true のままだと、自動化のスクリプトが送るコマンドの結果が、参加中のオペレーターのチャットに流れ続けます。
主な使い道
| 使い道 | 内容 |
|---|---|
| バックアップ | バックアップの前に save-off と save-all flush を送り、終わったら save-on を送る (バックアップの取り方) |
| 定期の再起動 | 再起動の前に、参加中の方へ予告のメッセージを送ってから、stop を送る |
| Discord のボット | 運営スタッフが Discord からホワイトリストの追加などを行う |
| 企画の進行 | 決まった時間に、天気や時間、ゲームルールを変えるコマンドを送る |
RCON のツールには、C で書かれた mcrcon や、Go で書かれた rcon-cli があります。rcon-cli は、Docker で Minecraft のサーバーを動かすイメージ (itzg/minecraft-server) にも含まれています。minecraft.wiki には、ほかの言語のライブラリも一覧になっています。
安全に使うための注意
minecraft.wiki は、RCON は暗号化されず、通信の途中で盗み見や書き換えを受けるおそれがあるため、RCON のポートをインターネットに公開するのは危険だとしています。RCON のパスワードが知られると、サーバーのすべてを操作されます。
- 使わないなら無効のままにする
- インターネットから誰でも接続できる状態にしない: RCON のポートは、ファイアウォールで、サーバーの中 (localhost) からの接続だけに制限する。離れた場所から使う場合は、SSH のトンネルや VPN を通す (ポートと通信)
- 長いランダムなパスワードにし、ほかのサービスと使い回さない。運営スタッフが抜けたときや、漏れたおそれがあるときは変える
- パスワードをスクリプトに直接書かない: 環境変数や、権限を絞ったファイルから読み込み、Git や共有のフォルダに置かない
- 使う人とツールを限る: Discord のボットなどから使う場合は、ボットが送れるコマンドを、決めた操作だけに絞る。チャットの文字を、そのままコマンドとして送らない (自作の Mod とプラグインの安全)
- 記録を残す: RCON を使うツールの側で、いつ、誰が、何を送ったかを記録する (ログの保管と分析)
新しい管理のプロトコル
1.21.9 から、Minecraft Server Management Protocol という、新しい管理の仕組みが加わりました。WebSocket と JSON-RPC を使い、決まった操作を、プログラムから扱いやすい形で行えます (管理画面とダッシュボード)。
| 項目 | RCON | Server Management Protocol |
|---|---|---|
| 通信の暗号化 | なし | TLS (既定で有効) |
| 認証 | パスワード | 40 文字の秘密の値 (空欄なら起動のときに自動で作られる) |
| できること | すべてのコマンド | ホワイトリスト、BAN、オペレーター、プレイヤーの一覧、保存、停止、サーバーの設定、ゲームルールなど、決まった操作 |
| 変化の通知 | なし | 参加と退出、BAN、ホワイトリストの変更などを、サーバーから知らせる |
| 待ち受け | 25575 番 (既定) | localhost の、起動ごとにランダムなポート (既定) |
| 使えるバージョン | Beta 1.9 から | 1.21.9 から |
新しいプロトコルは、できる操作が決まっているため、RCON よりも渡す権限を絞れます。ただし、まだ開発の途中で、バージョンごとに仕様が変わっています。ツールが対応しているか、導入の前に、最新の公式の情報を確認します。新しいプロトコルも、強い権限を持つため、インターネットから誰でも接続できる状態にはしません。
参考にした資料
- RCON (Minecraft Wiki)
- Server.properties (Minecraft Wiki)
- Minecraft Server Management Protocol (Minecraft Wiki)
- Source RCON Protocol (Valve Developer Community)
- mcrcon (GitHub)
- rcon-cli (GitHub)
遠隔の管理と自動化は、KEY SELECT に
RCON や管理のプロトコルを使ったバックアップと再起動の自動化、Discord のボットとの連携、接続の制限と秘密の値の管理まで、KEY SELECT がお引き受けできます。
- 記事や技術資料の内容についてのご質問とサポートは、保守・サポートのご契約、またはスポットでのご契約をいただいたうえでお受けしています。無償でのサポートは行っておりません。
- 記事や技術資料の内容は、公開の時点の情報にもとづいて作成しています。内容の正確性、完全性、最新性を保証するものではなく、内容にもとづいて行った作業の結果について、弊社は責任を負いかねます。設定や変更は、ご自身の責任で、検証用の環境で確かめてから行ってください。
- 記事や技術資料の内容について、ご指摘や誤りにお気づきの点がありましたら、その他のお問い合わせからお知らせください。
- 技術資料の内容は、引用元として資料の名前と URL を明記していただければ、ご自身の動画や資料としてご利用いただけます。全文の Web サイトでの引用はご遠慮ください。