您正在使用HTTP代理类,因此您必须提供HTTP代理的IP。 Tor 浏览器有not捆绑 HTTP 代理。
因此,您可以安装一些代理软件,例如Privoxy http://www.privoxy.org/并将其配置为使用 Tor 的 SOCKS:
In 配置.txt
forward-socks4a / 127.0.0.1:9050 .
然后使用 Privoxy 的默认值监听地址在你的脚本中:
proxy = Net::HTTP::Proxy('127.0.0.1',8118)
or使用 SOCKSify。
根据docs http://socksify.rubyforge.org/:
require 'socksify/http'
uri = URI.parse('http://rubyforge.org/')
Net::HTTP.SOCKSProxy('127.0.0.1', 9050).start(uri.host, uri.port) do |http|
http.get(uri.path)
end
不需要额外的软件..
Third解决方案是使用 SOCKSify,如下所示:
$ socksify_ruby localhost 9050 script.rb
它重定向 Ruby 脚本的所有 TCP 连接,这意味着您根本不需要使用任何代理代码。
为了澄清起见,您必须了解 127.0.0.1:9050 是 Tor 的 SOCKS 地址,127.0.0.1:8118 是 Privoxy 的地址。