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

aiazj4mn  于 2023-08-03  发布在  Linux
关注(0)|答案(6)|浏览(143)

我是Tor的新手,我觉得应该考虑多个Tor。我在这里提到的多个tor不仅是多个示例,而且每个示例都使用不同的代理端口,就像这里所做的http://www.howtoforge.com/ultimate-security-proxy-with-tor
我想从四个人开始。然而,本教程仅适用于Arch Linux,我使用的是无头EC2 Ubuntu 64 bits。这真的是一个痛苦的经历Arch和Ubuntu之间的差异。在这里,我想知道是否有人可以提供一些帮助,以实现我的想法简单。
1.四个tor同时运行,每个都有一个单独的端口,privoxy或polipo或任何东西,一旦它工作就可以了。如:8118 <- Privoxy <- TOR <-9050 8129 <- Privoxy <- TOR <-9150 8230 <- Privoxy <- TOR <-9250 8321 <- Privoxy <- TOR <-9350
1.这样,如果我尝试返回127.0.0.1:8118、8129、8230和8321的ip,它们应该返回四个不同的ip,这表明有四个不同的Tor同时运行。然后,几分钟后,再次检查,他们四个应该都有一个新的ip了。
我知道我简单的“梦想”可以在很多方面实现,但是...我不仅是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是终端的意思?

vd2z7a6w

vd2z7a6w1#

创建四个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服务器。每一个都会打开一个不同的回路,这就是你想要的。

xtupzzrd

xtupzzrd2#

建议不要使用Chaining Tor。你可能会得到更糟的匿名性,而不是更好的匿名性。
这样做会产生未定义和潜在的不安全行为。然而,从理论上讲,你可以得到六跳而不是三跳,但并不能保证你会得到三跳--你可能会得到相同的跳,可能是相反的或混合的顺序。目前尚不清楚这是否安全。从来没有讨论过。
你可以选择一个入口/出口点,但当你把路线选择留给Tor时,你会得到Tor所能提供的最佳安全性;覆盖入口/出口节点会以我们无法理解的方式扰乱匿名性。因此,Tor over Tor的使用是非常不鼓励的。
如果你比Tor的开发者更聪明,你只应该搞乱Tor的路由算法。
Privoxy / polipo的使用很久以前就被Tor项目弃用了。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是Tor,不是Tor。
注意,当使用流隔离时,通过不同的电路并不能保证得到不同的Tor出口节点。有时Tor只会使用不同的入口保护或中间中继。This is normal.

mzsu5hc0

mzsu5hc03#

我试过Torrc.1、Torrc.2等等,但都不管用。
然而,这一个工作:
1.通过以下方式停止tor进程:第一个月
1.打开gedit /etc/tor/torrc(如果你不是root用户,把sudo放在它前面,以root用户身份访问)
1.搜索SocksPort 9050
1.现在,将您想要的端口设置为流端口(SocksPort 9060、SocksPort 9070、SocksPort 9080......等)
1.搜索ControlPort 9051
1.现在,将您想要成为的任何端口作为流端口(ControlPort 9061、ControlPort 9071、ControlPort 9081......等)注意控制端口始终为SOCKSPORT+1
1.再次启动tor进程:/etc/init.d/tor start
1.检查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表示全文。

xzabzqsa

xzabzqsa4#

