2014-07-08 2 views
1

Я использую tor-privoxy Ruby gem. Согласно этой странице: https://github.com/pirj/tor-privoxy Я установил пакеты «tor» и «privoxy» на моей установке Arch Linux. Я издал команды:Как правильно использовать tor-privoxy Ruby gem?

sudo systemctl start privoxy.service 
sudo systemctl start tor.service 

Статус услуг, от "systemctl статус privoxy.service" и "статус tor.service systemctl":

● tor.service - Anonymizing Overlay Network 
    Loaded: loaded (/usr/lib/systemd/system/tor.service; enabled) 
    Active: active (running) since Thu 2014-06-26 16:27:44 CEST; 1 weeks 5 days ago 
Main PID: 454 (tor) 
    CGroup: /system.slice/tor.service 
      └─454 /usr/bin/tor -f /etc/tor/torrc 

Jul 08 16:28:28 bridgelinux Tor[454]: Application request when we haven't used client functionality late...gain. 
Jul 08 16:28:40 bridgelinux Tor[454]: We now have enough directory information to build circuits. 
Jul 08 16:28:41 bridgelinux Tor[454]: Tor has successfully opened a circuit. Looks like client functiona...king. 
Jul 08 17:20:05 bridgelinux Tor[454]: Socks version 65 not recognized. (Tor is not an http proxy.) 
Jul 08 17:20:05 bridgelinux Tor[454]: Fetching socks handshake failed. Closing. 
Jul 08 18:01:25 bridgelinux Tor[454]: Socks version 65 not recognized. (Tor is not an http proxy.) 
Jul 08 18:01:25 bridgelinux Tor[454]: Fetching socks handshake failed. Closing. 
Jul 08 18:10:04 bridgelinux systemd[1]: Started Anonymizing Overlay Network. 
Jul 08 18:10:13 bridgelinux systemd[1]: Started Anonymizing Overlay Network. 
Jul 08 18:14:34 bridgelinux systemd[1]: Started Anonymizing Overlay Network. 
Hint: Some lines were ellipsized, use -l to show in full. 

и

● privoxy.service - Privoxy Web Proxy With Advanced Filtering Capabilities 
    Loaded: loaded (/usr/lib/systemd/system/privoxy.service; disabled) 
    Active: active (running) since Tue 2014-07-08 16:09:16 CEST; 2h 8min ago 
    Process: 8554 ExecStart=/usr/bin/privoxy --pidfile /run/privoxy.pid --user privoxy.privoxy /etc/privoxy/config (code=exited, status=0/SUCCESS) 
Main PID: 8555 (privoxy) 
    CGroup: /system.slice/privoxy.service 
      └─8555 /usr/bin/privoxy --pidfile /run/privoxy.pid --user privoxy.privoxy /etc/privoxy/config 

Jul 08 16:09:16 bridgelinux systemd[1]: Started Privoxy Web Proxy With Advanced Filtering Capabilities. 
Jul 08 18:17:55 bridgelinux systemd[1]: Started Privoxy Web Proxy With Advanced Filtering Capabilities. 

Мои рубин сценарий выглядит так:

require 'mechanize' 
require 'tor-privoxy' 
require 'net/telnet' 

def tor 
    privoxy_agent ||= TorPrivoxy::Agent.new '127.0.0.1', '', {8118 => 9050} do |agent| 
    sleep 20 
    puts "New IP is #{agent.ip}" 
    end 
    return privoxy_agent 
end 

def switch_endpoint 
    localhost = Net::Telnet::new("Host" => "localhost", "Port" => "9050", "Timeout" => 10, "Prompt" => /250 OK\n/) 
    localhost.cmd('AUTHENTICATE ""') { |c| print c; throw "Cannot authenticate to Tor" if c != "250 OK\n" } 
    localhost.cmd('signal NEWNYM') { |c| print c; throw "Cannot switch Tor to new route" if c != "250 OK\n" } 
    localhost.close 
end  

agent=tor 

I t показывает, что мой IP-адрес остался оригинальным. Когда я пытаюсь вызвать метод «switch_endpoint», я получаю сообщение об ошибке: «ArgumentError: неперехваченное бросок„не может проверить подлинность Tor“

Однако, когда я эту команду на Баш строке:

torify wget -qO- https://check.torproject.org/ | grep -i congratulations 

я не ошибка, и это показывает, что я был в состоянии подключиться к сети Tor.

что я могу сделать, чтобы сделать Tor-Privoxy работать с Рубином и Механизируйте?

ответ

3

Я столкнулся с той же проблемой, вы можете увидеть в чтобы ваша команда аутентификации была отказана:

Socks version 65 not recognized. (Tor is not an http proxy.)

Мне удалось отправить команду telnet в Tor, используя Socksify вместо tor-privoxy. Вам больше не нужны privoxy, если вы используете socksify.

Вот рабочий пример динамически Swich Tor цепи:

Первый запуск Tor указав пароль, порт управления и носки порт:

tor --CookieAuthentication 0 --HashedControlPassword "" --ControlPort 9050 --SocksPort 50001 

Тогда вы можете попробовать это в рубине:

require 'net/telnet' 
require 'socksify' 
require 'mechanize' 

original_ip = Mechanize.new.get("http://bot.whatismyipaddress.com").content 
puts "original IP is : #{original_ip}" 

# socksify will forward traffic to Tor so you dont need to set a proxy for Mechanize from there 
TCPSocket::socks_server = "127.0.0.1" 
TCPSocket::socks_port = "50001" 
tor_port = 9050 

2.times do 
    #Switch IP 
    localhost = Net::Telnet::new("Host" => "localhost", "Port" => "#{tor_port}", "Timeout" => 10, "Prompt" => /250 OK\n/) 
    localhost.cmd('AUTHENTICATE ""') { |c| print c; throw "Cannot authenticate to Tor" if c != "250 OK\n" } 
    localhost.cmd('signal NEWNYM') { |c| print c; throw "Cannot switch Tor to new route" if c != "250 OK\n" } 
    localhost.close  
    sleep 5 

    new_ip = Mechanize.new.get("http://bot.whatismyipaddress.com").content 
    puts "new IP is #{new_ip}" 
end 
Смежные вопросы