Je peux facilement utiliser Netcat (ou Socat) pour capturer le trafic entre mon navigateur et un hôte spécifique: port.
Mais pour Linux, existe-t-il un équivalent en ligne de commande d'un proxy HTTP de type Squid que je peux utiliser pour capturer le trafic entre mon client HTTP (navigateur ou programme de ligne de commande) et tout hôte arbitraire: port?
command-line
proxy
http
squid
Harry
la source
la source
Réponses:
Perl et Python (et probablement Ruby également) ont des kits simples que vous pouvez utiliser pour créer rapidement des proxys HTTP simples.
En Perl, utilisez HTTP :: Proxy . Voici l'exemple de 3 lignes de la documentation. Ajoutez des filtres pour filtrer, consigner ou réécrire les demandes ou les réponses; voir la documentation pour des exemples.
En Python, utilisez SimpleHTTPServer . Voici un exemple de code légèrement adapté d' effbot . Adaptez la
do_GET
méthode (ou autres) pour filtrer, consigner ou réécrire les demandes ou les réponses.la source
Ce n'est peut-être pas la meilleure solution, mais si vous utilisez un proxy, il aura un spécifique, de
host:port
sorte que la solution netcat fonctionnera toujours, bien que vous deviez choisir les métadonnées du proxy pour le comprendre.La façon la plus simple de le faire pourrait être d'utiliser un proxy d'anonymisation aléatoire et de canaliser tout le trafic
netcat
. (C'est-à-dire, définissez le proxy de votre navigateur surlocalhost:port
, puis transférez les données vers le vrai proxy.)Si vous souhaitez avoir un proxy local, un proxy SOCKS5 avec
ssh -D <port> localhost
est probablement votre option la plus simple. De toute évidence, vous devez dire à votre navigateur d'utiliser un proxy "socks" plutôt qu'un proxy "http".Donc, quelque chose comme ça (en supposant que votre machine locale accepte les connexions ssh entrantes):
Naturellement, cela ne fonctionnera que pour une seule tentative de connexion au navigateur, puis quittera, et je n'ai pas tenté de transmettre les données de retour au navigateur, vous aurez donc besoin de votre
netcat
solution complète .la source
root
utilisateur, etc.ssh -fN -D ...
démarre un proxy SOCKS5 sur lelocalhost
port8000
, mais que faitnc -l ...
-il? Et, vers quel port dois-je faire pointer mon navigateur vers:8000
ou8080
?nc
commandes acceptent tout le trafic provenant du port 8080 et le transmettent à 8000. Je n'ai pas fourni denetcat
solution complète car votre message suggérait que vous saviez déjà comment faire cette partie.