Як я можу запустити ВСІ HTTP-запити через проксі-сервер Charles Debugging Proxy - включаючи командний рядок?


24

Я використовую програмне забезпечення веб-налагодження Проксі Чарльза для налагодження HTTP-запитів. Він чудово працює з моїми настільними браузерами, Chrome і Firefox, і він навіть бачить HTTP-запити, які роблять інші програми.

Коли я запускаю Чарльза і перевіряю конфігурацію мережі, я думаю, я розумію, як це працює - він просто встановлює проксі для всіх запитів HTTP і HTTPS, а потім слухає їх на порту 8888:

введіть тут опис зображення

Однак цей пункт я не можу зрозуміти, що я не бачу якихось - або запитів , які я ініціюють в терміналі, наприклад wget, curlабо в elinksбраузері.

Я знаю, що я можу вказати проксі-сервер із curl та wget, використовуючи 127.0.0.1:8888, але я не розумію, чи налаштований мережевий інтерфейс із проксі-сервером у конфігурації, чому мені потрібно вручну вказати проксі-сервер для них .

Крім того, я не можу отримати BlueCrab (копіювач веб-сайтів), щоб він з'явився в Чарльзі - і я не бачу налаштування проксі для цього - хоча я вважаю, що він використовує обгортку XWindow або щось подібне (так що це насправді не рідний Додаток какао / вуглець):

введіть тут опис зображення

Як я можу змусити всі HTTP запити в моїй системі працювати через Charles?

Уточнення

Моє питання про системні основи чому скручується і Wget не використовуватимуть проксі - сервер , коли мережевий інтерфейс був створений , щоб використовувати один більше, ніж питати про правильне синтаксисі для curl, wgetі т.д.

Відповіді:


4

VPN створив би новий мережевий пристрій, ви можете бачити його в ifconfigкоманді, а потім маршрутизувати всю системну мережу до цього пристрою, ви могли бачити routeкоманду використання маршруту .

Але HTTP Proxy (в даному випадку Чарльз) відрізняється, він просто відкриває порт, щоб його використовувати, ви повинні вказати налаштування програми, щоб використовувати цей порт для HTTP продуктів. і як відповідь Кевін Рід, curl, і wgetт.д. не читають широкі налаштування системи OS X ст.


Якщо ваш проксі - SOCKS (Charles підтримує і HTTP, і SOCKS), ви можете використовувати ProxyChains або tsocks, щоб програма не підтримувала налаштування проксі.

наприклад:

$ proxychains git clone https://github.com/rofl0r/proxychains-ng

Як тоді налагодити веб-налагодження "схоже на VPN"? Чи є програми, які роблять це?
Pacerier

@Pacerier Спробуйте Wireshark , це інструмент для моніторингу в Інтернеті / мережі та аналізу, в якому ви можете переглянути майже всі мережеві трафіки вашої системи, включаючи, але не обмежуючись ними, UDP, TCP (включає HTTP). Однак це дуже складно для налагодження в Інтернеті , але введіть команду фільтра з одним вкладишем, щоб можливі лише відображення трафіку HTTP.
Менґді Гао

@Pacerier також враховує mitmproxy , коли під час запуску в режимі прозорого проксі ви отримали налагодження через VPN, як веб-налагодження. Нижня сторона полягає в тому, що це інструмент командного рядка, і конфігурація трохи складна.
Менґді Гао

18

Wget за проксі (можливо , доведеться створити файл RC) джерело

`$ vim ~/.wgetrc`

Додайте наступний рядок:

http_proxy=http://127.0.0.1:8888

завиток за джерелом проксі

$ vim ~/.curlrc

Додайте наступний рядок:

proxy = 127.0.0.1:8888

посилається на джерело проксі

Знайдіть свій elinks.confфайл за допомогою:

sudo find / -name elinks.conf

Додайте наступний рядок:

protocol.http.proxy.host "127.0.0.1:8888"

Не впевнений у BlueCrab


1
> Я знаю, що я можу вказати проксі з curl і wget, використовуючи 127.0.0.1:8888, але я не розумію, чи налаштований мережевий інтерфейс з проксі-сервером у конфігурації, чому мені потрібно вручну вказати проксі-сервер для Ці речі.
cwd

Назва вашого запитання та те, що ви шукали, не відповідають. Я спробую також знайти цю інформацію.
Ребекка Дессонвіль

1
Я думаю, що це відповідає - я шукаю спосіб запустити ВСІ запити через Charles Debugging Proxy, і не потрібно встановлювати правила на програмі за програмою. Не хвилюйтесь, якщо це запитання застаріло, і ніхто більше не зможе відповісти на нього, я повернусь і прийму вашу відповідь. І дякую за те, що ви поділилися синтаксисом конфігурації для цих утиліт.
cwd

Після прочитання вашої редакції я тепер бачу, де я неправильно зрозумів ваш початковий запит.
Ребекка Дессонвіль

11

Причина, чому ви не просто отримуєте доступ до всіх запитів HTTP, полягає в тому, що на рівні операційної системи не існує такого поняття, як "HTTP-запит"; є лише TCP-з'єднання. Звернення до HTTP-проксі означає незначну зміну HTTP-запиту, а також звернення до проксі-сервера замість хоста, названого в URL-адресі, тому це потрібно зробити в коді, який реалізує надсилання HTTP-запитів.

curl і wget мають свій власний код HTTP, який використовує власні конфігураційні файли - вони не запрограмовані шукати параметри проксі, де зберігається Mac OS X, а також не використовують бібліотеки HTTP, надані з Mac OS X, які використовують ці проксі налаштування.


6

Якщо ви не хочете торкатися файлів конфігурації, за допомогою curl ви можете зробити:

curl http://example.com --proxy 127.0.0.1:8888

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.