2026年8月7日

2026年8月7日

ポート6379(Redis)とポート443(HTTPS)の使い分けと安全な開け方

ポート6379 は Redis の既定ポートで、サーバー内部や同じプライベートネットワーク内だけで使うものです。ポート443 は HTTPS の標準ポートで、インターネットに公開して訪問者を受け入れるためのものです。この記事では、2つのポートの役割の違いと、WordPress のオブジェクトキャッシュに Redis を使う構成で「どちらを、どこまで開けるか」を決め、設定し、外から確認するまでの手順を説明します。

2つのポートの役割はまったく違う

まず整理しておくと、6379 と 443 は「どちらかを選ぶ」関係ではありません。役割が違うので、同じサーバーで両方が動いているのが普通です。

ポート443(HTTPS) は、ブラウザや API クライアントが Web サーバー(Nginx・Apache)に接続する入口です。TLS で暗号化され、証明書でサーバーの正当性を示します。不特定多数からの接続を前提に設計されているので、インターネットに公開してかまいません。

ポート6379(Redis) は、PHP(WordPress)が Redis サーバーにデータを読み書きするための接続口です。Redis は高速さを優先した設計で、既定では暗号化なし、認証も設定しなければ無しで動きます。Redis 自身のドキュメントも、信頼できるクライアントだけがアクセスできる環境で動かすことを前提にしています。つまり、インターネットに公開するポートではありません。

WordPress サイトでの典型的な流れは次のとおりです。

  1. 訪問者のブラウザが 443 番で Nginx に接続する。
  2. Nginx が PHP-FPM に処理を渡し、WordPress が動く。
  3. WordPress が 127.0.0.1:6379(または内部 IP の 6379 番)の Redis にキャッシュを問い合わせる。

外から見えるのは 1 の 443 番だけで、3 の 6379 番はサーバーの内側で完結させる、というのが基本の使い分けです。

よくある誤解:「443 で Redis を動かせば安全」ではない

ファイアウォールで 6379 番が通らないからといって、Redis を 443 番で待ち受けさせる、あるいは 443 番を Redis に転送するという相談を見かけます。これはおすすめできません。ポート番号を変えても、通信内容が暗号化されたり認証が強くなったりするわけではなく、ポートスキャンで Redis が動いていることはすぐに分かります。さらに本来の HTTPS と衝突します。

別のネットワークにある Redis へ接続したい場合は、ポート番号ではなく次の方法で経路を守ります。

  • 同じ VPC やプライベートネットワーク内に置き、内部 IP で接続する。
  • Redis の TLS 機能(Redis 6 以降)を有効にする。TLS 用のポートは tls-port で別に指定し、慣例的に 6380 番などが使われますが、番号に決まりはありません。
  • VPN や SSH トンネルを経由させる。
  • マネージドサービス(Amazon ElastiCache など)を使う場合は、そのサービスの暗号化・認証機能とネットワーク制限を使う。機能や設定名はサービスごとに異なり、変わることもあるため、提供元のドキュメントで確認してください(2026年10月現在)。

手順1:いまどのポートで何が待ち受けているか確認する

設定を変える前に、現状を確認します。

sudo ss -tlnp | grep -E ':(6379|443)\b'

出力の左から4列目あたり(Local Address:Port)を見ます。

  • 127.0.0.1:6379 や [::1]:6379 → 自サーバー内からのみ接続可能。単体サーバー構成ならこれが理想です。
  • 10.0.0.5:6379 のような内部 IP → 同じネットワーク内から接続可能。Web サーバーと Redis を分けた構成で使います。
  • 0.0.0.0:6379 や *:6379 → すべてのインターフェースで待ち受けています。ファイアウォール次第で外部から届くので、すぐに見直しが必要です。
  • 0.0.0.0:443 → Web サーバーが HTTPS を公開しています。これは正常です。

手順2:Redis を内側に閉じる(redis.conf)

Redis の設定ファイル(多くのディストリビューションで /etc/redis/redis.conf)を編集します。編集前にコピーを取っておきます。

# 単体サーバー構成:ローカルのみ
bind 127.0.0.1 -::1
protected-mode yes
port 6379

# 認証(Redis 6 以降は ACL も使えます)
requirepass your-strong-redis-password

