ポートと通信

Minecraft のサーバーは、参加する方の接続を決まったポートで受け付けます。サーバーを守る基本は、インターネットから誰でも接続できるポートを参加に使うものだけにし、管理やデータベースの接続を、許可した相手だけに制限することです。
この資料では、Java 版と統合版のサーバーが使うポート、接続と認証の流れ、プロキシとプラグインのポート、ファイアウォールの考え方を説明します。

設定の名前と既定の値は、2026 年 10 月 25 日時点の Java 版 26.3、統合版の専用サーバー (Bedrock Dedicated Server)1.26.50、minecraft.wiki と、各プロジェクトのドキュメントと既定の設定ファイルによります。

接続できる相手で、ポートを 3 つに分ける

サーバーで動くソフトウェアは、それぞれ別のポートで待ち受けます。ポートごとに、誰からの接続を受け付けるかを決めます。

誰でも接続できるのは、参加に使うポートだけ。
参加する方インターネットのどこからでも
運営スタッフVPN や Cloudflare Zero Trust を通して

サーバー

誰でも接続できる参加に使うポート (Java 版は 25565/TCP)
許可した人だけSSH、管理画面、監視の画面
プライベートな接続だけバックエンドサーバー、データベース、Redis、RCON

Cloudflare Spectrum を使う場合は、参加に使うポートも、Cloudflare の IP アドレスからの接続だけに制限します。

Java 版のサーバーのポート

Java 版のサーバーのポートは、server.properties で決めます。既定の値は次のとおりです。

# server.properties(既定の値)
server-port=25565                     # 参加に使うポート(TCP)
server-ip=                            # 空欄なら、すべてのアドレスで待ち受ける
enable-query=false                    # サーバーの情報の問い合わせ(UDP)
query.port=25565
enable-rcon=false                     # 遠隔でコマンドを実行する RCON(TCP)
rcon.port=25575
rcon.password=
network-compression-threshold=256     # この大きさ(バイト)以上のパケットを圧縮する
  • 参加に使うポート: TCP の 25565 番です。バックエンドサーバー (プロキシの先で、ワールドを動かすサーバー) は、プロキシからだけ接続できるようにします。server-ip は、プロキシと同じマシンなら 127.0.0.1、別のマシンならそのマシンのプライベートなアドレスにし、ファイアウォールでプロキシのアドレスだけを許可します (プロキシサーバー)
  • クエリ: サーバーの一覧のサイトなどが、人数やプレイヤーの名前などの情報を UDP で問い合わせる仕組みです。使わなければ無効のままにします
  • RCON: 外部からコマンドを実行する仕組みです。RCON の通信は暗号化されず、パスワードも読み取られるおそれがあります。minecraft.wiki も、RCON のポートをインターネットに公開するのは危険としています。使う場合は、サーバーの中 (localhost) からだけ接続できるようにし、離れた場所からは SSH や VPN を通します。パスワードが空欄のままだと、有効にしても RCON は起動しません (RCON と遠隔の管理)
  • 圧縮: -1 で圧縮しない、0 ですべてのパケットを圧縮します (通信の帯域とクライアントの快適さ)

ドメインで接続できるようにする (SRV レコード)

Java 版のクライアントは、DNS の SRV レコード (_minecraft._tcp.ドメイン) を読みます。SRV レコードを設定すると、参加する方は、ポートの番号を入れずにドメインだけで接続でき、サーバーは 25565 番以外のポートでも待ち受けられます。統合版は SRV レコードに対応していないため、ポートの番号まで入力する必要があります。

接続と認証の流れ (Java 版)

Java 版のクライアントは、サーバーに接続すると、次の順番で通信します。

  1. ハンドシェイク: 接続の目的 (サーバーの一覧に表示するための問い合わせか、参加か、別のサーバーからの転送か) を伝えます
  2. ステータス: サーバーの一覧に表示する説明 (MOTD)、人数、アイコンを返します。参加しなくても、誰でも取得できます
  3. ログイン: online-mode=true のサーバーは、通信を暗号化し、参加した方が Minecraft を正規に購入したアカウントかを、Mojang の認証のサーバーに確かめます
  4. 設定 (1.20.2 から): リソースパック、データパック、登録するデータなどを送ります
  5. プレイ: ワールドの中の通信です

暗号化と、Mojang での本人の確認

  • サーバーは起動のときに 1024 ビットの RSA の鍵を作ります。クライアントは共通の鍵を作り、その鍵をサーバーの公開鍵で暗号化して送ります。以降の通信は、共通の鍵による AES で暗号化されます
  • クライアントは、Mojang の認証のサーバー (sessionserver.mojang.com) に参加することを伝えます。サーバーは、同じ認証のサーバーに、その方が本当に参加しようとしているかを問い合わせます
  • online-mode=false のサーバーは、Mojang での確認を行いません。ほかの方の名前で参加できるため、バックエンドサーバーのように、プロキシが確認を済ませている場合だけに使います
  • enforce-secure-profile=true(既定) のサーバーは、Mojang が署名した鍵を持つプレイヤーだけを参加させます。チャットに署名が付き、迷惑なチャットを Mojang に通報できます

サーバーから外への通信

サーバーは、参加の接続を受けるだけでなく、外へも通信します。Mojang は、サーバーが通信する宛先の一覧を公開していません。online-mode=true のサーバーは、少なくとも、参加した方を確かめる認証のサーバー (sessionserver.mojang.com) と、チャットの署名を確かめる公開鍵の取得 (api.minecraftservices.com) に接続します。

  • Paper: 起動のときに、新しいビルドがあるかを PaperMC に問い合わせます。プラグインの利用の統計 (bStats) も、既定で送ります。bStats は plugins/bStats/config.yml で止められます
  • プラグイン: 更新の確認、Discord との連携、データベース、Web の地図など、プラグインごとに外への通信があります
  • 外への通信を制限する場合は、使っているソフトウェアとプラグインの通信の宛先を確かめてから、必要なものを許可します。止めすぎると、参加の確認ができなくなります

