通过TOR使用节点发出HTTP请求

我对节点和TOR都比较陌生。 我试图通过TOR使用节点应用程序发送请求。 我使用socks5-HTTP-clientbuild立了一个基本的应用程序。 此外,TOR安装(sudo端口安装tor),我用tor运行服务器..

执行应用程序,节点给我以下错误

 Error: SOCKS connection failed. General SOCKS server failure. at Socket.<anonymous> (/Users/MyName/node_modules/socks5-client/lib/Socket.js:199:12) at Socket.g (events.js:260:16) at emitOne (events.js:77:13) at Socket.emit (events.js:169:7) at readableAddChunk (_stream_readable.js:146:16) at Socket.Readable.push (_stream_readable.js:110:10) at TCP.onread (net.js:523:20) 

TOR服务器向我报告以下内容:

 [warn] Rejecting SOCKS request for anonymous connection to private address [scrubbed]. 

我在这里find的话题似乎并不适用于这种情况。 另外, 这篇早期文章不回答我的问题。 我也没有发现socks5模块的开发者和我的例子有什么区别。

我不确定这是否是我的configuration在节点或我的TORconfiguration的问题。

下面是JS代码

 var shttp = require('socks5-http-client'); var config = { url: 'http://whatismyipaddress.com/', // I'd like to see a different IP on every request, that should be the end result, correct? socksHost: '127.0.0.1', socksPort: 9050 } shttp.get(config, function(res) { res.setEncoding('utf8'); res.on('readable', function() { console.log(res.read()); }); }); 

另外,在我的torrc.sampleconfiguration文件中,我确保设置了以下内容:

 SOCKSPort 127.0.0.1:9050 

另外,我的SOCKSPolicy设置如下:

 SOCKSPolicy accept 192.168.0.0/16 SOCKSPolicy accept6 FC00::/7 SOCKSPolicy reject * 

在尝试的时候,我的内部IP地址是192.168.0.11,对我来说似乎很好。

任何帮助,将不胜感激!

你正在得到这个错误,因为这个URL没有正确传递给请求,所以它试图向localhost发出一个SOCKS请求,而不是你想要访问的站点。

url使用url.parseparsing。

尝试将您的代码更改为:

 var shttp = require('socks5-http-client'); var url = require('url'); var config = url.parse('http://whatismyipaddress.com/'); config.socksHost = '127.0.0.1'; config.socksPort = 9050; shttp.get(config, function(res) { res.setEncoding('utf8'); res.on('readable', function() { console.log(res.read()); }); }); 

此外,它似乎whatismyipaddress.com可能会阻止Tor,因为我没有得到他们的回应。 尝试ipchicken.com或其他网站。 您可能需要设置一个User-Agent标题,以获得前一个站点回复,但此代码更改确实工作。