gitやcurlなどのツールがシステムネットワークプロキシを使用できないのはなぜですか?

gitやcurlなどのツールがシステムネットワークプロキシを使用できないのはなぜですか?

私のオペレーティングシステム:MacOSX

gitとcurlは環境変数を使用できますhttp_proxyhttps_proxyこれにより、実行時に使用でき、マイプロキシサーバーを介してターゲットサーバーにアクセスできます。

Git、Curl、およびその他のツールがシステムWIFIネットワークプロキシ設定を使用できないのはなぜですか?

結局のところ、すべて私のWi-Fiネットワーク経由でリクエストを送信しませんか?

デバッグの詳細:

WIFI HTTPプロキシ設定:

ここに画像の説明を入力してください。

⚡  curl google.com    
curl: (7) Failed to connect to google.com port 80: Operation timed out

WIFI HTTPプロキシ設定を消去する:

ここに画像の説明を入力してください。

http_proxy、、、https_proxy環境all_proxy変数を設定します。

⚡  export https_proxy=http://127.0.0.1:7890 http_proxy=http://127.0.0.1:7890 all_proxy=socks5://127.0.0.1:7890
⚡  echo $http_proxyhttp://127.0.0.1:7890
http://127.0.0.1:7890
⚡  curl google.com
<HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
<TITLE>301 Moved</TITLE></HEAD><BODY>
<H1>301 Moved</H1>
The document has moved
<A HREF="http://www.google.com/">here</A>.
</BODY></HTML>

Curlはそのサイトにアクセスできますgoogle.com

ベストアンサー1

などのコマンドラインツールの場合、curl「システムプロキシの設定」は、2番目の例で設定したものとまったく同じです(変数$http_proxyなど)。 「システムプロキシ設定」の設定に使用するGUIツールは、ターミナルセッションにこれらの変数を設定しますか?そうでない場合は、これらの設定を使用しない理由がわかります。ただ、GUIプロキシ設定アプリケーションはコマンドラインツールと互換性がないということです。

$http_proxyなど。環境変数は *nix コマンドライン標準です。プロキシを設定するためにGUIアプリケーションを作成し、その設定がコマンドラインツールで機能することを望む人は誰でもこの標準に準拠する必要があります。その逆も同様です。これは、グラフィカルDEがエージェント情報を保存する多くの方法があり、コマンドラインツールにはそのすべての情報を知る方法がないためです。実行 - 通常グラフィック DE 実行なしで実行)。curlGNOME、KDE、XFCE、その他複数のLinux DE、Windowsの基本DE、MacOSの基本DE、またはDEのない単純なテキストモードSSHセッションで同じコードが実行されているとします。

すべてのGUIツールのプロキシ設定しなければならない$http_proxyターミナルセッションなどの変数の後続の設定が発生します。そうでなければ、GUIツールは不都合です。

おすすめ記事