我在计算机上运行Tor,我需要每隔五分钟更改一次Tor退出节点。 例如,如果我通过某个出口节点开始使用Tor,那么在5分钟内我希望Tor更改为具有不同IP地址的退出节点。我怎么能这样做?
Tor,据我所知,正在侦听localhost上的端口8051。
我可以将哪些命令发送到此端口以使Tor构建新链,以便我可以获得另一个IP地址?
答案 0 :(得分:39)
(echo authenticate '""'; echo signal newnym; echo quit) | nc localhost 9051
答案 1 :(得分:30)
方法1:HUP
sudo killall -HUP tor
然后检查您的IP是否已更改:
curl --socks5 127.0.0.1:9050 http://checkip.amazonaws.com/
使用sudo apt-get install tor
版本1.6.0-5在Ubuntu 17.10中测试。
sudo
是必需的,因为该过程默认由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 as mentioned here,您可以有选择地发送:
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/
另见:
相关主题
答案 2 :(得分: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;
和accornig [https://tor-svn.freehaven.net/svn/torctl/trunk/doc/howto.txt]我可以写一个控制器,它将动态改变tor的conf。 默认情况下它没有被淹没(我的意思是这个能力),但我可以让客户端听一些端口接受使用torrc的命令...如果我没有弄错...再次=)
<强> !!!地狱torrc在我的电脑上?
在C:\ Users \ geekman \ AppData \ Roaming \ Tor中我可以,不管它 我得到了远景。
答案 3 :(得分:8)
这个问题似乎经常出现(1,2),所以我刚为它添加了FAQ entry。如前所述,您可以通过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)
答案 4 :(得分:4)
我为自己创建了一个shell脚本,也允许你远程执行此操作(如果Tor服务器在另一台机器上运行)。
答案 5 :(得分:3)
您无法控制托管网络中的路由(如果有,有人可能滥用此功能)。但是,tor已经大约每10分钟切换一次路线(至少根据German Wikipedia article)。
答案 6 :(得分:2)
您只需在bash脚本中键入或插入:
service tor reload
答案 7 :(得分:1)
Advtor可让您访问几乎所有适用于tor网络的高级设置。
答案 8 :(得分:0)
我在这里做了一些不同的事情......我写了一个可以与linux shell通信的PHP程序。该程序将定期重启tor。
所以当tor重新启动时,它会获得一个新的IP ....是啊..... !!
exec("/etc/init.d/tor restart",$ioOut);
print_r($ioOut); //output from shell after executing the command
sleep(25);
您也可以编写一个shell脚本来执行此操作。
我现在正在寻找一个Windows选项来执行此操作。问题是..在Windows中Tor是一种无法重启的服务。
答案 9 :(得分:0)
我已经编写了一个用PHP控制Tor的库。它可以使用Composer进行安装,并允许更改出口节点。
当然是免费软件:http://dunglas.fr/2013/02/php-torcontrol-a-library-to-control-tor/
答案 10 :(得分:0)
如果您无权访问控制端口,则可以使用其他电路来更改IP *。这可以通过指定其他袜子用户名来完成:
curl --location -X POST 'https://api.labs.sophos.com/oauth2/token' --header 'Content-Type: application/x-www-form-urlencoded' --header 'Authorization: Basic {encoded key:secret}' --data-raw 'grant_type=client_credentials' -i
如果您想在某个时候重用特定IP,则可以使用以前使用的相同用户名再次获得该IP。
*每次退出节点都是随机的,并且您有可能连续两次获得相同的IP。
如果我错了,请纠正我,我不是Tor专家,但这对我有用。