我的计算机上正在运行 Tor,我需要每五分钟更改一次 Tor 出口节点。例如,如果我通过某个出口节点开始使用 Tor,那么我希望 Tor 在 5 分钟内更改为具有不同 IP 地址的出口节点。我怎样才能做到这一点?
据我所知,Tor 正在监听 localhost 上的 8051 端口。
我可以向这个端口发送什么命令来让 Tor 建立一个新的链,这样我就可以获得另一个 IP 地址?
我的计算机上正在运行 Tor,我需要每五分钟更改一次 Tor 出口节点。例如,如果我通过某个出口节点开始使用 Tor,那么我希望 Tor 在 5 分钟内更改为具有不同 IP 地址的出口节点。我怎样才能做到这一点?
据我所知,Tor 正在监听 localhost 上的 8051 端口。
我可以向这个端口发送什么命令来让 Tor 建立一个新的链,这样我就可以获得另一个 IP 地址?
方法一: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 大军,您可以有选择地发送:
kill -HUP $PID
方法二:控制端口
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/
另请参阅:https ://askubuntu.com/questions/95910/command-for-determining-my-public-ip
相关主题
(echo authenticate '""'; echo signal newnym; echo quit) | nc localhost 9051
这个问题似乎经常出现(1 , 2)所以我只是为它添加了一个常见问题解答条目。如前所述,您可以通过 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)
是的,那是 1(我的意思是 =true =)))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。默认情况下它没有启用(我的意思是这种能力),但我可以让 tor 客户端监听一些端口以使用 torrc 接受命令......如果我没记错......再次=)
!!!我的电脑上的地狱torrc在哪里?
在 C:\Users\geekman\AppData\Roaming\Tor 中,我可以找到 vista。
我为自己制作了一个 shell 脚本,它还可以让您远程执行此操作(如果 Tor 服务器在另一台机器上运行)。
它可以在这里找到:https ://gist.github.com/kirelagin/9667900 。
如果您无法访问控制端口,您可以使用不同的电路来更改您的 IP*。这可以通过指定不同的 socks 用户名来完成:
$ curl -x "socks5://circuit1@127.0.0.1:9050" "https://ifconfig.io/ip"
109.70.100.34
$ curl -x "socks5://circuit2@127.0.0.1:9050" "https://ifconfig.io/ip"
209.222.101.251
$ curl -x "socks5://circuit3@127.0.0.1:9050" "https://ifconfig.io/ip"
54.37.19.83
如果您想在某个时候重用特定 IP,您可以使用之前使用的相同用户名再次获取该 IP。
* 每次退出节点都是随机的,连续两次获得相同IP的概率很小。
如果我错了,请纠正我,我不是 Tor 专家,但这对我有用。
您无法控制 tor 网络中的路由(如果有,有人可能会滥用此功能)。但是 tor 已经大约每 10 分钟切换一次路线(至少根据德语维基百科文章)。
您可以简单地在 bash 脚本中键入或插入:
service tor reload
我在这里做了一些不同的事情......我编写了一个可以与 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 中是一项无法重新启动的服务。
Advtor让您可以访问几乎所有在 Tor 网络上工作的高级设置。
我写了一个库来用 PHP 控制 Tor。它可以与 Composer 一起安装,并允许更改出口节点。
当然它是免费软件:http ://dunglas.fr/2013/02/php-torcontrol-a-library-to-control-tor/