RCON と遠隔の管理

RCON は、Minecraft のサーバーに、外部からコマンドを送る仕組みです。バックアップの自動化や、Discord のボットからの操作に使われます。
一方で、RCON の通信は暗号化されず、サーバーのすべてのコマンドを実行できます。この資料では、RCON の仕組みと使い道、安全に使うための注意、新しい管理のプロトコルとの違いを説明します。

対象は Java 版のサーバーです。設定の名前と既定の値は、2026 年 10 月 25 日時点の minecraft.wiki によります。

RCON の仕組み

RCON (Remote Console) は、TCP で接続し、パスワードで認証したあと、コマンドを送って結果を受け取る仕組みです。Java 版 Beta 1.9 から使えます。Valve のゲームのサーバーで使われている Source RCON のプロトコルを実装したもので、多くのツールやライブラリが対応しています。

RCON は、パスワードで認証し、コマンドを送って、結果を受け取る。
RCON のツールスクリプト、Discord のボット、管理画面
1. ログインパスワードを送る
2. コマンド例: save-all flush
3. 結果コマンドの出力を返す
Minecraft のサーバー既定のポートは 25575/TCP

パスワードもコマンドも、暗号化されずに送られます。

  • 送ったコマンドは、サーバーのコンソールで入力したのと同じように実行されます。ワールドの変更、オペレーターの付与、サーバーの停止まで、すべてのコマンドを実行できます
  • 結果が長いと、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 を使い、決まった操作を、プログラムから扱いやすい形で行えます (管理画面とダッシュボード)。

項目RCONServer Management Protocol
通信の暗号化なしTLS (既定で有効)
認証パスワード40 文字の秘密の値 (空欄なら起動のときに自動で作られる)
できることすべてのコマンドホワイトリスト、BAN、オペレーター、プレイヤーの一覧、保存、停止、サーバーの設定、ゲームルールなど、決まった操作
変化の通知なし参加と退出、BAN、ホワイトリストの変更などを、サーバーから知らせる
待ち受け25575 番 (既定)localhost の、起動ごとにランダムなポート (既定)
使えるバージョンBeta 1.9 から1.21.9 から

新しいプロトコルは、できる操作が決まっているため、RCON よりも渡す権限を絞れます。ただし、まだ開発の途中で、バージョンごとに仕様が変わっています。ツールが対応しているか、導入の前に、最新の公式の情報を確認します。新しいプロトコルも、強い権限を持つため、インターネットから誰でも接続できる状態にはしません。

参考にした資料

遠隔の管理と自動化は、KEY SELECT に

RCON や管理のプロトコルを使ったバックアップと再起動の自動化、Discord のボットとの連携、接続の制限と秘密の値の管理まで、KEY SELECT がお引き受けできます。

  • 記事や技術資料の内容についてのご質問とサポートは、保守・サポートのご契約、またはスポットでのご契約をいただいたうえでお受けしています。無償でのサポートは行っておりません。
  • 記事や技術資料の内容は、公開の時点の情報にもとづいて作成しています。内容の正確性、完全性、最新性を保証するものではなく、内容にもとづいて行った作業の結果について、弊社は責任を負いかねます。設定や変更は、ご自身の責任で、検証用の環境で確かめてから行ってください。
  • 記事や技術資料の内容について、ご指摘や誤りにお気づきの点がありましたら、その他のお問い合わせからお知らせください。
  • 技術資料の内容は、引用元として資料の名前と URL を明記していただければ、ご自身の動画や資料としてご利用いただけます。全文の Web サイトでの引用はご遠慮ください。

ご相談・お問い合わせ

内容が固まっていない段階からご相談いただけます。各分野のプロフェッショナルがご対応いたします。ご相談・お見積もりは無料です。