首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Node.js -以编程方式连接到VPN或通过VPN路由HTTP请求

Node.js -以编程方式连接到VPN或通过VPN路由HTTP请求
EN

Stack Overflow用户
提问于 2015-08-17 11:07:49
回答 1查看 20.5K关注 0票数 14

这可能有点遥不可及。但是在Node.js中,我想通过VPN服务器发出一个HTTP请求(例如,使用npm上的请求包)。我已经设置了一个VPN服务器(使用HideMyAss),通过在我的操作系统网络设置部分中配置它,我可以在操作系统级别连接到它。但我希望使用Nodejs程序以编程方式连接到它,并让使用该程序发出的HTTP请求通过该VPN路由。

这可以使用代理来完成,例如:

代码语言:javascript
运行
复制
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) {

});

...but我想对VPN做一些类似的事情。这有可能吗?谢谢!

EN

回答 1

Stack Overflow用户

发布于 2015-08-17 16:16:03

VPN(通常)通过特定信道的隧道层2或3网络分组。从应用层的角度来看,您不必考虑较低的级别,因为路由网络包是由操作系统负责的。例如,OpenVPN创建一个TAP虚拟接口,并通过安全隧道将OS发送的所有数据包传输到这些接口。对路由表使用哪个接口的决定。web代理服务器比VPN简单得多,因为它只接受HTTP请求(应用层)并中继它们。

这取决于您使用的VPN类型。假设您正在使用OpenVPN,并且它为您创建了一个虚拟接口(例如tun0),该接口有自己的IP地址(例如10.124.1.6),也可能(取决于服务器的拓扑学)有一个P2P地址(例如10.124.1.5)。可以指示节点使用localAdress通过特定(本地)网络接口绑定网络连接。

代码语言:javascript
运行
复制
var options = {
  host: "example.com",
  path: "/path/to/web/service",
  localAddress: '10.124.1.6', // IP address network interface
};
http.request(options);

假设情况下,这将是通过VPN接口有选择地隧道特定请求的解决方案。-我不能保证。但我想说这会让你有一些想法。

票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32048832

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档