如何以编程方式更改Tor出口节点以获取新IP?

laz*_*bob 44 tor

我在计算机上运行Tor,我需要每隔五分钟更改一次Tor退出节点.例如,如果我通过某个出口节点开始使用Tor,那么在5分钟内我希望Tor更改为具有不同IP地址的退出节点.我怎样才能做到这一点?

据我所知,Tor正在侦听localhost上的端口8051.

我可以将哪些命令发送到此端口以使Tor构建新链,以便我可以获得另一个IP地址?

kat*_*kat 42

(echo authenticate '""'; echo signal newnym; echo quit) | nc localhost 9051
Run Code Online (Sandbox Code Playgroud)

  • 为此,您必须首先启用这样的控制端口:http://stackoverflow.com/a/33726166/895245 (5认同)
  • 很棒的技巧,但请注意,这并不是_guarantee_一个新的IP - 只是一个退出节点的更改 - 这当然可能会导致相同的一个;) (3认同)
  • 非常感谢,非常快速地获得新IP (2认同)

Cir*_*四事件 32

方法1:HUP

sudo killall -HUP tor
Run Code Online (Sandbox Code Playgroud)

然后检查您的IP是否已更改:

curl --socks5 127.0.0.1:9050 http://checkip.amazonaws.com/
Run Code Online (Sandbox Code Playgroud)

在Ubuntu 17.10中使用sudo apt-get install tor1.6.0-5版进行了测试.

sudo 因为默认情况下root是由root启动的,所以是必需的.

HUP信号对Tor守护进程的作用记录在:https://gitweb.torproject.org/torspec.git/tree/control-spec.txt?id = 03aaace9bd9459b0d4bf22a75012acf39d07bcec #n394 ,相当于通过以下方式发送一些命令:命令端口.

Browser Bundle 5.0.5不受此影响,只有守护程序端口,如默认的9050,TBB不使用.对于该用例,请参阅:https://tor.stackexchange.com/questions/1071/how-can-a-new-circuit-happen-without-closing-all-tabs

如果您正在部署如此处所述的Tor IP队伍,您可以选择性地发送:

kill -HUP $PID
Run Code Online (Sandbox Code Playgroud)

方法2:控制端口

提到的kat:

(echo authenticate '""'; echo signal newnym; echo quit) | nc localhost 9051
Run Code Online (Sandbox Code Playgroud)

但为了在Ubuntu 17.10上工作,你必须先:

额外奖励:如何检查您的IP是否已更改

curl --socks5 127.0.0.1:9050 http://checkip.amazonaws.com/
Run Code Online (Sandbox Code Playgroud)

也可以看看:

相关主题


Dam*_*ian 9

这个问题似乎要拿出相当频繁(1,2),所以我只是增加了一个FAQ条目它.如前所述,您可以通过NEWNYM信号执行此操作.这是一个通过词干来做的例子......

from stem import Signal
from stem.control import Controller

with Controller.from_port(port = 9051) as controller:
  controller.authenticate()
  controller.signal(Signal.NEWNYM)
Run Code Online (Sandbox Code Playgroud)


laz*_*bob 8

是的,那是1(我的意思是=真=)))tor确实每10分钟更换一次ip​​,但是!如果我重新启动tor - 即使在这10分钟的时间间隔内我也会得到一个新的ip.所以我正在考虑让tor手动发送这个"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;
Run Code Online (Sandbox Code Playgroud)

并且[accps://tor-svn.freehaven.net/svn/torctl/trunk/doc/howto.txt ]我可以编写一个控制器来动态改变tor的conf.默认情况下它没有被使用(我的意思是这个能力),但我可以让客户端听一些端口接受使用torrc的命令...如果我没有弄错...再次=)

!地狱torrc在我的电脑上?

在C:\ Users\geekman\AppData\Roaming\Tor中我可以,我得到了vista.


Aar*_*lla 2

您无法控制 Tor 网络中的路由(如果有的话,有人可能会滥用此功能)。但 Tor 已经大约每 10 分钟切换一次路线(至少根据德国维基百科文章)。

  • 对于那些偶然发现这条线索的人来说,这并不完全正确。您可以使用控制端口并修改一些内部 Tor 设置来基本上创建您自己的电路。http://www.thesprawl.org/memdump/?entry=8 可以帮助您入门。 (5认同)