为啥某些 .onion 站点会出现“SOCKS 连接失败。规则集不允许连接”?
Posted
技术标签:
【中文标题】为啥某些 .onion 站点会出现“SOCKS 连接失败。规则集不允许连接”?【英文标题】:Why do I get "SOCKS connection failed. Connection not allowed by ruleset" for some .onion sites?为什么某些 .onion 站点会出现“SOCKS 连接失败。规则集不允许连接”? 【发布时间】:2015-03-20 20:59:37 【问题描述】:我正在试验 Node 和 socks5-https-client。出于某种原因,某些 Tor 隐藏服务 (.onion
) 站点返回连接错误。
例如,连接到 DuckDuckGo (3g2upl4pq6kufc4m.onion
) 可以正常工作并返回 html。
但是,连接到海盗湾 (uj3wazyk5u4hnvtk.onion
) 或 TORCH (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
值引起的。
【问题讨论】:
“规则集”听起来像防火墙或其他配置文件。你有类似的事情吗? 端口是开放的,没有防火墙。真奇怪。我可以使用 firefox 访问 tpb 和 TORCH。 【参考方案1】:总结
您无法访问的服务器不支持 HTTPS。换句话说,他们的 443 端口是关闭的。 Tor 的错误信息是无用的。
如果您的安全需要允许,您可以通过退回到socks5-http-client 来解决此问题。
我采取的步骤来得出结论
您的代码在使用 Tor 0.2.5.10、socks5-https-client 1.0.1、节点 0.12.0 的 64 位 Linux 上得到了相同的结果。
我在grep
ped socks5-https-client
的代码库中发现了错误,并在依赖项socks5-client
on this line 中受到了打击。它将底层 SOCKS 连接的错误代码转换为人类可读的消息。 Wikipedia's explanation of SOCKS5 error codes 与此一致,但同样含糊不清
我发现一个 5 年前的 related Tor bug report 抱怨来自相同类型的 SOCKS 连接的类似错误。原来这个错误只是意味着服务器拒绝了你的连接。
为了确认,我通过 Tor 在端口 443 (HTTPS) 上 tcping
ed 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-http-client 而不是 socks5-https-client,您的代码对我有效。
【讨论】:
感谢@Anko 提供有用的回答。在我的情况下,我只需要从我的网络偏好设置中关闭我的 SOCKS 代理。希望对其他人有所帮助。 @LydiaRalph A non tor socks? 这是救命稻草。我有一个使用 HTTP 而不是 HTTPS 的 Google oauth login 需要登录链接。这是一个尴尬的局面。以上是关于为啥某些 .onion 站点会出现“SOCKS 连接失败。规则集不允许连接”?的主要内容,如果未能解决你的问题,请参考以下文章
为啥 DotNetBrowser 未设置某些站点授予的权限?
为啥在某些 trait 方法调用中会出现来自 &mut 的引用减弱?
Adobe Flex:为啥在某些浏览器上会出现间歇性 SecurityError 事件?