【解決】 Error 522: Connection Timed Out の解決方法と原因 | Cloudflare トラブルシューティング

Cloudflareをご利用中に「Error 522: Connection Timed Out」というエラーに遭遇し、ご不安を感じているWindowsユーザーの皆様、ご安心ください。
このエラーは、Cloudflareがあなたのオリジンサーバー(実際のウェブサイトがホストされているサーバー)に接続できない場合に発生するもので、よくある問題の一つです。
決してあなたのサイトが完全にダウンしているわけではなく、適切な手順を踏めば解決できます。
この記事では、Windowsユーザーの皆様がこのエラーを迅速に解決し、恒久的な対策を講じるためのステップを、PowerShellやCmdの具体的なコマンドを交えてご紹介します。

1. Error 522: Connection Timed Out とは?(概要と緊急度)

「Error 522: Connection Timed Out」は、Cloudflareがあなたのウェブサイトへのリクエストを受け取った後、オリジンサーバーへ接続を試みたものの、規定の時間内に応答が得られなかった場合に表示されるエラーです。
具体的には、CloudflareのネットワークからオリジンサーバーへのTCP接続がタイムアウトしたことを意味します。
これは、Cloudflareとオリジンサーバー間の通信に何らかの問題があることを示唆しており、ウェブサイト訪問者にとってはアクセスできない状態であるため、緊急度の高いエラーと言えます。

  • 発生場所: Cloudflareのシステム。
  • 原因: Cloudflareがオリジンサーバーに接続できない(サーバーがダウン、過負荷、ファイアウォール、ネットワーク問題など)。
  • ユーザー側からの視点: Webサイトが表示されない。

2. 【最速】今すぐ試すべき解決策

まずは落ち着いて、最も早く問題の切り分けと、一時的な解決を試みましょう。
以下の手順で、問題がCloudflare自体にあるのか、それともオリジンサーバー側にあるのかを特定できます。

解決策1:Cloudflareを一時停止して問題の切り分けを行う

この方法が、Cloudflareユーザーにとって最も手軽な切り分け方法です。Cloudflareのプロキシ機能を一時的に無効化し、直接オリジンサーバーへアクセスできるか確認します。

  1. Cloudflareダッシュボードにログインします。
    お使いのウェブブラウザからCloudflareアカウントにアクセスしてください。
  2. 対象のドメインを選択します。
  3. 「概要(Overview)」タブに移動します。
  4. 画面右下の「詳細アクション(Advanced Actions)」セクションを探し、「Cloudflareを一時停止(Pause Cloudflare on Site)」をクリックします。
    確認のポップアップが表示されたら、続行を選択してください。
  5. ウェブサイトに再度アクセスしてみます。
    もしこれでサイトが表示される場合、問題はCloudflareの設定か、Cloudflareとオリジンサーバー間の通信経路にある可能性が高いです。
    サイトがまだ表示されない、または異なるエラーが表示される場合、問題はオリジンサーバー自体にある可能性が高いでしょう。
    問題切り分け後、必ずCloudflareを再度有効にしてください。

補足:Windowsからのオリジンサーバーへの疎通確認

Cloudflareを一時停止してもサイトにアクセスできない場合、またはCloudflareの一時停止を躊躇する場合、Windowsからオリジンサーバーへの直接の疎通確認も有効です。
オリジンサーバーのIPアドレス(Cloudflareを介さない、生のサーバーIP)が分かっている場合に試してください。


# コマンドプロンプトまたはPowerShellで実行

# オリジンサーバーへの基本的な疎通確認([Your_Origin_Server_IP]を実際のIPに置き換えてください)
ping [Your_Origin_Server_IP]

# ネットワーク経路の確認(必要に応じて実行)
tracert [Your_Origin_Server_IP]
    

pingコマンドが失敗したり、tracertで途中の経路で停止したりする場合、オリジンサーバーがダウンしているか、ネットワーク接続に問題がある可能性が高いです。

3. Error 522: Connection Timed Out が発生する主要な原因(複数)

「Error 522」は、Cloudflareがオリジンサーバーに接続できないことに起因するため、その原因は多岐にわたります。
ここでは主な原因をリストアップします。

  • オリジンサーバーがダウンしている、または過負荷状態にある:サーバー自体が停止している、再起動中である、または大量のトラフィックや処理によってCPU、メモリ、ネットワークリソースが枯渇し、Cloudflareからの新しい接続を受け付けられない状態です。
  • オリジンサーバーのファイアウォールがCloudflareのIPアドレスをブロックしている:サーバーに設定されたファイアウォール(Windows Defender Firewallなど)やネットワーク機器のファイアウォールが、CloudflareのIPアドレス範囲からの接続を誤って拒否している可能性があります。
  • ネットワーク設定の問題:オリジンサーバー側のネットワーク設定(ルーター、ロードバランサーなど)が正しく構成されていない、または変更された可能性があります。
  • IPアドレスが変更された:オリジンサーバーのIPアドレスが変更されたにも関わらず、CloudflareのDNS設定が更新されていない場合、古いIPアドレスに接続を試みてタイムアウトします。
  • Keepalive設定の問題:ウェブサーバー(IISなど)のHTTP Keepaliveタイムアウトが短すぎる場合、Cloudflareが接続を再利用しようとした際に接続がすでに閉じられていて、新しい接続を確立するのに時間がかかりタイムアウトする可能性があります。

