J'ai Tor en cours d'exécution sur mon ordinateur et je dois changer le nœud de sortie Tor toutes les cinq minutes. Par exemple, si je commence à utiliser Tor via un nœud de sortie, alors dans 5 minutes, je veux que Tor passe à un nœud de sortie avec une adresse IP différente. Comment puis-je faire ceci?
Pour autant que je sache, Tor écoute le port 8051 sur localhost.
Quelles commandes puis-je envoyer à ce port pour que Tor crée une nouvelle chaîne, afin que je puisse obtenir une autre adresse IP?
(echo authenticate '""'; echo signal newnym; echo quit) | nc localhost 9051
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 pour le démon Tor est documenté à: https://gitweb.torproject.org/torspec.git/tree/control-spec.txt?id=03aaace9bd9459b0d4bf22a75012acf39d07bcec#n394 et est équivalent à l'envoi d'une commande via le port de commande.
Browser Bundle 5.0.5 n'est pas affecté par cela, seuls les ports de démon comme le 9050 par défaut, qui n'est pas utilisé par le TBB. Pour ce cas d'utilisation, voir: https://tor.stackexchange.com/questions/1071/how-can-a-new-circuit-happen-without-closing-all-tabs
Si vous déployez une armée d'IP Tor 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 devez d'abord :
activer le port de contrôle en supprimant les commentaires:
ControlPort 9051
de /etc/tor/torrc
Définissez le mot de passe vide, sinon il donne 515 Authentication failed: Wrong length on authentication cookie.
. Première exécution:
tor --hash-password ''
Cela génère quelque chose comme:
16:D14CC89AD7848B8C60093105E8284A2D3AB2CF3C20D95FECA0848CFAD2
Maintenant sur /etc/tor/torrc
mettre à jour la ligne:
HashedControlPassword 16:D14CC89AD7848B8C60093105E8284A2D3AB2CF3C20D95FECA0848CFAD2
Redémarrez Tor:
Sudo service tor restart
Bonus: comment vérifier que votre IP a changé
curl --socks5 127.0.0.1:9050 http://checkip.amazonaws.com/
Voir également:
Sujets associés
Cette question semble se poser assez fréquemment ( 1 , 2 ) donc je viens d'ajouter un entrée FAQ pour cela. Comme mentionné précédemment, vous pouvez le faire via un signal NEWNYM. Voici un exemple pour le faire via stem ...
from stem import Signal
from stem.control import Controller
with Controller.from_port(port = 9051) as controller:
controller.authenticate()
controller.signal(Signal.NEWNYM)
ouais, c'est 1 (je veux dire = vrai =))) que tor change ip toutes les 10 minutes mais! si je redémarre tor - j'obtiendrai un nouvel ip même dans cet intervalle de 10 minutes. donc je pensais à faire tor pour envoyer cette demande "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 accornig à [ https://tor-svn.freehaven.net/svn/torctl/trunk/doc/howto.txt] je peux écrire un contrôleur qui changera la conf de tor à la volée. par défaut, il n'est pas activé (je veux dire cette capacité), mais je peux faire en sorte que le client tor écoute un port pour accepter des commandes en utilisant torrc ... si je ne me trompe pas ... encore une fois =)
!!! où l'enfer torrc est sur mon PC?
Dans C:\Users\geekman\AppData\Roaming\Tor, je pouvais, mais je me suis procuré Vista.
J'ai créé un script Shell pour moi qui vous permet également de le faire à distance (si le serveur Tor fonctionne sur une autre machine).
Il est disponible ici: https://Gist.github.com/kirelagin/96679 .
Vous n'avez aucun contrôle sur le routage dans le réseau tor (si vous l'aviez fait, quelqu'un pourrait abuser de cette fonctionnalité). Mais tor change déjà l'itinéraire toutes les 10 minutes environ (du moins selon le article Wikipedia allemand ).
Vous pouvez simplement taper ou insérer dans votre script bash:
service tor reload
Advtor vous donne accès à presque tous les paramètres avancés qui fonctionnent sur le réseau tor.
J'ai fait quelque chose de différent ici ... j'ai écrit un programme PHP qui peut communiquer avec Linux Shell. Le programme redémarrerait à intervalles réguliers.
Ainsi, lorsque tor est redémarré, il obtient une nouvelle adresse IP .... Ouais ..... !!
exec("/etc/init.d/tor restart",$ioOut);
print_r($ioOut); //output from Shell after executing the command
sleep(25);
Vous pouvez également écrire un script Shell pour ce 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é.
J'ai écrit une bibliothèque pour contrôler Tor avec PHP. Il est installable avec Composer et permet de changer le nœud de sortie.
Bien sûr, c'est un logiciel gratuit: http://dunglas.fr/2013/02/php-torcontrol-a-library-to-control-tor/