Comment modifier le noeud de sortie Tor de manière programmatique pour obtenir une nouvelle IP?

j'ai Tor en cours d'exécution sur mon ordinateur, et je dois changer le noeud de sortie Tor toutes les cinq minutes. Par exemple, si je commence à utiliser Tor via un noeud de sortie, alors dans 5 minutes je veux que Tor change pour un noeud de sortie avec une adresse IP différente. Comment puis-je faire cela?

Tor, autant que je sache, écoute le port 8051 sur localhost.

quelles commandes puis-je envoyer à ce port pour que Tor construise une nouvelle chaîne, de sorte que je puisse obtenir une autre adresse IP?

37
tor

10 réponses

(echo authenticate '""'; echo signal newnym; echo quit) | nc localhost 9051
37
répondu kat 2012-07-06 01:00:03

Méthode 1: HUP

sudo killall -HUP tor

vérifiez ensuite que votre IP a changé avec:

curl --socks5 127.0.0.1:9050 http://checkip.amazonaws.com/

testé dans Ubuntu 17.10 avec sudo apt-get install tor version 1.6.0-5.

sudo est nécessaire car le processus est démarré par root par défaut.

Ce qu'un signal HUP fait exactement de la Tor démon est documentée à l': https://gitweb.torproject.org/torspec.git/tree/control-spec.txt?id=03aaace9bd9459b0d4bf22a75012acf39d07bcec#n394 et équivaut à envoyer une commande par le port de commande.

Browser Bundle 5.0.5 N'est pas affecté par cela, seulement les ports démon comme le 9050 par défaut, qui n'est pas utilisé par le TBB. Pour ce cas, voir: https://tor.stackexchange.com/questions/1071/how-can-a-new-circuit-happen-without-closing-all-tabs

si vous déployez une armée de Tor IPs comme mentionné ici vous pouvez envoyer sélectivement:

kill -HUP $PID

Méthode 2: port de contrôle

mentionné par kat :

(echo authenticate '""'; echo signal newnym; echo quit) | nc localhost 9051

mais pour que cela fonctionne sur Ubuntu 17.10 vous doit d'abord :

  • activer le port de contrôle en décommentant:

    ControlPort 9051
    

    à partir de /etc/tor/torrc

  • définissez le mot de passe vide, sinon il donne 515 Authentication failed: Wrong length on authentication cookie. . Première course:

    tor --hash-password ''
    

    Ce sorties quelque chose comme:

    16:D14CC89AD7848B8C60093105E8284A2D3AB2CF3C20D95FECA0848CFAD2
    

    maintenant sur /etc/tor/torrc mettre à jour la ligne:

    HashedControlPassword 16:D14CC89AD7848B8C60093105E8284A2D3AB2CF3C20D95FECA0848CFAD2
    
  • Redémarrer Tor:

    sudo service tor restart
    

Bonus: Comment vérifier que votre adresse IP a changé

curl --socks5 127.0.0.1:9050 http://checkip.amazonaws.com/

voir aussi:

24

cette question semble se poser assez fréquemment ( 1 , 2 ) donc je viens d'ajouter un FAQ entrée pour elle. Comme mentionné précédemment, vous pouvez le faire via un signal NEWNYM. Voici un exemple pour le faire via le souches ...

from stem import Signal
from stem.control import Controller

with Controller.from_port(port = 9051) as controller:
  controller.authenticate()
  controller.signal(Signal.NEWNYM)
9
répondu Damian 2017-05-23 11:47:11

ouais, c'est 1 (je veux dire =vrai =))) que tor n'changer d'ip toutes les 10 minutes mais! si je redémarre tor-j'aurai une nouvelle ip même dans cet intervalle de 10 minutes. je pensais donc faire en sorte que tor envoie cette requête "change_ip" manuellement. voir ce code (écrit selon http://en.linuxreviews.org/HOWTO_use_the_Internet_anonymously_using_Tor_and_Privoxy )

procedure ChangeIp;
var
  sck:TIdTCPClient;
begin
  sck:=TIdTCPClient.Create(nil);
  try
    sck.Host:='127.0.0.1';
    sck.Port:=10051;
    sck.Connect;
    sck.SendCmd('authenticate','');
    if sck.LastCmdResult.Code='250' then
    begin
      sck.SendCmd('signal newnym','');
    end;
  finally
    sck.Free;
  end;
end;

et accordenig à [ https://tor-svn.freehaven.net/svn/torctl/trunk/doc/howto.txt] je peux écrire un contrôleur qui va changer le conf de tor à la volée. par défaut, il n'est pas enebled (je veux dire cette capacité), mais je peux faire écouter au client tor un port pour accepter des commandes en utilisant torrc...si je ne me trompe pas...again=)

!!! où diable torrc est sur mon pc?

In C:\Users\geekman\AppData\Roaming\Tor je pourrais. j'ai eu vista.

8
répondu lazybob 2009-12-28 15:53:34

j'ai créé un script shell pour moi-même qui vous permet également de le faire à distance (si le serveur Tor tourne sur une autre machine).

disponible ici: https://gist.github.com/kirelagin/9667900 .

4
répondu kirelagin 2014-03-29 12:50:34

Vous n'avez aucun contrôle sur le routage dans le réseau tor (si vous l'aviez, quelqu'un pourrait abuser de cette fonction). Mais tor change déjà la route environ toutes les 10 minutes (au moins selon L'article de la Wikipédia allemande ).

3
répondu Aaron Digulla 2009-12-28 15:29:27

vous pouvez simplement taper ou insérer dans votre script bash:

service tor reload
2
répondu Liam 2017-04-30 12:52:39

Advtor vous donne accès à presque tous les paramètres avancés qui fonctionne sur le réseau tor.

1
répondu Cyril 2014-02-25 09:11:15

j'ai fait quelque chose de différent ici... j'ai écrit un programme PHP qui peut communiquer avec Linux shell. Le programme reprendrait le tor à intervalles réguliers.

ainsi quand tor est redémarré il obtient une nouvelle IP.... Ouais.....!!

exec("/etc/init.d/tor restart",$ioOut);
print_r($ioOut); //output from shell after executing the command
sleep(25);

vous pouvez aussi écrire un script shell pour le faire.

je suis maintenant à la recherche d'une option windows pour ce faire. Le problème est .. dans windows Tor est un service qui ne peut pas être redémarré.

0
répondu Clain Dsilva 2011-02-24 08:52:21

j'ai écrit une bibliothèque pour contrôler Tor avec PHP. Il est installable avec Composer et permet de changer le noeud de sortie.

bien sûr que c'est un logiciel libre: http://dunglas.fr/2013/02/php-torcontrol-a-library-to-control-tor /

0
répondu Kévin Dunglas 2013-02-24 12:52:57