Подтвердить что ты не робот

Самый простой возможный обратный прокси

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

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

Предпочтительно это будет пакет Ruby, Python или Node, так что я мог бы просто что-то сделать в строках:

mkdir simplest-proxy; cd simplest-proxy; bundle init
echo "gem 'simplest-proxy'" >> Gemfile; bundle --path vendor/bundle
bundle exec bin/simplest-proxy -p 8080 https://remote.site.example.com/

или

virtualenv simplest-proxy; cd simplest-proxy
bin/easy_install simplest-proxy
bin/simplest-proxy -p 8080 https://remote.site.example.com/

или

mkdir simplest-proxy; cd simplest-proxy
npm install simplest-proxy
node_modules/.bin/simplest-proxy -p 8080 https://remote.site.example.com/

Это позволит моему приложению подключиться к localhost:8080, который перенаправляет запрос (и переписывает заголовок Host и все, что необходимо) на удаленный сайт. Я мог бы смотреть lo в WireShark и узнать, что происходит.

Я быстро просмотрел pypi, rubygems и npm, но то, что я нашел до сих пор, либо не работает (proxylet, что в противном случае выглядело очень многообещающим), предназначалось для гораздо более сложного сценария и требует установки (dj-revproxy) или ожидая, что он будет вызываться с правильным Host (node-reverse-proxy), а не переписывать.

UPDATE: теперь я собираюсь с Apache с конфигурацией ProxyPass/ProxyPassReverse, но он чувствует себя массово перегруженным и требует игры с конфигурационными файлами.

UPDATE: другое решение, которое не применимо, является фактическим прокси-сервером HTTP, а не эмуляцией удаленного сайта. Поскольку удаленный сайт является HTTPS-сайтом, это просто сделает мое приложение подключаемым CONNECT в прокси-сервере и ничего не получилось.

4b9b3361

Ответ 1

Найдено http://mitmproxy.org/!

Мой пример использования:

mitmproxy -p 8080 -P https://remote.site.example.com/

Но там больше. Он также предлагает пользовательский интерфейс ncurses для показа всех выполненных запросов и позволяет вам их проверять. Это делает WireShark ненужным.

Установите с помощью установщика дистрибутива или с помощью easy_install, как показано в вопросе:

virtualenv mitmproxy; cd mitmproxy
bin/easy_install mitmproxy
bin/mitmproxy -p 8080 -P https://remote.site.example.com/