Linux では Chrome を起動していますが、google-chrome --proxy-server=127.0.0.1:8888 --proxy-bypass-list=""
localhost リクエストにはまだプロキシが使用されていません。
Chrome でローカルホストのプロキシを使用するように強制するにはどうすればよいですか?
なぜこれをやろうと思ったのか不思議に思うかもしれません。私は、ローカル環境で実行されているアプリケーションへのすべてのリクエストを、jmeter を使用して記録しようとしているのです。
答え1
ほとんどそこにいたが、答えはバイパスオプションについてはChromiumのドキュメントに記載されています使用していたもの。減算する削除したいものの前にダッシュを追加することでデフォルトを削除します。この場合は、ループバック インターフェイスであり、文字通り と記述されます<loopback>
。
通常のバイパス ルールは、プロキシを使用しない URL についてブラウザに指示しますが、このルールは逆の効果があり、代わりにプロキシを使用するようにブラウザに指示します。
完全なパラメータは--proxy-bypass-list="<-loopback>"
この点については言及もリンクもされていないのが少し残念だ。Chromium のネットワーク設定ページ...
答え2
ついに、この問題に対する巧妙な解決策を見つけました。 でリクエストを送信できたので、これはブラウザの問題であることは最初から明らかでしたcurl --proxy
。
秘訣は、DNS 解決もプロキシ経由で行われるため、リモート マシン上で行われることです。リモート/etc/hosts
ファイルに新しいエントリを追加するだけです。
127.0.0.1 local
Chrome はこの新しいホスト名を認識しないので、ローカル マシン上のリモート「localhost」にアクセスできます。たとえば、次のようにしますhttp://local:8080/mysite
。
答え3
Windows10 の場合、これはシステムの問題であり、localhost は常に現在の PC に移動し、プロキシを経由しません。
OS のプロキシ設定でこれを設定すると、localhost go プロキシを強制することができます。
- OSのプロキシ設定を開く
- プロキシ サーバー (ホストとポート) が設定されていることを確認します。
- 以下に入力項目があります。
Use the proxy server except for address that start with the following entries. Use semicolons(;) to separate entries
<-loopback>
その入力に追加します。- 保存。
次に、ローカルホストをプロキシの下に移動するように要求します。
注記:
- ブラウザはデフォルトでローカルホストをバイパスしますが、この設定がなくても CMD は機能します。
curl -x http://{proxyserIp}:{proxyPort} http://localhost:3000
- ブラウザ拡張機能 ( など) を使用している場合は、を
SwitchyOmega
追加することもできます。これは引き続き機能します。<-loopback
Bypass list
参照する: https://docs.microsoft.com/en-us/archive/blogs/fiddler/fiddler-and-the-ie9-release-candidate https://stackoverflow.com/questions/37700079/how-to-intercept-local-server-web-requests-using-burp-in-internet-explorer
答え4
mitmproxy または charles を使用して localhost リクエストをデバッグしている場合は、システム プロキシを設定した macOS で Chrome 69 を使用してみてください。