如何使用不同的退出IP一次运行多个Tor进程?

时间:2013-01-14 15:18:42

标签: linux proxy screen-scraping socks tor

我是Tor的新手,我觉得应该考虑多个Tors。我在这里提到的多个转发器不仅是多个实例,而且每个都使用不同的代理端口,就像这里所做的那样 http://www.howtoforge.com/ultimate-security-proxy-with-tor

我正在努力开始使用4个Tors。但是,本教程仅适用于Arch Linux,而我使用的是无头EC2 ubuntu 64位。通过Arch和Ubuntu之间的差异真的很痛苦。在这里,我想知道是否有人可以提供一些帮助来明确地实现我的想法。

  1. 四个Tors同时运行,每个Tors都有一个单独的端口,privoxy或polipo或一旦它工作正常。 喜欢: 8118< - Privoxy< - TOR< - 9050 8129< - Privoxy< - TOR< - 9150 8230< - Privoxy< - TOR< - 9250 8321< - Privoxy< - TOR< - 9350

  2. 这样,如果我尝试返回127.0.0.1:8118,8129,8230和8321的ip,它们应该返回四个不同的ips,这表示有四个不同的Tors同时运行。然后,几分钟后,再次检查,他们四个应该再次有一个新的ips。

  3. 我知道我的简单'梦想'可以在很多方面实现,但是......我不仅是Tor的新手,而且还是bash和python ...这就是为什么我来这里看看是否有些你可以点亮我。

    这些链接可能很有用:

    http://blog.databigbang.com/distributed-scraping-with-multiple-tor-circuits/ https://www.torservers.net/wiki/setup/server#multiple_tor_processes 最好,

    顺便说一句,如果我跑了     $ ps -A | grep 'tor' 我有几个实例,但是有“?”在tty栏下,这是什么意思,因为我知道tty意味着终端?

5 个答案:

答案 0 :(得分:32)

创建四个torrc文件,例如/etc/tor/torrc.1.4

在每个文件中,编辑以下行:

SocksPort 9050
ControlPort 9051
DataDirectory /var/lib/tor

为每个torrc文件使用不同的资源,例如: for torrc.1

SocksPort 9060
ControlPort 9061
DataDirectory /var/lib/tor1

代表torrc.2

SocksPort 9062
ControlPort 9063
DataDirectory /var/lib/tor2

等等。

只包含上述行的配置文件将起作用:如果您愿意,可以从默认模板中删除每隔一行。

DataDirectory也可以相对于启动tor的当前目录,例如:

DataDirectory d1

然后开始这样:

tor -f /etc/tor/torrc.1  
tor -f /etc/tor/torrc.2

等等其他两个文件。

这将在四个端口上创建四个不同的Socks5服务器。每个人都会打开一个不同的电路,这就是你想要的。

答案 1 :(得分:15)

Chaining Tor是recommended against。你可能会变得更加匿名,而不是更好的匿名。

  

这样做会产生未定义且可能不安全的行为。但是,从理论上讲,你可以获得6个跃点而不是3个,但不能保证你会获得三个不同的跃点 - 你可能会以相同的跃点结束,可能是反向或混合顺序。目前尚不清楚这是否安全。它从未被讨论过。

     

您可以选择一个进入/退出点,但是当您将路线选择留给Tor时,您可以获得Tor可以提供的最佳安全性;覆盖进入/退出节点可能会以我们不理解的方式扰乱您的匿名性。因此,非常不鼓励使用Tor over Tor。

如果你比Tor开发人员更聪明,你应该只使用Tor的路由算法。

很久以前,The Tor Project已经弃用了privoxy / polipo。您recommended仅使用Tor Browser。只有Tor浏览器为您提供统一的网页指纹,您将无法脱颖而出。

由于Tor版本0.2.3,不同的Socks, - Dns-或TransPorts经过不同的电路,因此阻止了身份相关。这个术语是流隔离。得到这个,你可以添加到torrc ......

