エラーコード520とは?どう修正するか?
デジタルオフィス作業や科学的インターネットアクセスの過程で、フォワードプロキシを通じて特定のウェブサイトにアクセスすることは一般的です。しかし、Enterキーを押すと、冷たいエラー520: ウェブサーバーが不明なエラーを返しましたに直面することが多く、これは通常、プロキシIPとターゲットウェブサイト間の通信に異常があることを意味します。
直接アクセス中に遭遇する520エラーとは異なり、プロキシを使用する際のこのエラーは、通常、リクエストのアイデンティティや接続特性の不一致に関連しています。

エラーコード520とは?
エラーコード520は通常、Cloudflareを使用しているウェブサイトに表示され、その公式定義は次のとおりです:
ウェブサーバーが不明なエラーを返しました
520はCloudflareによるカスタムエラーコードであり、IANA標準HTTPステータスコードには存在しないことに注意することが重要です。これは、エラーが主にCloudflareとオリジンサーバー間の通信異常を示すために使用され、従来のHTTPプロトコルエラーではないことを意味します。
🧠 簡単な理解
Cloudflareはあなたのリクエストを正常に受信しましたが、オリジンサーバーからデータをリクエストする際、サーバーが異常または無効な応答を返しました。
なぜプロキシを使用するとエラー520が発生するのか?
プロキシシナリオでは、リクエストチェーンは次のようになります:あなた(クライアント) <-> フォワードプロキシ <-> ターゲットサイト リバースプロキシ(Cloudflareなど) <-> ターゲットオリジンサーバー.
直接接続と比較して、「中間リンク」が追加されているため、異常が発生しやすくなります。
1. 応答ヘッダーの過負荷と改ざん
一部のフォワードプロキシは、匿名化を達成するためにHTTPリクエストヘッダー(Via、X-Forwarded-Forなど)を変更、削除、または追加します。注入された情報がリクエストヘッダーをターゲットサーバーの128KB制限を超えると(特にCloudflareの場合)、Cloudflareのリクエスト解析異常を引き起こし、間接的に520エラーを引き起こす可能性があります。
2. 接続再利用(キープアライブ)による競合
プロキシサーバーは通常、効率のためにターゲットサーバーとの長い接続を維持します。プロキシサーバーがターゲットサーバーによって一方的に閉じられた接続を再利用しようとしたり、伝送中に接続が中断された場合、「不明な応答」が返されます。簡単に言えば、接続異常(接続の中断や再利用の失敗など)が不完全な応答を引き起こし、520エラーを引き起こす可能性があります。
3. セキュリティポリシーの「ソフトインターセプト」
多くの大規模なウェブサイトはCloudflareを使用して保護しています。リクエストが既知のプロキシIPプールから来ていることを特定すると、直接禁止することはなく(403を報告)、複雑なCAPTCHAや非標準のチャレンジで応答することがあります。プロキシプログラムがこれらのチャレンジに対処できない場合、520エラーとして誤解されることがあります。
4. HTTP/2またはプロトコル交渉の異常
場合によっては、オリジンサーバーがHTTP/2をサポートすると主張しているが、適切に構成されていないか、処理異常が発生している場合、Cloudflareが応答を正しく解析できず、520エラーを返すことがあります。プロキシやトンネリング環境では、TLS/ALPN交渉(HTTP/2を有効にするかどうかなど)も最終的な接続結果に影響を与える可能性があります。
コアソリューション:プロキシ側から始める
プロキシなしでアクセスが正常で、プロキシを使用するとエラーが発生することが確認できた場合は、次の手順に従ってください:
1. プロキシプロトコルまたは暗号化方式を変更する
異なるプロトコル(Shadowsocks、V2Ray、Trojan、HTTP/HTTPSプロキシなど)は、パケットを異なる方法で処理します。
暗号化強度を減少させることを試みる: 一部の複雑な暗号化アルゴリズムは、パケット解析に遅延を引き起こす可能性があります。
トランスポートプロトコルを切り替える: UDP転送を使用している場合は、TCPに切り替えてみてください。逆も同様です。TCPハンドシェイクメカニズムは、520のような不安定な接続状況を処理するのに有利です。
2. プロキシプラグインの「リクエストヘッダーの変更」機能を無効にする
ブラウザプラグインプロキシを使用している場合は、User-Agentやその他のヘッダーを自動的に注入する設定があるかどうかを確認してください。
クリーンテスト: すべてのヘッダー変更拡張機能を無効にし、コアプロキシ機能のみを保持してみてください。
クライアント(ブラウザ)側の補助修正
1. 特定のサイトのHSTSとキャッシュを強制的にクリアする
ブラウザは、非プロキシ状態のサイトの接続属性を記憶し、それをプロキシ状態で適用しようとするため、競合が発生することがあります。
Chromeのアドレスバーにchrome://net-internals/#hstsと入力します。
「ドメインセキュリティポリシーの削除」で、ターゲットドメイン名を入力して削除します。
このウェブサイトのクッキーを徹底的にクリアして、プロキシが期限切れのセッション情報を持ち込むのを防ぎ、ヘッダーが大きすぎる原因となることを防ぎます。
2. DNS解決スキームを切り替える
フォワードプロキシは、DNSリークや解決の問題を伴うことがよくあります。
リモートDNSを有効にする: DNS解決がプロキシサーバー側で完了するようにし、ローカルでIPを解決してからプロキシに送信しないようにします。
DoHを試す: ブラウザ設定で「安全なDNSを使用する」(DNS over HTTPS)を有効にし、GoogleまたはCloudflareのパブリックDNSを選択します。
連絡先 プロキシサービスプロバイダー またはIPを変更する
上記の技術的調整が効果がない場合、問題はあなたの手の届かないところにある可能性があります:
IP品質の問題: ターゲットウェブサイト(リバースプロキシ側)がこのプロキシノードのIPをブラックリストに登録している可能性があります。これは完全な禁止ではなく、ボットを妨害するために非標準のパケットを返し、520エラーを引き起こします。
対策: 別の地域またはオペレーターのプロキシIPに変更します。
まとめ
エラーコード520の本質は、中間リンクにおける通信異常です。Cloudflareを使用しているウェブサイトにとって、これはオリジンサーバーが正常に解析できない応答を返したことを意味します。
プロキシ環境では、この問題はさらに悪化します。リクエストパスにフォワードプロキシリンクが追加されるため、リクエストヘッダーの変更、不安定な接続、またはIP信頼の問題が異常な応答を引き起こし、520エラーを引き起こす可能性があります。




