私のオペレーティングシステム:MacOSX
gitとcurlは環境変数を使用できますhttp_proxy
。https_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 実行なしで実行)。curl
GNOME、KDE、XFCE、その他複数のLinux DE、Windowsの基本DE、MacOSの基本DE、またはDEのない単純なテキストモードSSHセッションで同じコードが実行されているとします。
すべてのGUIツールのプロキシ設定しなければならない$http_proxy
ターミナルセッションなどの変数の後続の設定が発生します。そうでなければ、GUIツールは不都合です。