如何使用终端更改Tor给定的IP地址?


19

是否可以通过终端更改Tor提供的IP地址?

我有Tor服务,我想更改Tor从终端给我的IP地址。换句话说:如何在命令行上从Tor那里请求一个新的IP地址?


4
一种更好的说法是如何从终端“更改身份”
mchid 2014年

我添加了在后台在Ubuntu上运行Tor守护程序时找到的另一个命令。
mchid 2014年

Answers:


19

对于在Ubuntu上运行的tor守护程序,请首先尝试以下操作:

killall -HUP tor

如果这样不起作用,请在torrc文件中启用控制端口。

然后,使用tor --hash-password password设置控制端口的密码。

打开与控制端口的telnet连接,然后发出NEWNYM命令:

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

资料来源:


1
对于那里的新手,您必须先在torrc上设置哈希密码,如下所示:askubuntu.com/a/989108/52975
Ciro Santilli新疆改造中心法轮功六四事件

16

您可以简单地在bash脚本中键入或插入:

service tor reload

我需要sudo,但是这样做有效。
布赖恩·Z

对我来说,这实际上是一个@mchid给出的更好的答案。reload命令将触发正在运行的tor可执行文件,以重新加载其配置并设置新电路(从而获得新IP)。另一个答案将杀死正在运行的可执行文件并重新启动它。这可能需要更长的时间,并导致依赖于tor代理的其他服务失败。
亚历克斯

我不知道为什么其他人建议这么复杂的解决方案,而这条简单的线路可以解决问题
Mostafa Ahangarha

1
@MostafaAhangarha因为这不适用于多个tor实例
MewX

4

方法1:HUP

提到了由Tor使用终端给定的Change IP address,但这里有一些详细信息:

sudo killall -HUP tor

然后使用以下方法检查您的IP是否已更改:

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

已在Ubuntu 17.10中以sudo apt-get install tor1.6.0-5版进行测试。

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

方法2:控制端口

提到凯特

(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/

也可以看看:

相关主题


如此简单的函数(get new circuit)的复杂解决方案。我不再信任托尔了。我认为它充满了错误和小故障,使我们暴露自己
adrianTNT

3

您可以设置控制端口并使用python脚本

from stem import Signal
from stem.control import Controller

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

您知道如何等待新的IP设置吗?
silgon
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.