Как избежать обхода прокси Google Chrome для localhost?

В Linux я запускаю Chrome как google-chrome --proxy-server=127.0.0.1:8888 --proxy-bypass-list="" однако это все еще не использует прокси для запросов localhost.

Как я могу заставить Chrome использовать мой прокси для localhost?

Вы можете удивиться, почему я хочу сделать это, я пытаюсь записать все запросы, используя jmeter, к приложению, работающему в локальной среде.

5 ответов

Наконец-то я нашел хитрое решение для этого. С самого начала было ясно, что это проблема браузера, так как я мог делать запросы с curl --proxy,

Хитрость в том, что разрешение DNS также происходит через прокси, поэтому на удаленной машине. Так что просто добавьте новую запись на ваш пульт /etc/hosts файл:

127.0.0.1       local

Затем вы можете получить доступ к удаленному "localhost" на своем локальном компьютере, поскольку Chrome ничего не знает об этом новом имени хоста. Например: http://local:8080/mysite,

Вы были почти у цели, но ответ находится в документации Chromium для используемой вами опции обхода. Вам нужно вычесть значения по умолчанию, добавив тире перед тем, что вы хотите удалить, в данном случае это интерфейс обратной связи, который буквально пишется<loopback>.

В то время как обычные правила обхода сообщают браузеру об URL-адресах, которые не должны использовать прокси-сервер, это правило имеет противоположный эффект и говорит браузеру вместо этого использовать прокси-сервер.

Полный параметр--proxy-bypass-list="<-loopback>"

Немного жаль, что это не упомянуто и не связано со страницей сетевых настроек для Chromium ...

Для Windows10 это системная проблема: локальный хост всегда будет подключаться к текущему компьютеру и не будет проходить через прокси.

Вы можете установить это в настройках прокси-сервера ОС, чтобы принудительно использовать прокси-сервер 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-candidatehttps://stackoverflow.com/questions/37700079/how-to-intercept -локальный-сервер-веб-запросы-с использованием-бурпа-в-интернет-проводнике

chrome.exe --proxy-server="socks5://localhost:12345" --proxy-bypass-list="<-loopback>"

это будет работать для localhost,127.0.0.1,127.0.0.2(не проверял, но предполагаю) и т.д...

https://bugs.chromium.org/p/chromium/issues/detail?id=899126

Если вы используете mitmproxy или charles для отладки запросов локального хоста, попробуйте использовать Chrome 69 в MacOS с установленным системным прокси.

Другие вопросы по тегам