¿Cómo puedo ejecutar TODAS las solicitudes HTTP a través del proxy de depuración web de Charles, incluidas las de la línea de comandos?

24

Estoy usando el software Charles Web Debugging Proxy para depurar solicitudes HTTP. Funciona muy bien con mis navegadores de escritorio, Chrome y Firefox, e incluso ve solicitudes HTTP que hacen otros programas.

Cuando ejecuto Charles y compruebo la configuración de red, creo que entiendo cómo funciona: solo configura un proxy para todas las solicitudes HTTP y HTTPS y luego las escucha en el puerto 8888:

ingrese la descripción de la imagen aquí

Sin embargo, el artículo que no puedo entender es que no veo ninguna solicitud que se inician en el terminal, como por ejemplo wget, curlo el elinksnavegador.

Sé que puedo especificar el proxy con curl y wget usando 127.0.0.1:8888, pero no entiendo si la interfaz de red está configurada con un proxy en la configuración por qué necesitaría especificar manualmente el proxy para ellos .

Además, parece que tampoco puedo hacer que BlueCrab (copiadora de sitios web) aparezca en Charles, y no veo una configuración de proxy para ello, aunque creo que está usando un contenedor XWindow o algo así (en realidad no es nativo Aplicación Cacao / Carbono):

ingrese la descripción de la imagen aquí

¿Cómo puedo hacer que todas las solicitudes HTTP en mi sistema se ejecuten a través de Charles?

Aclaración

Mi pregunta es acerca de las cuestiones básicas de sistemas de rizo y por eso wget no utilizar un proxy cuando la interfaz de red se ha configurado para utilizar uno más que preguntar sobre la sintaxis correcta para curl, wget, etc.

cwd
fuente

Respuestas:

4

VPN crearía un nuevo dispositivo de red, puede verlo en el ifconfigcomando y luego enrutar toda la red del sistema a ese dispositivo, puede ver el routecomando de uso de ruta .

Pero HTTP Proxy (en este caso, el Charles) es diferente, solo abre un puerto, para usarlo, debe especificar la configuración de su aplicación para usar ese puerto para cosas HTTP. y como respuesta de Kevin Reid curl, wgetetc., no lea la configuración de todo el sistema OS X.


Si su proxy es SOCKS (Charles admite HTTP y SOCKS), puede usar ProxyChains o tsocks para que la aplicación no admita la configuración de proxy.

p.ej:

$ proxychains git clone https://github.com/rofl0r/proxychains-ng
Mengdi Gao
fuente
¿Cómo tener una depuración web "similar a VPN"? ¿Hay aplicaciones que hacen esto?
Pacerier
@Pacerier Pruebe Wireshark , es una herramienta de análisis / monitoreo de Internet / red, en la que puede ver casi todos los tráficos de red de su sistema, incluidos, entre otros, UDP, TCP (incluye HTTP). Sin embargo, es demasiado complicado para la depuración web , pero ingrese un comando de filtro de una línea para que solo sea posible el tráfico HTTP.
Mengdi Gao
@Pacerier también considera mitmproxy , cuando se ejecuta en modo Proxy transparente , se obtiene una depuración web similar a VPN. El inconveniente es que es una herramienta de línea de comandos y la configuración es un poco complicada.
Mengdi Gao
18

wget detrás del proxy (puede que tenga que crear el archivo rc) fuente

`$ vim ~/.wgetrc`

Agregue la siguiente línea:

http_proxy=http://127.0.0.1:8888

rizo detrás de la fuente proxy

$ vim ~/.curlrc

Agregue la siguiente línea:

proxy = 127.0.0.1:8888

enlaces detrás de la fuente proxy

Encuentra tu elinks.confarchivo con:

sudo find / -name elinks.conf

Agregue la siguiente línea:

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

No estoy seguro sobre BlueCrab

Rebecca Dessonville
fuente
1
> Sé que puedo especificar el proxy con curl y wget usando 127.0.0.1:8888, pero no entiendo si la interfaz de red está configurada con un proxy en la configuración por qué necesitaría especificar manualmente el proxy para estas cosas.
cwd
El título de su pregunta y lo que estaba buscando no coinciden. Sin embargo, intentaré encontrar esa información también.
Rebecca Dessonville
1
Creo que coincide: estoy buscando una forma de ejecutar TODAS las solicitudes a través de Charles Debugging Proxy y no tener que establecer reglas programa por programa. No se preocupe si esta pregunta se vuelve obsoleta y nadie más puede responderla. Volveré y aceptaré su respuesta. Y gracias por compartir la sintaxis de configuración para esas utilidades.
cwd
Después de leer su edición, ahora veo dónde entendí mal su solicitud original.
Rebecca Dessonville
11

La razón por la que no solo obtiene el proxy de todas las solicitudes HTTP es porque a nivel del sistema operativo , no existe una "solicitud HTTP"; solo hay conexiones TCP. Ponerse en contacto con un proxy HTTP significa cambiar ligeramente la solicitud HTTP, así como ponerse en contacto con el servidor proxy en lugar del host nombrado en la URL, por lo que debe hacerse en el código que implementa el envío de solicitudes HTTP.

curl y wget tienen su propio código HTTP, que usa sus propios archivos de configuración: no han sido programados para buscar configuraciones de proxy donde Mac OS X los mantiene, ni están usando las bibliotecas HTTP proporcionadas con Mac OS X que usan esos proxy ajustes

Kevin Reid
fuente
6

Si no desea tocar sus archivos de configuración, usando curl puede hacer:

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

Olivier
fuente