Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 为什么我会得到;SOCKS连接失败。“规则集不允许连接”;对一些人来说,洋葱网站?_Node.js_Tor_Socks - Fatal编程技术网

Node.js 为什么我会得到;SOCKS连接失败。“规则集不允许连接”;对一些人来说,洋葱网站?

Node.js 为什么我会得到;SOCKS连接失败。“规则集不允许连接”;对一些人来说,洋葱网站?,node.js,tor,socks,Node.js,Tor,Socks,我正在试验Node和。由于某种原因,某些Tor隐藏服务(.onion)站点返回时出现连接错误 例如,连接DuckDuckGo(3g2upl4pq6kufc4m.onion)可以工作并返回HTML 但是,连接到海盗湾(uj3wazyk5u4hnvtk.onion)或火炬(xmh57jrzrnw6insl.onion)返回 错误:SOCKS连接失败。规则集不允许连接 这个错误意味着什么?我怎样才能避免呢 下面是复制它的代码: var shttps = require('socks5-https-c

我正在试验Node和。由于某种原因,某些Tor隐藏服务(
.onion
)站点返回时出现连接错误

例如,连接DuckDuckGo(
3g2upl4pq6kufc4m.onion
)可以工作并返回HTML

但是,连接到海盗湾(
uj3wazyk5u4hnvtk.onion
)或火炬(
xmh57jrzrnw6insl.onion
)返回

错误:SOCKS连接失败。规则集不允许连接

这个错误意味着什么?我怎样才能避免呢


下面是复制它的代码:

var shttps = require('socks5-https-client');

shttps.get({
    hostname: '3g2upl4pq6kufc4m.onion',
    path: '',
    socksHost: '127.0.0.1',
    socksPort: 9150,
    rejectUnauthorized: false
}, function(res) {
    res.setEncoding('utf8');
    res.on('readable', function() {
        console.log(res.read()); // Log response to console.
    });
});
该错误似乎是由服务器响应的字段2中的
0x02
值引起的。

总结 您无法访问的服务器不支持HTTPS。换句话说,他们的443端口是关闭的。Tor的错误消息没有帮助

如果您的安全需要允许,您可以通过返回到来解决此问题

我采取了哪些步骤来得出结论 您的代码在64位Linux上获得了相同的结果,其中Tor为0.2.5.10,socks5 https客户端为1.0.1,节点为0.12.0

grep
ped
socks5 https客户端的代码库中出现了错误,并在依赖项
socks5客户端中找到了一个匹配项。它将底层SOCKS连接的错误代码转换为人类可读的消息。与此一致,但同样没有帮助的含糊不清

我发现了一个5年前的问题,抱怨来自同一类型的SOCKS连接的类似错误。结果表明,该错误仅仅意味着服务器拒绝了您的连接

为了确认,我通过Tor在端口443(HTTPS)上安装了TPB。它不响应
TCP
SYN
,失败时出现相同的令人困惑的错误:

$ torify tcping uj3wazyk5u4hnvtk.onion 443
[Mar 22 22:40:59] ERROR torsocks[18560]: Connection not allowed by ruleset (in socks5_recv_connect_reply() at socks5.c:520)
error: uj3wazyk5u4hnvtk.onion port 443: Software caused connection abort
他们的端口80(HTTP)会回复:

$ torify tcping uj3wazyk5u4hnvtk.onion 80
uj3wazyk5u4hnvtk.onion port 80 open.

因此,如果我使用socks5 https-client而不是http-client,那么您的代码对我来说是有效的。

“规则集”听起来像防火墙或其他配置文件。你有类似的事情发生吗?端口是开放的,没有防火墙。真奇怪。我可以通过firefox访问tpb和TORCH。感谢@Anko提供的有用答案。在我的例子中,我只需要从我的网络首选项中关闭SOCKS代理。希望这能帮助别人。@LydiaRalph A non tor socks?这是救命恩人。我有一个使用HTTP而不是HTTPS的GoogleOAuth登录要求登录链接。这是一个尴尬的局面。