SocksPort 9050
SocksPort 9052
SocksPort 9053
SocksPort 9054
#...

......他们都会想到不同的电路。

使用Tor浏览器时,您还可以使用Tor Button的新身份功能。单击Tor按钮(葱)并选择新标识。这将重置所有浏览器状态并更改Tor的电路。

And it's Tor, not TOR.

注意,使用流隔离时,通过不同的电路并不能保证获得不同的Tor出口节点。有时Tor只会使用不同的门禁或中间继电器。 This is normal.

答案 2 :(得分:1)

我尝试了torrc.1,torrc.2等......但它没有用。

然而这个有用:

  1. 通过以下方式停止托管流程:/etc/init.d/tor stop
  2. 打开gedit /etc/tor/torrc(如果您没有root,请将sudo放在它之前以root用户身份访问)
  3. 搜索SocksPort 9050
  4. 现在将您想要的任何端口作为流端口(SocksPort 9060,SocksPort 9070,SocksPort 9080 ......等)。
  5. 搜索ControlPort 9051
  6. 现在将您想要的任何端口作为流端口(ControlPort 9061,ControlPort 9071,ControlPort 9081 ......等)通知控制端口始终为SOCKSPORT + 1
  7. 再次启动托管流程:/etc/init.d/tor start
  8. 检查托管状态/etc/init.d/tor status
  9. 它应该显示类似的内容:

    tor.service - Anonymizing overlay network for TCP
       Loaded: loaded (/lib/systemd/system/tor.service; enabled; vendor preset: enabled)
       Active: active (running) since Fri 2016-05-13 22:18:21 GST; 1s ago
      Process: 10259 ExecReload=/bin/kill -HUP ${MAINPID} (code=exited, status=0/SUCCESS)
      Process: 10319 ExecStartPre=/usr/bin/tor --defaults-torrc /usr/share/tor/tor-service-defaults-torrc -f /etc/tor/torrc --RunAsDaemon 0 --verify-config (code=exited, status=0/SUCCESS)
      Process: 10317 ExecStartPre=/usr/bin/install -Z -m 02750 -o debian-tor -g debian-tor -d /var/run/tor (code=exited, status=0/SUCCESS)
     Main PID: 10322 (tor)
       CGroup: /system.slice/tor.service
               └─10322 /usr/bin/tor --defaults-torrc /usr/share/tor/tor-service-defaults-torrc -f /etc/tor/torrc --RunAsDaemon 0
    
    May 13 22:18:20 momen-Lenovo tor[10322]: May 13 22:18:20.860 [notice] Tor v0.2.6.10 (git-71459b2fe953a1c0) running on Linux with Li... 1.2.8.
    May 13 22:18:20 momen-Lenovo tor[10322]: May 13 22:18:20.860 [notice] Tor can't help you if you use it wrong! Learn how to be safe ...warning
    May 13 22:18:20 momen-Lenovo tor[10322]: May 13 22:18:20.860 [notice] Read configuration file "/usr/share/tor/tor-service-defaults-torrc".
    May 13 22:18:20 momen-Lenovo tor[10322]: May 13 22:18:20.860 [notice] Read configuration file "/etc/tor/torrc".
    May 13 22:18:20 momen-Lenovo tor[10322]: May 13 22:18:20.863 [notice] Opening Socks listener on 127.0.0.1:9050
    May 13 22:18:20 momen-Lenovo tor[10322]: May 13 22:18:20.863 [notice] Opening Socks listener on 127.0.0.1:9060
    May 13 22:18:20 momen-Lenovo tor[10322]: May 13 22:18:20.863 [notice] Opening Control listener on 127.0.0.1:9051
    May 13 22:18:20 momen-Lenovo tor[10322]: May 13 22:18:20.863 [notice] Opening Control listener on 127.0.0.1:9061
    May 13 22:18:20 momen-Lenovo tor[10322]: May 13 22:18:20.863 [notice] Opening Control listener on /var/run/tor/control
    May 13 22:18:21 momen-Lenovo systemd[1]: Started Anonymizing overlay network for TCP.
    

    提示:有些行已经过椭圆化,请使用-l完整显示。

