Node.js - 以编程方式连接到 *** 或通过 *** 路由 HTTP 请求
Posted
技术标签:
【中文标题】Node.js - 以编程方式连接到 *** 或通过 *** 路由 HTTP 请求【英文标题】:Node.js - Programmatically Connect to a *** or route HTTP Requests via *** 【发布时间】:2015-11-09 23:57:31 【问题描述】:这可能有点远。但在 Node.js 中,我想通过 *** 服务器发出 HTTP 请求(例如,使用 npm 上的 request 包)。我已经设置了一个 *** 服务器(使用HideMyAss),我可以在操作系统级别连接到它,方法是在我的操作系统网络设置部分进行配置。但我想使用 Nodejs 程序以编程方式连接到它,并通过该 *** 路由使用该程序发出的任何 HTTP 请求。
这可以使用代理来完成,例如:
var request = require('request');
var url = 'https://www.google.com';
var proxy = 'http://username:password@usa.proxyservice.com:1234';
request.get( url: url, proxy: proxy , function(err, res, body)
);
...但我想对 *** 做类似的事情。这甚至可能吗?谢谢!
【问题讨论】:
嘿,你找到解决方案了吗? 你想看这里serverfault.com/questions/992624/… 【参考方案1】:***(通常)通过特定通道对第 2 层或第 3 层网络数据包进行隧道传输。从应用层的角度来看,您不必关心较低级别,因为路由网络包由操作系统负责。例如,Open*** 创建了一个TUN
or TAP
虚拟接口,并将操作系统发送的所有数据包通过安全隧道引导到这些接口。使用哪个接口的决定取决于路由表。 Web 代理服务器比 *** 简单得多,因为它只接受 HTTP 请求(应用层)并中继它们。
这实际上取决于您使用的是哪种 ***。假设您正在使用 Open***,它会为您创建一个虚拟接口(例如 tun0
),该接口有自己的 IP 地址(例如 10.124.1.6
),并且可能(取决于服务器的 topology)一个 P2P 地址(例如10.124.1.5
)。您可以使用 localAdress
指示 Node 通过特定(本地)网络接口绑定网络连接:
var options =
host: "example.com",
path: "/path/to/web/service",
localAddress: '10.124.1.6', // IP address network interface
;
http.request(options);
假设,这将是通过 *** 接口选择性地传输特定请求的解决方案。 这是否有效,我无法保证。但我想说这会让你开始一些想法。
【讨论】:
以上是关于Node.js - 以编程方式连接到 *** 或通过 *** 路由 HTTP 请求的主要内容,如果未能解决你的问题,请参考以下文章
使用 Node.js 连接到 MongoDB 的最佳方式 [重复]
在Node.js中使用serialport自动连接到特定设备