我是 Tor 新手。我最近在我的 PC 上运行 Tor 服务器实例时成功地从 node.js 执行查询。
我使用了以下代码:
var Agent = require('socks5-https-client/lib/Agent');
var request = require("request");
var q = "https://www.example.com/";
request({
url: q,
agentClass: Agent,
agentOptions: {
socksHost: 'localhost',
socksPort: 9050 // Defaults to 1080.
}
}, function(err, res) {
console.log(err || res.body);
});
我想连接到 Tor 而无需在我的 PC 上运行 Tor 服务器。我相信使用 Tor 桥可以实现这一点。我已从 https://bridges.torproject.org/bridges:
检索到 IP 地址2.91.117.71:443 3C2AAD50197ACE1A43C822BBE282E0534603A31F
我不太确定如何使用这些信息。我尝试过设置:
agentOptions: {
socksHost: '2.91.117.71',
socksPort: 443
}
但是我超时了:
{ [Error: connect ETIMEDOUT] code: 'ETIMEDOUT', errno: 'ETIMEDOUT', syscall: 'connect' }
我的问题是:
Tor-Bridge 用于那些无法连接到正常 Tor 网络的人,因为他们的 ISP 阻止了众所周知的 Tor-服务器。 如果第一次连接是通过网桥完成的,那么之后就不会出现问题,因为通常这些网桥并不为所有人所知,因此它们通常不会被 ISP 阻止,因为它们看起来像普通服务器。
您仍然需要 Tor 客户端才能连接到它们。
如果没有 Tor 客户端,就无法连接到 Tor 网络。
在你的第一个代码中,你的 Tor 客户端就像一个袜子代理,只是通过 Tor 网络代理你的请求。
你可以尝试一下这个库是否有效。
Tor 网桥不是您想要使用的。对我有用的是使用 Debian(我更喜欢 Ubuntu 14.04)设置一个 VPS(看看 SSD 上的digitalocean 每月 5 美元)并安装 tor 和 nodejs,除非你想尝试一种已经有的语言连接和操作 Tor 的成熟文档体系,如 Python(我的 Tor 首选语言)。
然后,您可以从该 VPS 运行相同的代码,它将起作用,这样您就不会在本地计算机上执行代码,并且您可以在适合您的时候更改 VPS 上的 IP 地址,并使用诸如代理链之类的东西除了 TOR 之外,您还通过其他代理查找的反弹流量。
希望有帮助。
var request = require("request");
var url = "https://bridges.torproject.org/bridges";
request({
url: url,
agentOptions: {
socksHost: '2.91.117.71',
socksPort: 443
}
}, function(err, res) {
console.log(err || res.body);
});