4. Cloudflareで恒久的に再発を防ぐには

Error 522の再発を防ぐためには、オリジンサーバーの状態を常に健全に保ち、Cloudflareとの間の通信経路を最適化することが重要です。
Windowsサーバーを運用されている方向けの具体的な対策を含めて解説します。

4.1. オリジンサーバーの監視とリソースの最適化

  • サーバー稼働状況の確認:
    定期的にサーバーが稼働しているか、CPU、メモリ、ディスクI/O、ネットワークなどのリソース使用率を監視しましょう。
    Windows Serverの場合、タスクマネージャーやパフォーマンスモニターを使用してリアルタイムで確認できます。
    長期的な監視には、ZabbixやNagiosといった監視ツール、またはAzure Monitorなどのクラウド監視サービスを利用すると良いでしょう。
  • サーバーログの確認:
    ウェブサーバー(IISなど)やシステムログを定期的に確認し、エラーや警告がないかチェックします。
    予期せぬシャットダウンやサービス停止の兆候を早期に発見できます。
  • リソースの増強:
    サーバーの負荷が高い状態が続く場合は、CPU、メモリ、帯域幅などのリソース増強を検討してください。

4.2. ファイアウォール設定の見直し(Windows Server向け)

オリジンサーバー上のファイアウォールがCloudflareのIPアドレスを誤ってブロックしていないか確認し、必要であれば許可設定を追加します。
Cloudflareは公式にIPアドレスのリストを公開していますので、これを参照してホワイトリストに追加してください。
(Cloudflare IP Ranges: https://www.cloudflare.com/ips/


# コマンドプロンプトまたはPowerShellで実行

# 既存のファイアウォールルールを確認(詳細なルール名が分からない場合)
# netsh advfirewall firewall show rule name=all

# CloudflareのIPアドレス範囲からのHTTP/HTTPS接続を許可するルールを追加する例
# 必要に応じてポート番号とIPアドレス範囲を調整してください。

# HTTP (TCP 80) の許可
netsh advfirewall firewall add rule name="Allow Cloudflare HTTP" dir=in action=allow ^
    protocol=TCP localport=80 remoteip=103.21.244.0/22,103.22.200.0/22,103.31.4.0/22,... ^
    description="Allow inbound HTTP traffic from Cloudflare IP ranges"

# HTTPS (TCP 443) の許可
netsh advfirewall firewall add rule name="Allow Cloudflare HTTPS" dir=in action=allow ^
    protocol=TCP localport=443 remoteip=103.21.244.0/22,103.22.200.0/22,103.31.4.0/22,... ^
    description="Allow inbound HTTPS traffic from Cloudflare IP ranges"

# 注: remoteipには、Cloudflareが公開しているすべてのIPアドレス範囲をカンマ区切りで列挙してください。
# この例は一部のみです。必ず最新のIPリストを確認してください。
    

4.3. CloudflareのDNS設定とオリジンIPアドレスの確認

  • DNSレコードの確認:
    CloudflareのDNS設定で、ウェブサイトのAレコードまたはCNAMEレコードが正しいオリジンサーバーのIPアドレスまたはホスト名に解決されているか確認します。
    もしオリジンサーバーのIPアドレスが変更された場合は、CloudflareのDNS設定も更新が必要です。
  • オリジンサーバーIPの固定:
    可能な限り、オリジンサーバーには固定IPアドレスを使用し、予期せぬIP変更を避けるようにしましょう。

4.4. ウェブサーバーのKeepaliveタイムアウト設定

HTTP Keepaliveは、複数のリクエストを同じTCP接続で処理することでパフォーマンスを向上させます。
しかし、ウェブサーバーのKeepaliveタイムアウトが短すぎると、Cloudflareが再利用しようとした接続がすでに閉じられており、新しい接続の確立に時間がかかりタイムアウトする可能性があります。

  • IISの場合:
    1. IISマネージャーを開きます。
    2. 対象のサイトを選択し、「HTTP応答ヘッダー」をダブルクリックします。
    3. 右側の「共通ヘッダーを設定」をクリックします。
    4. 「Keep-aliveを有効にする」にチェックが入っていることを確認し、通常はデフォルト設定(120秒など)で問題ありませんが、Cloudflareの推奨値やサーバーの負荷状況に応じて調整を検討してください。
  • その他:
    一般的に、ウェブサーバーのKeepaliveタイムアウトはCloudflareのタイムアウトよりも長めに設定することが推奨されます。

これらの対策を講じることで、「Error 522: Connection Timed Out」の発生を最小限に抑え、安定したウェブサイト運営が可能になります。
焦らず、一つずつ確認していきましょう。