web-dev-qa-db-ja.com

コマンドラインリクエストを含め、Charles Webデバッグプロキシを介してすべてのHTTPリクエストを実行するにはどうすればよいですか?

Charles Webデバッグプロキシソフトウェアを使用してHTTPリクエストをデバッグしています。私のデスクトップブラウザ、ChromeおよびFirefox)でうまく機能し、他のプログラムが作成したHTTPリクエストも確認できます。

Charlesを実行してネットワーク構成を確認すると、動作を理解していると思います。すべてのHTTP要求とHTTPS要求にプロキシを設定し、ポート8888でこれらをリッスンします。

enter image description here

しかし、私が理解できない項目は、wgetcurl、またはelinksブラウザーなど、ターミナルで開始する要求が表示されないことです。 。

127.0.0.1:8888を使用してcurlとwgetでプロキシを指定できることは知っていますが、構成でプロキシを使用してネットワークインターフェイスがセットアップされている場合、手動でプロキシを指定する必要がある理由がわかりません。

また、BlueCrab(ウェブサイトのコピー機)をチャールズに表示することもできません-プロキシ設定が表示されません-XWindowラッパーまたは何かを使用しているようです(したがって、実際にはネイティブではありません) Cocoa/Carbonアプリ):

enter image description here

システム上のすべてのHTTPリクエストをCharles経由で実行するにはどうすればよいですか?

説明

私の質問は、curlwgetの正しい構文について尋ねるのではなく、ネットワークインターフェイスがもう1つ使用するように設定されているときにcurlとwgetがプロキシを使用しない理由のシステムの基礎についてです。 、など.

25
cwd

VPNは新しいネットワークデバイスを作成し、ifconfigコマンドでそれを確認してから、すべてのシステムネットワークをそのデバイスにルーティングします。routeuse routeコマンドを確認できます。

ただし、HTTPプロキシ(この場合はチャールズ)は異なります。ポートを開くだけで、それを使用するには、HTTPのものにそのポートを使用するようにアプリケーション設定を指定する必要があります。ケビン・リードの答えとして、curlwgetなどはOS Xのシステム全体の設定を読みません。


プロキシがSOCKS(Charles supports HTTPとSOCKSの両方)の場合、アプリケーションはプロキシ設定をサポートしていないため、 ProxyChains または tsocks を使用できます。

例えば。:

$ proxychains git clone https://github.com/rofl0r/proxychains-ng
4
Mengdi Gao

プロキシの背後にあるwget(rcファイルを作成する必要がある場合があります)source

`$ vim ~/.wgetrc`

次の行を追加します。

http_proxy=http://127.0.0.1:8888

カールがプロキシの背後にありますソース

$ vim ~/.curlrc

次の行を追加します。

proxy = 127.0.0.1:8888

elinks behind proxyソース

elinks.confファイルを見つけるには:

Sudo find / -name elinks.conf

次の行を追加します。

protocol.http.proxy.Host "127.0.0.1:8888"

BlueCrabについてわからない

19

whyすべてのHTTPリクエストのプロキシを取得しない理由は、オペレーティングシステムレベルでは「HTTPリクエスト」などがないためです。 TCP接続のみです。HTTPプロキシに接続することは、HTTPリクエストをわずかに変更することと、URLで指定されたホストの代わりにプロキシサーバーに接続することを意味するため、コードで行う必要があります。 HTTPリクエストの送信を実装します。

curlとwgetには独自のHTTPコードがあり、独自の設定ファイルを使用します。これらは、Mac OS Xが保持するプロキシ設定を探すようにプログラムされておらず、Mac OS Xで提供されるプロキシを使用するHTTPライブラリも使用していません。設定。

11
Kevin Reid

設定ファイルに触れたくない場合は、curlを使用して次のことができます。

curl http://example.com --proxy 127.0.0.1:8888

6
Olivier