【WordPress】サイトヘルスで「サイトでループバックリクエストが完了できませんでした」

WordPress本体

【WordPress】サイトヘルスで
「サイトでループバックリクエストが完了できませんでした」

1 問題事象詳細

2025年12月30日、下に示すような環境下の自宅WordPressサーバーにおいてにおいて、
WordPressプラグインのサイトヘルス図1-1に 示すよう2件の致命的な問題を表示
していることに気づきました。

① 「REST APIでエラーが発生しました」
② 「サイトでループバックリクエストが完了できませんでした」

②の問題の詳細エラーは下に示す通りで、
自端末へのHTTPループバックリクエストで接続タイムアウトが発生しています。

cURL error28: Connection timeed out after 10002 milliseconds(http_request_failed)

この場合は、PPPoE接続で、グローバルIPアドレスを自動取得するよう
ルーターに設定した場合です。

ルーターにグローバルIPアドレスを直接指定した場合は、
次のエラーのよう接続が拒否されてしまいます。

curl connect to 203.0.113.1 port 443 from 192.168.10.6 port 47112 failed:

ちなみに、PPPoE接続で自動取得するグローバルIPアドレスと、
ルーターに直接指定するグローバルIPアドレスは全く同じです。

①の問題は、②のHTTPのループバックリクエスト失敗が原因で起こったエラーで
あることがわかっています。

放置しておくと、次のような不具合が発生します。

・ WordPressのcronジョブが一切実行されない
・ WordPressやプラグインの更新通知が来ない
・ WordPressやプラグインの自動更新が行われない
SiteGurd のように、一部正常に機能しないプラグインがある
REST APIによる外部サービスとの連携ができない

参考に次のページをご覧いただければと思います。

wp-cronが動かないとかで、いくつかのプラグインの自動更新ができていない
【wp-cron】自端末のグローバルIPアドレスで、curlやpingの接続ができない

2 原因と対処の方法

2.1 原因

判明日: 2025年12月30日

NATIPマスカレード)を使用してインターネットに接続する場合、
NATの内側にある端末から
同じNATの内側にある端末にNATの外側アドレスを指定して接続することはできません

何もしなければ、1章で述べた通りの結果となります。

このような接続を可能にするには、 「ヘアピンNAT(Hairpin NAT)」の設定を
行わなければなりません。
ヘアピンNATは、「NATループバック(NAT loopback)」とも呼ばれます。

1章の問題は、ヘアピンNAT設定を行えば解消します。

なお、この設定が必要なのは、自前のインターネット接続環境の場合で、
多くの方がWordPress環境を構築されている、共用型のレンタルサーバー下では不要です。

2.2 ヘアピンNATの設定

ヘアピンNAT機能を実現するには、次の2つの方法があります。

① “hosts”ファイルのローカルホスト行に、自分のホスト名(ドメイン名)を追加する
② ルーターにヘアピンNAT設定を行う

2.2.1 “hosts”ファイルのローカルホスト行に、自分のホスト名を追加

/etc/hosts”ファイルのローカルホスト行(IPアドレス127.0.0.1の行)に
DNSで設定した自分のホスト名を追加します。

変更は、ファイルを閉じたら直ちに反映されます。

hostsファイルへ追加した端末だけが、ヘアピンNAT機能が有効になります。
LAN内の他の端末には影響しません。

2.2.2 ルーターにヘアピンNAT設定を行う

ルーターでのヘアピンNATの設定は、LAN内の全端末に反映されます。
外部からのアクセスが1台しかない小規模LANでは、
ルーターでの設定は必要ないと思いますが、参考として設定例を示すことにしました。

本項では、YAMAHAのRTXシリーズでのヘアピンNATの設定例を示します。
GUIは対応していないので、コマンドでの設定となります。

本項での設定例は、次のページから引用しています。
ヘアピン NAT 機能 | YAMAHA RTrro

ここで示すコマンドの機能書式などは、次のページをご覧ください。
YAMAHAルーターシリーズ コマンドリファレンス | YAMAHA RTpro

ここで示す設定例は、図2.2-2に示すネットワーク構成の場合とします。

下に、ヘアピンNATの設定例を示します。

ディスクリプター番号は、既設定値をNAT設定GUI、
またはメンテナンスの“config”でご確認ください。
例で示すような“”ではないはずです。

(1) ルーターのLAN2インターフェースに、固定グローバルIPアドレスを設定します。

(2) ルーターのLAN2インターフェースに、
ヘアピンNAT機能を有効にしたIPマスカレードを適用します。

(3) NATディスクリプター番号1番でヘアピンNAT 機能を有効にします。

(4) NATディスクリプタ―番号1番の外側アドレスに、
固定グローバル IPアドレスを設定します。

(5) Webサーバーをインターネットに公開するための設定です。

既に自ネットワークのグローバルIPアドレス、およびIPマスカレードの設定が済んでいる
なら、ヘアピンNAT機能を追加するには、(3)、(4)のコマンドを実行するだけとなります。

以上

本記事の元となっているWordで作成したPDFを
ページ最後に貼り付けました。

少しでも役に立てていただければ、うれしく思います。

このPDFファイルは、自由に配布されてもかまいません。
ただし、再配布の際には、
入手元著者名は明らかにしてください

なお、上のPDFファイルの内容、また本文中の記述に、
誤字や脱字、誤った内容の記述など見つかりましたら、
下に示すフォームでご連絡いただければ幸いです。

お問い合わせ

 

コメント

Add A Knowledge Base Question !

You will receive an email when your question will be answered.

+ = Verify Human or Spambot ?

タイトルとURLをコピーしました