統合版のポート

統合版の専用サーバー (Bedrock Dedicated Server) は、1.26.50 で、既定の通信の方式が RakNet から NetherNet に変わりました。方式によって、使うポートが異なります。

方式使うポート設定
NetherNet (既定)server-port(既定 19132) の TCP で、接続の準備 (シグナリング) を行い、プレイの通信は UDP で行う。UDP のポートは、既定では OS が選ぶ範囲から使われるtransport=nethernet。UDP のポートの範囲は server-udp-ports で決められる。server-portv6 は使われず、server-port で IPv4 と IPv6 を受ける
RakNet (以前の方式)UDP の 19132 (IPv4) と 19133 (IPv6)transport=raknet、server-port、server-portv6

統合版の通信の方式は、移行の途中にあります。ファイアウォールの設定は方式によって変わるため、導入の前に、最新の公式の情報を確認します。

Java 版のサーバーに、統合版から参加する (Geyser)

Geyser は、統合版の接続を受けて、Java 版のサーバーにつなぎます。2026 年 10 月時点の Geyser の既定は、RakNet の UDP の 19132 番です。RakNet では、Java 版 (TCP) と統合版 (UDP) で同じポートの番号を使えます。NetherNet にも対応し始めていますが、NetherNet の接続の準備は TCP を使うため、Java 版のサーバーと同じポートは使えません (サーバーを分ける構成)。

プロキシとプラグインのポート

プロキシやプラグインも、それぞれポートを開きます。どれも、既定のままでは、すべてのアドレスで待ち受けるものがあります。

ソフトウェア既定のポート接続できる相手
Velocity25565/TCP誰でも。Cloudflare Spectrum を使う場合は Cloudflare の IP アドレスだけ
バックエンドサーバーVelocity の設定の例では 30066〜30068/TCPプロキシだけ
Geyser19132/UDP誰でも
Simple Voice Chat24454/UDP誰でも。参加に使うポートと同じ番号にすると、クエリと重なるため、別の番号を使う
BlueMap8100/TCP地図を公開する場合も、Web サーバーや Cloudflare を前に置く
Dynmap8123/TCP同上
Plan8804/TCP運営スタッフだけ
Pterodactyl Wings8080/TCP (API)、2022/TCP (SFTP)管理画面 (Panel) と、許可した人だけ
minecraft-prometheus-exporter9940/TCP (localhost)Prometheus だけ
UnifiedMetrics9100/TCPPrometheus だけ。node_exporter と同じ番号のため、両方を使うときは変える
MySQL・MariaDB3306/TCPサーバーとの間のプライベートな接続だけ
Redis6379/TCPサーバーとの間のプライベートな接続だけ
RCON25575/TCPサーバーの中 (localhost) だけ
SSH22/TCPVPN や Cloudflare Zero Trust を通した、許可した人だけ

Redis の公式のドキュメントは、Redis は信頼できる環境の中で使う前提の作りで、インターネットから直接接続できるようにするのは良くないとしています。既定の設定では、自分のサーバーの中 (127.0.0.1) だけで待ち受け、保護のモードが有効です (MySQL との連動)。

ファイアウォールの考え方

  • 二重に制限する: ソフトウェアの設定 (待ち受けるアドレスを、同じマシンの中だけで使うなら 127.0.0.1、ほかのマシンから使うならプライベートなアドレスにする) と、ファイアウォールやクラウドのセキュリティグループの両方で、接続できる相手を制限する。PaperMC のドキュメントも、Velocity の情報の受け渡しの仕組みは、ファイアウォールの代わりにはならないとしています
  • 受け付ける接続を決めてから開ける: すべてを拒否する設定から始め、表のポートを、決めた相手にだけ許可する
  • 管理の接続: SSH と管理画面は、VPN、Cloudflare Zero Trust、AWS の Session Manager などを通し、インターネットから誰でも接続できる状態にしない (サーバーへの接続の保護)
  • Cloudflare Spectrum を使う場合: 参加に使うポートも、Cloudflare の IP アドレスからの接続だけに制限する。サーバーの本当の IP アドレスが知られると、Cloudflare を通さずに攻撃されます (Cloudflare Spectrum での保護)
  • 自宅のサーバー: ルーターでポートを開放すると、自宅の回線の IP アドレスが、参加する方に分かります。ルーターの UPnP で、ソフトウェアが自動でポートを開けることもあるため、ルーターの設定を確かめる
  • 定期的に確かめる: 外部から接続できるポートを、許可した環境から確かめ、使っていないポートとルールを外す (安全なマイクラサーバー運営のためのチェックリスト)

LAN に公開する

Java 版で、プレイ中のワールドを「LAN に公開」すると、クライアントがサーバーとして待ち受けます。ポートは既定ではランダムで、1.19.3 から指定できるようになりました (/publish のコマンドでも指定できます)。同じネットワークの中のクライアントには、UDP のマルチキャスト (224.0.2.60:4445) で 1.5 秒ごとに知らせ、サーバーの一覧に表示させます。同じネットワークの中で使う仕組みのため、ルーターでポートを開放して、インターネットから接続できるようにすることはおすすめしません。

参考にした資料

ポートとファイアウォールの見直しは、KEY SELECT に

公開するポートの整理、ファイアウォールとクラウドのセキュリティグループの設定、管理の接続の限定まで、KEY SELECT がお引き受けできます。

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

ご相談・お問い合わせ

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