Jak zmienić adres IP, który podaje Tor za pomocą terminala?

19

Czy istnieje sposób na zmianę adresu IP, który podaje Tor z terminala?

Mam usługę Tor i chcę zmienić adres IP, który Tor daje mi z terminala. Lub innymi słowy: jak poprosić o nowy adres IP od Tora w wierszu poleceń?

Austin
źródło
4
jeszcze lepszym sposobem na powiedzenie, że jest to „zmiana tożsamości” z terminala
mchid
Dodałem kolejne polecenie, które znalazłem podczas uruchamiania demona Tora na Ubuntu w tle.
mchid
stackoverflow.com/questions/1969958/...
Ciro Santilli 15 改造 中心 法轮功 六四 事件

Odpowiedzi:

19

W przypadku demona Tor działającego na Ubuntu, najpierw spróbuj tego:

killall -HUP tor

Jeśli to nie zadziała, włącz port kontrolny w pliku torrc.

Następnie ustaw hasło dla portu kontrolnego za pomocą hasła --hash-password hasło.

Otwórz połączenie telnet z portem sterowania i wydaj polecenie NEWNYM:

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

źródła:

mchid
źródło
1
W przypadku newbs musisz najpierw ustawić hashowane hasło na swoim torrc w następujący sposób: askubuntu.com/a/989108/52975
Ciro Santilli 事件 改造 中心 法轮功 六四 事件
16

Możesz po prostu wpisać lub wstawić skrypt bash:

service tor reload
Giuseppe Pelligra
źródło
Potrzebowałem sudo, ale to zadziałało.
Brian Z
Dla mnie jest to w rzeczywistości lepsza odpowiedź niż ta, którą podał @mchid. Polecenie przeładowania uruchomi działający plik wykonywalny Tora, aby przeładować jego konfigurację i skonfigurować nowy obwód (i tym samym uzyskać nowy adres IP). Druga odpowiedź zabije działający plik wykonywalny i uruchom go ponownie. Może to potrwać dłużej i spowodować awarię innych usług zależnych od serwera proxy Tora.
Alex
Nie wiem, dlaczego inni zaproponowali tak skomplikowane rozwiązanie, podczas gdy ta prosta linia może rozwiązać problem
Mostafa Ahangarha,
1
@MostafaAhangarha Ponieważ to nie działa dla wielu instancji
Tora
4

Metoda 1: HUP

Wspomniano o zmianie adresu IP, który Tor podaje za pomocą terminala, ale oto kilka dodatkowych szczegółów:

sudo killall -HUP tor

Następnie sprawdź, czy twój adres IP zmienił się za pomocą:

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

Testowany w Ubuntu 17.10 z sudo apt-get install torwersją 1.6.0-5.

sudo jest potrzebny, ponieważ proces jest uruchamiany domyślnie przez rootowanie.

To, co sygnał HUP robi dokładnie demonowi Tora, jest udokumentowane na stronie : https://gitweb.torproject.org/torspec.git/tree/control-spec.txt?id=03aaace9bd9459b0d4bf22a75012acf39d07bcec#n394 i jest równoważne z wysłaniem polecenia za pośrednictwem port dowodzenia.

Nie ma to wpływu na pakiet przeglądarki 5.0.5, tylko porty demona, takie jak domyślny 9050, który nie jest używany przez TBB. Dla tego przypadku użycia patrz: /tor/1071/how-can-a-new-circuit-happen-with--closing-all-tabs

Jeśli wdrażasz armię adresów IP Tora, jak wspomniano tutaj , możesz selektywnie wysyłać:

kill -HUP $PID

Metoda 2: Port kontrolny

Wspomniany przez kat :

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

ale aby to działało na Ubuntu 17.10, musisz najpierw :

  • włącz port kontrolny, usuwając komentarz:

    ControlPort 9051
    

    od /etc/tor/torrc

  • Ustaw puste hasło, w przeciwnym razie daje 515 Authentication failed: Wrong length on authentication cookie.. Pierwszy bieg:

    tor --hash-password ''
    

    To daje coś takiego:

    16:D14CC89AD7848B8C60093105E8284A2D3AB2CF3C20D95FECA0848CFAD2
    

    Teraz /etc/tor/torrczaktualizuj linię:

    HashedControlPassword 16:D14CC89AD7848B8C60093105E8284A2D3AB2CF3C20D95FECA0848CFAD2
    
  • Uruchom ponownie Tor:

    sudo service tor restart
    

Bonus: jak sprawdzić, czy zmienił się twój adres IP

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

Zobacz też:

Powiązane wątki

Ciro Santilli
źródło
Takie skomplikowane rozwiązania dla tak prostej funkcji ( get new circuit). W ogóle nie ufam Torowi. Myślę, że jest pełen błędów i błędów, które zmuszają nas do ujawnienia się
adrianTNT
3

Możesz skonfigurować port kontrolny i użyć skryptu python

from stem import Signal
from stem.control import Controller

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

źródło
Czy wiesz, jak czekać, aż zostanie ustawiony nowy adres IP?
silgon