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 http请求连接到dash db

使用 Node.js 连接到 MongoDB 的最佳方式 [重复]

我如何连接到 Node.js 中的星号

在Node.js中使用serialport自动连接到特定设备

如何使用 NodeJs 连接到 docker compose 中的 postgres?

以编程方式连接到蓝牙