Как избежать обхода прокси 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 с установленным системным прокси.