Como alterar o endereço IP fornecido pelo Tor usando o terminal?

19

Existe uma maneira de alterar o endereço IP fornecido pelo Tor a partir do terminal?

Eu tenho o serviço Tor e quero alterar o endereço IP que o Tor me fornece no terminal. Ou, em outras palavras: como solicito um novo endereço IP do Tor na linha de comando?

Austin
fonte
4
uma ainda melhor maneira de dizer isso é como "identidade de mudança" de um terminal
mchid
Adicionei outro comando que encontrei ao executar o daemon tor no Ubuntu em segundo plano.
Mchid 19/07/2014
stackoverflow.com/questions/1969958/…
Ciro Santilli escreveu:

Respostas:

19

Para o tor daemon em execução no Ubuntu, tente primeiro:

killall -HUP tor

Se isso não funcionar, ative a porta de controle no seu arquivo torrc.

Em seguida, defina uma senha para a porta de controle com tor --hash-password password.

Abra uma conexão telnet à porta de controle e emita o comando NEWNYM:

printf 'AUTHENTICATE "password"\r\nSIGNAL NEWNYM\r\n' | nc 127.0.0.1 9051

fontes:

mchid
fonte
11
Para os newbs por aí, primeiro você deve definir a senha com hash no seu torrc assim: askubuntu.com/a/989108/52975
Ciro Santilli
16

Você pode simplesmente digitar ou inserir seu script bash:

service tor reload
Giuseppe Pelligra
fonte
Eu precisava sudo, mas isso funcionou.
Brian Z
Para mim, essa é realmente uma resposta melhor do que a que o @mchid deu. O comando reload acionará o executável do tor em execução para recarregar sua configuração e definir um novo circuito (e, assim, obter um novo IP). A outra resposta matará o executável em execução e o reiniciará. Isso pode levar mais tempo e causar a falha de outros serviços dependentes do proxy do tor.
Alex
Eu não sei por que os outros sugeriu uma solução tão complicado enquanto esta linha simples pode resolver o problema
Mostafa Ahangarha
11
@MostafaAhangarha Porque isso não funciona para várias instâncias de tor #
MewX
4

Método 1: HUP

Mencionado em Alterar endereço IP, fornecido pelo Tor usando o terminal, mas aqui estão mais alguns detalhes:

sudo killall -HUP tor

Em seguida, verifique se o seu IP mudou com:

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

Testado no Ubuntu 17.10 com sudo apt-get install torversão 1.6.0-5.

sudo é necessário, pois o processo é iniciado pela raiz por padrão.

O que um sinal HUP faz exatamente com o daemon Tor está documentado em: https://gitweb.torproject.org/torspec.git/tree/control-spec.txt?id=03aaace9bd9459b0d4bf22a75012acf39d07bcec#n394 e é equivalente a enviar algum comando através do porta de comando.

O Pacote do Navegador 5.0.5 não é afetado por isso, apenas portas daemon como o padrão 9050, que não é usado pelo TBB. Para esse caso de uso, consulte: /tor/1071/how-can-a-new-circuit-happen-without-closing-all-tabs

Se você estiver implantando um exército de IPs Tor, conforme mencionado aqui, poderá enviar seletivamente:

kill -HUP $PID

Método 2: porta de controle

Mencionado por kat :

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

mas para que isso funcione no Ubuntu 17.10, você deve primeiro :

  • habilite a porta de controle descomentando:

    ControlPort 9051
    

    a partir de /etc/tor/torrc

  • Defina a senha vazia, caso contrário, ela fornece 515 Authentication failed: Wrong length on authentication cookie.. Primeira corrida:

    tor --hash-password ''
    

    Isso gera algo como:

    16:D14CC89AD7848B8C60093105E8284A2D3AB2CF3C20D95FECA0848CFAD2
    

    Agora, /etc/tor/torrcatualize a linha:

    HashedControlPassword 16:D14CC89AD7848B8C60093105E8284A2D3AB2CF3C20D95FECA0848CFAD2
    
  • Reinicie o Tor:

    sudo service tor restart
    

Bônus: como verificar se seu IP foi alterado

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

Veja também:

Tópicos relacionados

Ciro Santilli adicionou uma nova foto
fonte
Soluções tão complicadas para uma função tão simples ( get new circuit). Não confio mais em nada. Eu acho que é cheio de bugs e falhas para nos fazer nos expor
adrianTNT
3

Você pode configurar uma porta de controle e usar o script python

from stem import Signal
from stem.control import Controller

with Controller.from_port(port = 9051) as controller:
    controller.authenticate()
    controller.signal(Signal.NEWNYM)

fonte
Você sabe como esperar até que o novo ip seja definido?
Silgon