Ответ 1
(echo authenticate '""'; echo signal newnym; echo quit) | nc localhost 9051
У меня есть Tor, работающий на моем компьютере, и мне нужно изменить выход Tor node каждые пять минут. Например, если я начну использовать Tor через какой-то выход node, то через 5 минут я хочу, чтобы Tor изменился на выход node с другим IP-адресом. Как я могу это сделать?
Tor, насколько я знаю, слушает порт 8051 на локальном хосте.
Какие команды я могу отправить на этот порт, чтобы заставить Tor построить новую цепочку, чтобы я мог получить другой IP-адрес?
(echo authenticate '""'; echo signal newnym; echo quit) | nc localhost 9051
Метод 1: HUP
sudo killall -HUP tor
Затем проверьте, изменился ли ваш IP-адрес:
curl --socks5 127.0.0.1:9050 http://checkip.amazonaws.com/
Протестировано в Ubuntu 17.10 с sudo apt-get install tor
версии 1.6.0-5.
sudo
необходим, поскольку процесс запускается по умолчанию по умолчанию.
То, что сигнал HUP делает точно для демона Tor, документируется по адресу: https://gitweb.torproject.org/torspec.git/tree/control-spec.txt?id=03aaace9bd9459b0d4bf22a75012acf39d07bcec#n394 и эквивалентно отправке некоторой команды с помощью команды порт.
Браузер Bundle 5.0.5 не влияет на это, только порты демона, такие как 9050 по умолчанию, которые не используются TBB. Для этого случая использования см.: https://tor.stackexchange.com/questions/1071/how-can-a-new-circuit-happen-without-closing-all-tabs
Если вы развертываете армию Tor IPs как указано здесь, вы можете выборочно отправить:
kill -HUP $PID
Способ 2: порт управления
Упоминается kat:
(echo authenticate '""'; echo signal newnym; echo quit) | nc localhost 9051
но для этого, чтобы работать с Ubuntu 17.10, вы должны сначала:
включить порт управления, раскомментировав:
ControlPort 9051
из /etc/tor/torrc
Задайте пустой пароль, иначе он даст 515 Authentication failed: Wrong length on authentication cookie.
. Первый запуск:
tor --hash-password ''
Это выводит что-то вроде:
16:D14CC89AD7848B8C60093105E8284A2D3AB2CF3C20D95FECA0848CFAD2
Теперь на /etc/tor/torrc
обновите строку:
HashedControlPassword 16:D14CC89AD7848B8C60093105E8284A2D3AB2CF3C20D95FECA0848CFAD2
Перезапустить Tor:
sudo service tor restart
Бонус: как проверить, что ваш IP изменен
curl --socks5 127.0.0.1:9050 http://checkip.amazonaws.com/
См. также:
Связанные темы
да, что 1 (i mean = true =))), что tor меняет ip каждые 10 минут но! если я перезапущу tor - я получу новый ip даже в этом интервале 10 минут. поэтому я думал о том, чтобы заставить отправить этот запрос "change_ip" вручную. см. этот код (записанный в соответствии с 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;
и accornig to [https://tor-svn.freehaven.net/svn/torctl/trunk/doc/howto.txt] Я могу написать контроллер, который изменит конфигурацию на лету. по умолчанию он не enebled (я имею в виду эту способность), но я могу заставить клиента прослушивать какой-то порт для принятия команд с использованием torrc... если я не ошибаюсь... again =)
!!! где ад torrc находится на моем компьютере?
В C:\Users\geekman\AppData\Roaming\Tor, я мог бы, n пальцем я получил vista.
Этот вопрос выглядит довольно часто (1, 2), поэтому я просто добавил a часто задаваемые вопросы. Как упоминалось ранее, вы можете сделать это с помощью сигнала NEWNYM. Вот пример для этого через stem...
from stem import Signal
from stem.control import Controller
with Controller.from_port(port = 9051) as controller:
controller.authenticate()
controller.signal(Signal.NEWNYM)
Я создал для себя оболочку script, которая также позволяет делать это удаленно (если Tor-сервер работает на другой машине).
Он доступен здесь: https://gist.github.com/kirelagin/9667900.
У вас нет контроля над маршрутизацией в сети tor (если бы у вас было, кто-то мог бы злоупотреблять этой функцией). Но tor уже переключает маршрут примерно каждые 10 минут (по крайней мере, согласно немецкая статья Википедии).
Advtor дает вам доступ почти ко всем расширенным настройкам, которые работают над сетью.
Вы можете просто ввести или вставить в свой bash script:
service tor reload
Я сделал что-то другое здесь... Я написал программу PHP, которая может общаться с оболочкой linux. Программа перезапускает тор через равные промежутки времени.
Итак, когда tor перезагружен, он получает новый IP-адрес... Да.....!!
exec("/etc/init.d/tor restart",$ioOut);
print_r($ioOut); //output from shell after executing the command
sleep(25);
Вы также можете написать оболочку script, чтобы сделать это.
Теперь я ищу опцию windows для этого. Проблема в том, что в Windows Tor это сервис, который нельзя перезапустить.
Я написал библиотеку для управления Tor с PHP. Он устанавливается с помощью Composer и позволяет изменить выход node.
Конечно, это бесплатное программное обеспечение: http://dunglas.fr/2013/02/php-torcontrol-a-library-to-control-tor/