bind で待ち受けるアドレスを限定するのが第一の防御です。Web サーバーと Redis を別のマシンに分けている場合は、bind 127.0.0.1 10.0.0.5 のように Redis サーバー自身の内部 IP を追加します。

protected-mode yes は、bind やパスワードが設定されていないときに外部からの接続を拒否する安全装置です。無効にしないでください。

パスワード(requirepass)は推測されにくい長い文字列にします。上の値はダミーです。Redis 6 以降では ACL でユーザーごとに権限を分けることもできます。

変更したら再起動し、もう一度 ss で待ち受けアドレスを確認します。

sudo systemctl restart redis-server   # サービス名は環境により redis など
redis-cli -a 'your-strong-redis-password' ping

PONG が返れば接続できています。なお、-a でパスワードを渡すとシェルの履歴に残るため、本番では環境変数 REDISCLI_AUTH を使う方法もあります。

手順3:ファイアウォールで 443 は公開、6379 は限定する

待ち受けアドレスの制限に加えて、ファイアウォールでも二重に守ります。ufw の例です。

# HTTPS は公開
sudo ufw allow 443/tcp

# Redis は Web サーバーの内部 IP からのみ(分離構成の場合)
sudo ufw allow from 10.0.0.11 to any port 6379 proto tcp

sudo ufw status numbered

単体サーバー構成なら、6379 番の許可ルールは不要です。ローカル接続はファイアウォールの対象外だからです。

クラウドを使っている場合は、OS のファイアウォールとは別にセキュリティグループ(または同等の仕組み)があります。こちらでも 6379 番は Web サーバーのグループからのみ、443 番は全体に、と設定します。

手順4:Docker で Redis を動かすときの落とし穴

Docker で -p 6379:6379 のようにポートを公開すると、Docker が iptables に直接ルールを追加するため、ufw で拒否していても外部から届いてしまうことがあります。これは Docker の公式ドキュメントでも注意されている挙動です。

services:
  redis:
    image: redis:7
    ports:
      - "127.0.0.1:6379:6379"   # ホストのローカルにだけ公開

WordPress のコンテナと同じ Docker ネットワークに置くなら、ports を書かずにサービス名(例:redis)で接続するのが最も安全です。

手順5:WordPress から Redis に接続する

WordPress でオブジェクトキャッシュに Redis を使うには、Redis Object Cache プラグインがよく使われます。接続先は wp-config.php に定数で書きます。

define( 'WP_REDIS_HOST', '127.0.0.1' );
define( 'WP_REDIS_PORT', 6379 );
define( 'WP_REDIS_PASSWORD', 'your-strong-redis-password' );

TLS 接続や Unix ソケット接続にも対応していますが、使える定数や指定方法はプラグインのバージョンで変わることがあるため、プラグインの説明ページで確認してから設定してください。Redis サーバー自体を同じマシンに置くなら、TCP の代わりに Unix ソケットで接続すると、ネットワークに一切ポートを開けずに済みます。

手順6:外部から到達できないことを確認する

最後に、自分が管理するサーバーに対して、別のネットワーク(自宅回線や別の VPS など)から確認します。他人のサーバーへのスキャンは行わないでください。

nc -vz -w 3 203.0.113.10 6379   # 失敗(タイムアウトまたは拒否)するのが正しい
nc -vz -w 3 203.0.113.10 443    # 成功するのが正しい

6379 番に接続できてしまう場合は、bind・ファイアウォール・セキュリティグループ・Docker のポート公開のどこかに穴があります。手順1から順に見直してください。

まとめ

  • ポート443 はインターネットに公開する HTTPS の入口、ポート6379 はサーバー内側で使う Redis の接続口で、役割が違います。
  • Redis を 443 番に移しても安全にはなりません。別ネットワークから使うなら、内部ネットワーク・TLS・VPN で経路を守ります。
  • bind・protected-mode・パスワードで Redis を閉じ、ファイアウォールとセキュリティグループで二重に制限します。
  • Docker のポート公開は ufw をすり抜けることがあるので、127.0.0.1 に限定するか公開しない構成にします。
  • 設定後は外部から 6379 番に届かず、443 番には届くことを確認します。

お気軽にご相談ください

お見積りへ お問い合わせへ
▲