【问题标题】:How to run multiple Tor processes at once with different exit IPs?如何使用不同的出口 IP 一次运行多个 Tor 进程?
【发布时间】:2012-12-28 13:49:59
【问题描述】:

我是 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

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

我知道我的简单“梦想”可以通过多种方式实现,但是……我不仅是 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 表示终端,这是什么意思?

【问题讨论】:

标签: linux proxy screen-scraping socks tor


【解决方案1】:

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

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

SocksPort 9050
ControlPort 9051
DataDirectory /var/lib/tor

为每个 torrc 文件使用不同的资源,例如对于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 服务器。每个人都会打开不同的电路,这就是你想要的。

【讨论】:

  • 我只是补充一点,每个 IP 地址只能运行两个中继。由于您对运行客户端感兴趣,因此此限制无关紧要。请记住,每个客户端电路都会对 Tor 网络造成负载。事实上,目前有一个由数百万客户端组成的僵尸网络。每个客户端什么都不做,只是创建一个客户端电路,使 Tor 网络过载。
  • 我认为您还需要更改DataDirectory 以获得每个实例的唯一数据目录,否则您会得到It looks like another Tor process is running with the same data directory.。或者至少,我做到了。
  • 请注意端口 9051 是 TOR 控制器的默认端口,因此我建议为其他 TOR 进程使用不同的端口。
  • 如何像默认的torrc一样在系统启动时同时启动所有这些实例作为进程?
  • 如何停止/重启特定实例?
【解决方案2】:

链接 Tor 是 recommended against。您可能会得到更差的匿名性,而不是更好的匿名性。

这样做会产生未定义且可能不安全的行为。然而,理论上,你可以得到 6 个跃点而不是 3 个跃点,但不能保证你会得到三个不同的跃点——你最终可能会得到相同的跃点,可能是相反的或混合的顺序。目前尚不清楚这是否安全。从来没有讨论过。

您可以选择一个入口/出口点,但是当您将路线选择留给 Tor 时,您将获得 Tor 可以提供的最佳安全性;覆盖进入/退出节点可能会以我们不理解的方式破坏您的匿名性。因此,强烈建议不要使用 Tor 而不是 Tor。

如果你比 Tor 开发者更聪明,你应该只弄乱 Tor 的路由算法。

很久以前,Tor 项目已经弃用了 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.

【讨论】:

  • 我曾经尝试使用打开的 10 个通道,我可以清楚地看到有一些重复的跃点最终使用相同的 ip。
  • 注意,当使用流隔离时,通过不同的电路并不能保证得到不同的 Tor 出口节点。有时 Tor 只会使用不同的入口保护或中间中继。 This is normal. - 将此添加到我的原始答案中。
  • 如果您看到自己最终使用相同的 IP 地址,这意味着没有足够的出口节点。去主持一些修复它!
  • 我不明白他们如何“发现那些没有阅读过他们网站的人”被那些称之为 TOR 的人,我没有意识到我们都被要求使用与作者相同的风格约定.虽然我会继续使用“Tor”,但在某些文件中将其称为“TOR”之前,我肯定阅读了大部分官方网站。
  • 可以用这种方法控制单个端口吗?例如,使用端口9051 触及所有端口。
【解决方案3】:

制作一个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"

接下来,您可以从该特定外壳中 torify / torsocks 任何应用程序,它将使用 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】:

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

    然而这个工作:

    1. 通过以下方式停止 tor 进程:/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. 再次启动tor进程:/etc/init.d/tor start
    8. 检查tor状态/etc/init.d/tor status

    它应该显示类似的内容:

    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来完整显示。

    【讨论】:

    • 完美。谢谢。现在要弄清楚如何决定实例化将使用哪个袜子......
    【解决方案5】:
    1. 从官网下载 Tor Browser for Windows
    2. 多次提取 Tor 浏览器(每次更改目标文件夹名称)
    3. 跳过第一个 Tor 浏览器并按照步骤 4-6 处理剩余的 Tor 浏览器实例。
    4. 启动 Tor 浏览器,在搜索栏中搜索 about.config
    5. 在tor-browser的配置窗口中搜索extensions.torlauncher.start_tor
    6. 将 start_tor 的值从 TRUE 更改为 FALSE
    7. 对除最后一个之外的所有 Tor 浏览器实例执行第 8 步。
    8. 转到 TorBrowser、数据、Tor、torrec-defaults。在文件末尾添加“SocksPort 9153”并保存文件。对于每个新的 Tor 浏览器实例,将 9153 递增 1。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-17
      • 2013-10-21
      • 2019-07-06
      • 1970-01-01
      • 2020-06-26
      相关资源
      最近更新 更多