【问题标题】:Issue with HTTP request using node through TOR通过 TOR 使用节点的 HTTP 请求问题
【发布时间】:2016-01-29 12:47:01
【问题描述】:

我对 node 和 TOR 都比较陌生。我正在尝试通过 TOR 使用节点应用程序发送请求。我已经使用socks5-HTTP-client 设置了一个基本应用程序。此外,安装了 TOR(sudo port install 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].

我找到的主题here 似乎不适用于这个案例。另外,this 之前的文章没有回答我的问题。我也找不到 socks5 模块开发者给出的example 和我的案例有什么区别。

我不确定这是我在节点中的配置还是我的 TOR 配置的问题。

下面是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.sample 配置文件中,我确保设置了以下内容:

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,我觉得很好。

任何帮助将不胜感激!

【问题讨论】:

    标签: node.js configuration tor


    【解决方案1】:

    您收到该错误是因为 URL 未正确传递给请求,因此它试图向 localhost 而不是您要访问的站点发出 SOCKS 请求。

    使用 url.parse 解析 URL。

    尝试将您的代码更改为:

    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 标头才能让以前的网站回复,但此代码更改确实有效。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-26
      • 2012-06-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多