如何避免本地主機的Google瀏覽器代理程式繞過?

如何避免本地主機的Google瀏覽器代理程式繞過?

在 Linux 上,我啟動了 chrome,google-chrome --proxy-server=127.0.0.1:8888 --proxy-bypass-list=""但它仍然沒有使用本機主機請求的代理程式。

如何強制 chrome 使用本機主機代理程式?

您可能想知道為什麼我想這樣做,我試圖使用 jmeter 記錄對本地環境上運行的應用程式的所有請求。

答案1

你快到了,但答案位於 Chromium 文件中的繞過選項你正在使用。你需要減去預設值是在要刪除的內容前面加上破折號,在本例中是環回接口,字面意思是<loopback>.

雖然常規繞過規則會指示瀏覽器不應使用代理的 URL,但此規則具有相反的效果,並告訴瀏覽器改為使用代理。

完整參數為--proxy-bypass-list="<-loopback>"

有點不幸的是,這一點沒有被提及或連結到Chromium 的網路設定頁面

答案2

最後我找到了一個棘手的解決方案。從一開始就很明顯這是一個瀏覽器問題,因為我能夠使用curl --proxy.

訣竅在於 DNS 解析也是透過代理程式進行的,因此是在遠端電腦上進行的。因此,只需在遠端/etc/hosts文件中新增一個條目即可:

127.0.0.1       local

然後您可以存取本機上的遠端“localhost”,因為 Chrome 對這個新主機名稱一無所知。例如透過:http://local:8080/mysite.

答案3

對於Windows10,這是一個系統問題,本機主機將始終轉到目前PC,並且不會通過代理程式。

您可以在作業系統的代理設定中進行設置,以強制 localhost 進行代理程式。

  • 開啟作業系統的代理設定
  • 確保您的代理伺服器(主機和連接埠)已設定。
  • 下面將為您提供一個輸入,說Use the proxy server except for address that start with the following entries. Use semicolons(;) to separate entries
  • 加到<-loopback>該輸入中。
  • 節省。

然後你的本地主機請求在代理下進行。

筆記:

  • 儘管瀏覽器預設會繞過 localhost,但即使沒有此設置,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 並設定係統代理程式。

相關內容