Sun*_*oot 8 vpn proxy network-programming node.js
这可能是一个长镜头.但是在Node.js中,我想通过VPN服务器发出HTTP请求(例如,在npm上使用请求包).我已经有一个VPN服务器设置(使用HideMyAss),我可以在操作系统级别通过在我的操作系统网络设置部分配置它来连接它.但我希望使用Nodejs程序以编程方式连接到它,并使用通过该VPN路由的该程序进行任何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) {
});
Run Code Online (Sandbox Code Playgroud)
...但我想做一些与VPN类似的事情.这甚至可能吗?谢谢!
VPN(通常)通过特定通道隧道第2层或第3层网络数据包。从应用程序层的角度来看,您不必照顾较低的级别,因为路由网络软件包由OS负责。例如,OpenVPN创建一个TUN或TAP虚拟接口,并通过安全隧道将操作系统发送的所有数据包引导至这些接口。关于路由表,决定使用哪个接口。Web代理服务器比VPN简单得多,因为它只接受HTTP请求(应用程序层)并中继它们。
这实际上取决于您使用哪种类型的VPN。假设您使用的是OpenVPN,它会为您创建一个虚拟接口(例如tun0),该接口具有自己的IP地址(例如10.124.1.6),并且可能(取决于服务器的拓扑结构)是一个P2P地址(例如10.124.1.5)。您可以使用以下命令指示Node通过特定的(本地)网络接口绑定网络连接localAdress:
var options = {
host: "example.com",
path: "/path/to/web/service",
localAddress: '10.124.1.6', // IP address network interface
};
http.request(options);
Run Code Online (Sandbox Code Playgroud)
假设地,这将是通过VPN接口选择性地隧穿特定请求的解决方案。如果这行不通,我不能保证。但是我想这会让您开始有了一些想法。
| 归档时间: |
|
| 查看次数: |
9821 次 |
| 最近记录: |