На Linux я запускаю Chrome, google-chrome --proxy-server=127.0.0.1:8888 --proxy-bypass-list=""
однако он по-прежнему не использует прокси для запросов localhost.
Как заставить Chrome использовать мой прокси-сервер для localhost?
Вы можете задаться вопросом, зачем я это делаю? Я пытаюсь записать все запросы, используя 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
В Windows 10 это системная проблема, так как localhost всегда будет подключаться к текущему ПК и не будет проходить через прокси-сервер.
Вы можете установить это в настройках прокси-сервера ОС, чтобы заставить localhost использовать прокси-сервер.
- Откройте настройки прокси-сервера ОС.
- Убедитесь, что ваш прокси-сервер (хост и порт) настроен.
- Ниже будет ввод для вас, говорит
Use the proxy server except for address that start with the following entries. Use semicolons(;) to separate entries
- Добавьте
<-loopback>
к этому вводу. - Сохранять.
Затем ваш запрос localhost будет передан через прокси-сервер.
Примечание:
- Хотя браузеры по умолчанию обходят 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, попробуйте использовать Chrome 69 в macOS с установленным системным прокси-сервером.