502 不正なゲートウェイ: IPSec トンネルの net/http GET が失敗しました

PHPz
リリース: 2024-02-09 13:09:25
転載
671 人が閲覧しました

502 错误网关:IPSec 隧道的 net/http GET 失败

php Editor Zimo は、インターネットを使用しているときに、502 Bad Gateway プロンプトに遭遇することがあります。このエラー メッセージは、ゲートウェイ サーバーとアップストリーム サーバーの間に通信の問題があり、その結果リクエストが完了しないことを意味します。考えられる原因の 1 つは、IPSec トンネルの net/http GET 障害です。このエラーはわかりにくいかもしれませんが、その原因と修正方法を理解することで、問題をすぐに解決し、引き続きインターネットの利便性を享受できます。

質問の内容

Windows 上のipsecトンネル(vpn)経由でnet/httpを使用してリモートのgetリクエストを発行します。 package の場合、get リクエストは失敗し、応答コードは 502 badgateway でした。ただし、同じ headersurimethod を使用して curl によって送信されたリクエストは正常に機能します。 go ソースコードは次のとおりです:

リーリー

トラフィックのパケット キャプチャを分析した結果、vpn インターフェイス は通常 curl によって送信されたリクエストをキャプチャできるが、get はキャプチャできないことが判明しました。 go(net /http)から取得しました送信されたリクエストは失われました。

それは、フレームワークがパケットを送信するために間違ったインターフェイスを選択したことが原因である可能性があると思います。

そこで、正しいローカル ネットワーク インターフェイスを見つけて、その localaddr を指定して、次のように get リクエストを送信しようとします。 リーリー

clientclient 関数に置き換えると、get リクエストが最終的に機能します。

クライアント := &http.client{} => クライアント、エラー := client(uri)

それでは、私の質問は、なぜ golang がリクエストを自動的に送信するために正しいローカル ネットワーク インターフェイスを選択しないのかということです。

解決策

デバッグ後、

net.dial#DialContext、アドレスが Visual Studio Code 設定に変更されていることがわかりました。プロキシアドレス。プロキシ サーバーはアプリケーションのリクエストを処理できません。

プロキシ設定を削除すると、

net.dial は期待どおりに動作します。 ###大事なこと###

VScode を使用して

TypeScript/Java/Golang...

を操作していますが、これが初めてです

vscode IDE でアプリケーションを開発しますプロキシの問題。言い換えれば、IDE エージェントがその目的で構築されたジョブを実行できるとは思ってもいませんでした。拡張機能または IDE 自体がこのプロキシ設定を使用するため、これは理にかなっていますが、golang プロジェクトのデバッグでもこれを使用しているため、本当に混乱しています。

以上が502 不正なゲートウェイ: IPSec トンネルの net/http GET が失敗しましたの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:stackoverflow.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!