创建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 i 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更改为计划使用它的用户的用户/组。
之后就很容易开始了,您可以使用相应的配置文件(例如:/usr/bin/tor -f "${config}/torrc_3"
要使用它,你需要做的就是导出变量TORSOCKS_CONF_FILE以指向相应的torsocks.conf文件:
例如$> export TORSOCKS_CONF_FILE="${config}/torsocks_3.conf"
接下来,您可以从该特定shell对任何应用程序进行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

beq87vna

beq87vna5#

1.从官方网站下载Tor Browser for Windows
1.多次提取Tor Browser(每次更改目标文件夹名称)
1.跳过第一个Tor浏览器,并按照步骤4-6对其余的Tor浏览器示例进行操作。
1.启动Tor Browser,在搜索栏中搜索about.config
1.在tor-browser的配置窗口中搜索扩展名.torlauncher.start_tor
1.将start_tor的值从TRUE更改为FALSE
1.对于除最后一个示例之外的所有tor浏览器示例,请遵循步骤8。
1.后藤TorBrowser,数据,Tor,torrec-defaults。在文件末尾添加“SocksPort 9153”并保存该文件。对于每个新的tor浏览器示例,将9153递增1。
来源:How to run Multiple Tor Browsers with different IPs

ojsjcaue

ojsjcaue6#

在Ubuntu 23.04、Tor 0.4.7.13上测试的单个设置脚本

这是https://stackoverflow.com/a/34213834/895245的稍微精简和简化的版本
托尔陆军

#!/usr/bin/env bash
set -eux
n=${1:-10}
config_dir=~/etc/tor
rm -rf "$config_dir"
mkdir -p "$config_dir"
cd "${config_dir}"
for i in `seq $n`; do
  cp /etc/tor/torrc torrc_$i
  sed -i "s/^#SocksPort 9050.*/SocksPort $((9050+${i}))/;s|^#DataDirectory /var/lib/tor|DataDirectory /var/lib/tor${i}|" torrc_$i
  cp /etc/tor/torsocks.conf torsocks_$i.conf
  sed -i "s/server_port = 9050/server_port = $((9050+${i}))/" torsocks_${i}.conf
  sudo mkdir -p /var/lib/tor$i
  sudo chmod -R --reference /var/lib/tor /var/lib/tor${i}
  sudo chown -R $USER:$USER /var/lib/tor${i}
done
for i in `seq $n`; do
  nohup tor -f "${config_dir}/torrc_$i" >$i.log 2>&1 &
done

字符串
用法:启动10个独立的tor示例,可能IP不同:

tor-army 10


Tor端口从9051开始按顺序分配。每个示例的stdout都转到一个文件~/etc/tor/1(对于9051),2(对于9052)等等。
例如,使用https://superuser.com/questions/404732/how-to-use-wget-with-tor-bundle-in-linux中提到的torsocks,并根据https://unix.stackexchange.com/questions/22615/how-can-i-get-my-external-ip-address-in-a-shell-script/250794#250794检查checkip.amazonaws.com的IP地址:

torsocks -P 9051 curl http://checkip.amazonaws.com
torsocks -P 9052 curl http://checkip.amazonaws.com


每一个都应该产生不同的价值。
如何通过编程更改Tor退出节点以获取新IP?

killall -HUP tor


或者改变电路仅用于在给定端口上侦听tor:

port=9051
pid="$(netstat -nlp | awk '$4~":'"$port"'"{ gsub(/\/.*/,"",$7); print $7 }')"
kill -HUP "$pid"


停止所有tor示例:

pkill tor


请注意,截至2023年,只有大约2000个Tor退出票据:https://metrics.torproject.org/relayflags.html,所以它不像你可以从它得到一百万个IP!你需要a proper botnet
下面是一个用于IP节流规避目的的此类torarmy的示例用法框架。它试图平衡Tor网络上的负载,而不会太贪婪,如果发现任何错误,则为示例节点切换电路。

#!/usr/bin/env bash

ntor=${2:-100}

dowork() (
  i=$1
  j=0
  out=out$i
  out_err=err$i
  out_err_log=log$i
  port=$((9050 + $i))
  pid="$(netstat -nlp 2>/dev/null | awk '$4~":'"$port"'"{ gsub(/\/.*/,"",$7); print $7 }')"
  while IFS= read -r inval; do
    response="$(torsocks -P "$port" curl -s --connect-timeout 10 -w "%{http_code}" https://TARGETSITE.com/key=$inval 2>&1 )"
    if [ "$?" -ne 0 ]; then
      echo $i $j $inval err
      echo $inval >> "$out_err"
      echo $inval >> "$out_err_log"
      echo $response >> "$out_err_log"
      kill -HUP $pid
    else
      http_code=$(tail -n1 <<< "$response")
      content=$(sed '$ d' <<< "$response")
      echo $i $j $inval $http_code
      if [ $http_code -eq 200 ]; then
        if [ -n "$content" ]; then
          echo "$content" >> "$out"
        fi
      else
        echo "$inval" >> "$out_err"
        if [ $http_code -eq 429 ]; then
          kill -HUP $pid
        fi
      fi
    fi
    j=$((j+1))
    sleep 1
  done < input$i.txt
)
for i in `seq $ntor`; do
  dowork $i &
done
wait
trap "trap - SIGTERM && kill -- -$$" SIGINT SIGTERM EXIT

相关问题