Puedo usar fácilmente Netcat (o Socat) para capturar el tráfico entre mi navegador y un host específico: puerto.
Pero para Linux, ¿existe alguna contraparte de línea de comando de un proxy HTTP similar a Squid que pueda usar para capturar el tráfico entre mi cliente HTTP (ya sea navegador o programa de línea de comando) y cualquier host arbitrario: puerto?
command-line
proxy
http
squid
Harry
fuente
fuente

Respuestas:
Tanto Perl como Python (y probablemente también Ruby) tienen kits simples que puedes usar para construir rápidamente proxies HTTP simples.
En Perl, use HTTP :: Proxy . Aquí está el ejemplo de 3 líneas de la documentación. Agregue filtros para filtrar, registrar o reescribir solicitudes o respuestas; Consulte la documentación para ver ejemplos.
En Python, use SimpleHTTPServer . Aquí hay un código de muestra ligeramente adaptado de effbot . Adapte el
do_GETmétodo (u otros) para filtrar, registrar o reescribir solicitudes o respuestas.fuente
Puede que esta no sea la mejor solución, pero si usa algún proxy, tendrá una
host:portsolución específica para que la solución de netcat siga funcionando, aunque tendrá que separar los metadatos del proxy para darle sentido.La forma más fácil de hacer esto podría ser usar cualquier proxy de anonimato aleatorio y simplemente canalizar todo el tráfico
netcat. (Es decir, configure el proxy de su navegadorlocalhost:porty luego envíe los datos al proxy real).Si desea tener un proxy local, entonces un proxy SOCKS5
ssh -D <port> localhostes probablemente su opción más fácil. Obviamente, debe decirle a su navegador que use un proxy "calcetines" en lugar de un proxy "http".Entonces, algo como esto (suponiendo que su máquina local acepte conexiones ssh entrantes):
Naturalmente, eso solo funcionará para un intento de conexión del navegador, y luego saldrá, y no he intentado reenviar los datos devueltos al navegador, por lo que necesitará su
netcatsolución completa .fuente
rootusuario, etc.ssh -fN -D ...inicia un proxy SOCKS5 en ellocalhostpuerto8000, pero ¿qué hacenc -l ...? Y, ¿a qué puerto debo hacer que mi navegador señale:8000o8080?nccomandos aceptan todo el tráfico desde el puerto 8080 y lo reenvían a 8000. No proporcioné unanetcatsolución completa porque su publicación sugirió que ya sabía cómo hacer esa parte.