答案 3 :(得分:0)

制作tor配置目录:
$> mkdir -p ~/configuration_files/tor
$> config=~/configuration_files/tor
$> cd "${config}"

/etc/tor/torrc复制到配置目录并根据需要制作任意数量的副本:例如10
printf "torrc_%0.2s\n" {1..10} | xargs -I {} /bin/cp /etc/tor/torrc "${config}{}"

/etc/torsocks.conf复制到配置目录并根据需要制作任意数量的副本:例如与上述10相同 printf "torsocks_%0.2s.conf\n" {1..10} | xargs -I {} /bin/cp /etc/torsocks.conf "${config}/{}"

创建新数据目录并修复所有权/权限:
$> sudo mkdir /var/lib/tor{1..10}

编辑配置文件以使非碰撞对应的端口号:

for a in {1..10}; do 
 sed -i "s/^#SocksPort 9050.*/SocksPort $((9050+${i}))/;s|^#DataDirectory /var/lib/tor|DataDirectory /var/lib/tor${i}|" torrc_${i}
 sed -i "s/server_port = 9050/server_port = $((9050+${i}))/" torsocks_${i}.conf
 sudo chmod -R --reference /var/lib/tor /var/lib/tor${i}
 sudo chown -R CHANGETHIS:CHANGETHIS /var/lib/tor${i} 
done 

注意:将CHANGETHIS更改为计划使用它的用户/组。

之后很容易上手,你可以使用相应的配置文件启动tor的各个实例 例如。 /usr/bin/tor -f "${config}/torrc_3"

要使用它,您需要做的就是导出变量TORSOCKS_CONF_FILE以指向相应的torsocks.conf文件:
例如。 $> export TORSOCKS_CONF_FILE="${config}/torsocks_3.conf"

接下来,您可以从该特定shell中激活/挫败任何应用程序,它将使用torsocks_3.conf代理。
尝试:$> torify bash
     $> curl www.ipmango.com/api/myip

要更改为另一个代理,只需使用其torrc文件启动相应的tor,然后导出TORSOCKS_CONF_FILE变量以指向新配置。

这是一个简单的别名来完成这项工作,在你按照上面的设置完成并安装了roxterm之后。它将检查netstat以查看代理是否已经启动,如果没有,它将在单独的shell窗口中启动它。

alias prox='_(){ proxy=${1:-1}; config_base="~/configuration_files/tor"; port=$((9050+${proxy})); netstat -an | { ! grep -q "127.0.0.1:${port}"; } && roxterm -e bash -c "/usr/bin/tor -f \"${config_base}/torrc_${proxy}\"; bash"; export TORSOCKS_CONF_FILE="${config_base}/torsocks_${proxy}.conf"; }; _'

使用它:

$> prox 4 
$> torify bash 

答案 4 :(得分:0)

  1. 从官方网站下载Windows版Tor浏览器
  2. 多次提取Tor浏览器(每次更改目标文件夹名称)
  3. 跳过第一个Tor浏览器,然后对其余的Tor浏览器实例执行步骤4-6。
  4. 启动Tor浏览器,在搜索栏中搜索about.config
  5. 在tor浏览器的配置窗口中搜索extensions.torlauncher.start_tor
  6. 将start_tor的值从TRUE更改为FALSE
  7. 对于所有Tor浏览器实例(除了最后一个实例)遵循步骤8。
  8. 转到TorBrowser,Data,Tor,torrec默认值。在文件末尾添加“ SocksPort 9153”并保存文件。每个新的Tor浏览器实例将9153递增1。

来源:How to run Multiple Tor Browsers with different IPs