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?
10 réponses
(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 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:
- https://tor.stackexchange.com/questions/100/can-tor-be-used-with-applications-other-than-web-browsers
- /q/find-a-private-field-with-reflection-14457/"https://superuser.com/questions/449060/tor-how-to-have-different-ip-address-for-every-page-request">https://superuser.com/questions/449060/tor-how-to-have-different-ip-address-for-every-page-request
- /q/how-do-you-validate-a-binary-search-tree-72514/"https://tor.stackexchange.com/questions/100/can-tor-be-used-with-applications-other-than-web-browsers" rel="nofollow noreferrer"> https://tor.stackexchange.com/questions/100/can-tor-be-used-with-applications-other-than-web-browsers
- https://askubuntu.com/questions/95910/command-for-determining-my-public-ip
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)
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.
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 .
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 ).
vous pouvez simplement taper ou insérer dans votre script bash:
service tor reload
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é.
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 /