Tor, I2P et proxys

Maigret peut faire passer ses vérifications par un proxy HTTP/SOCKS, par le réseau Tor ou par I2P. Trois options de ligne de commande couvrent trois objectifs distincts, et savoir laquelle il vous faut est le point de confusion le plus fréquent.

--proxy ou --tor-proxy (et --i2p-proxy)

La question la plus posée (voir l”issue #544) :

  • Vous voulez que toutes les vérifications passent par Tor (par exemple sous Tails OS, derrière un blocage national, ou parce que votre IP est soumise à une limitation de débit). → Utilisez --proxy en le pointant sur votre port SOCKS Tor :

    maigret <username> --proxy socks5://127.0.0.1:9050
    
  • Vous voulez atteindre les sites ``.onion`` de la base de Maigret, tandis que le reste de la recherche continue d’utiliser votre connexion habituelle. → Utilisez --tor-proxy :

    maigret <username> --tor-proxy socks5://127.0.0.1:9050
    

    --tor-proxy n’est consulté que pour les sites dont l”url est un hôte .onion. Pour tous les autres sites, Maigret utilise votre connexion directe (ou --proxy s’il est défini). Sans --tor-proxy, les sites .onion sont silencieusement ignorés.

Le même partage vaut pour --i2p-proxy : il n’est consulté que pour les hôtes .i2p, jamais pour les sites du web classique.

Valeurs par défaut : --tor-proxy vaut socks5://127.0.0.1:9050 et --i2p-proxy vaut http://127.0.0.1:4444. --proxy n’a pas de valeur par défaut. Maigret ne lance pas tor ni de routeur I2P à votre place : démarrez le démon d’abord.

Tor Browser ou tor système : les numéros de port

Le port SOCKS dépend de l’installation de Tor :

  • Le démon ``tor`` système (apt install tor, brew install tor, Tails) écoute sur 9050.

  • Le Tor Browser Bundle embarque son propre tor, qui écoute sur 9150.

Si la connexion est refusée, essayez l’autre port :

# system tor
maigret <username> --proxy socks5://127.0.0.1:9050

# Tor Browser running in the background
maigret <username> --proxy socks5://127.0.0.1:9150

Une remarque sur les résultats via Tor

La plupart des WAF publics (Cloudflare, DDoS-Guard, AWS WAF, Akamai) bloquent les nœuds de sortie Tor par défaut, en général plus agressivement que les IP de datacenter. Une recherche via Tor produit donc typiquement plus de UNKNOWN et moins de CLAIMED que la même recherche depuis une connexion résidentielle. Ce n’est pas un bug de Maigret, c’est le prix de l’anonymat.

Options recommandées pour une recherche via Tor :

maigret <username> --proxy socks5://127.0.0.1:9050 --timeout 60 --retries 2
  • --timeout 60 — les circuits Tor ajoutent 1 à 3 secondes par requête ; les 30 s par défaut provoquent de faux dépassements de délai.

  • --retries 2 — les nouvelles tentatives couvrent les défaillances passagères de circuit, fréquentes sur Tor.

  • Éventuellement -n 20 — baisser la concurrence (100 par défaut) réduit le risque de se faire limiter par les nœuds de sortie.

Si votre objectif est surtout de contourner les WAF (et non de rester anonyme), un proxy résidentiel fera en général bien mieux que Tor. Voir la section « Lots of sites fail / timeout / return 403 » dans TROUBLESHOOTING.md.

Utilisation sous Tails OS

Tails force toutes les connexions sortantes à passer par Tor, au niveau réseau. Maigret n’a besoin d’aucune configuration particulière pour s’y conformer : pointer --proxy sur le démon Tor de Tails suffit :

maigret <username> --proxy socks5://127.0.0.1:9050 --timeout 60

Ce qui n’est pas nécessaire :

  • torsocks maigret … et torify maigret … — ces commandes enveloppent les appels de sockets de la libc, mais le client HTTP de Maigret (aiohttp / curl_cffi) contourne la libc pour ses entrées-sorties réseau : l’enveloppe n’a donc aucun effet. Utilisez --proxy à la place.

  • --tor-proxy — sous Tails, tout doit passer par Tor (le système l’impose), donc le mode de niche « uniquement les .onion via Tor » qu’offre --tor-proxy ne s’applique pas.

Installation via Tor sous Tails

pip lui-même ne connaît rien à Tor ; sous Tails, il faut l’envelopper avec torsocks :

torsocks pip install --user maigret

Après l’installation, le binaire se trouve dans ~/.local/bin/maigret. Si vous obtenez maigret: command not found, ajoutez ~/.local/bin au PATH ou lancez-le avec python3 -m maigret <nomdutilisateur>.

Conserver Maigret d’une session Tails à l’autre

Tails efface ~/.local/ à chaque redémarrage, sauf si vous configurez le stockage persistant pour le conserver. Cela relève de la configuration de Tails, pas de celle de Maigret : voir la documentation officielle de Tails.

Une recette pas à pas proposée par un utilisateur (conserver ~/.local/lib/python3.9 et ~/.local/bin, et adapter .bashrc) se trouve dans l”issue #544. Prenez-la comme point de départ : la version de Python et les rouages internes de Tails changent d’une version de Tails à l’autre.

Les rapports sous Tails : où les enregistrer

Le répertoire reports/ par défaut se trouve à côté du répertoire de travail et disparaît avec la session amnésique. Pour enregistrer les rapports à un endroit persistant, passez -fo :

maigret <username> --html -fo "/home/amnesia/Persistent/maigret-reports"

ou définissez "reports_path" dans votre settings.json avec un chemin persistant. Voir Paramètres.

Équivalents programmatiques (bibliothèque Python)

Les mêmes options sont disponibles via l’API Python. Voir Utilisation en tant que bibliothèque : les arguments nommés correspondants sont proxy=, tor_proxy= et i2p_proxy=, et ils acceptent les mêmes formats d’URL que les options de la ligne de commande.

Voir aussi