在远程网站上运行VPN客户端

时间:2018-08-12 04:22:13

标签: node.js express vpn openvpn

我已经对此进行了一天的研究,但我找不到解决方法。

我正在构建一个在后端运行express的react应用,该应用需要访问位于VPN内的远程数据库中的某些数据。目前该应用程序位于我的本地主机上,因此它足以让我使用openvpn客户端连接我的机器,并且一切正常。当应用程序上线时,问题就会出现,并且我需要它通过在站点/域上运行vpn客户端来访问vpn。

有人做过吗?

我试图安装node-openvpn软件包似乎可以胜任工作,但不幸的是由于连接配置不正确,我无法使其正常工作。

这是我用来连接到在线路上系统性失败的vpn的函数

  

-> openvpnmanager.authorize(auth);

const openvpnmanager = require('node-openvpn');

...

const connectToVpn = () => {
var opts = {
    host: 'wopr.remotedbserver.com', 
    port: 1337, //port openvpn management console
    timeout: 1500, //timeout for connection - optional,
    logpath: '/log.txt'
};
var auth = {
    user: 'userName',
    pass: 'passWord',
};

var openvpn = openvpnmanager.connect(opts);

openvpn.on('connected', function() {
    console.log('connecting..');
    openvpnmanager.authorize(auth); <-- Error: Unhandled "error" event. (Cannot connect)
});

openvpn.on('console-output', function(output) {
    console.log(output)
});

openvpn.on('state-change', function(state) { //emits console output of openvpn state as a array
    console.log(output)
});

};

我滥用此功能吗?有没有更好的办法?

任何帮助将不胜感激。

谢谢!

1 个答案:

答案 0 :(得分:1)

  

当该应用程序上线时,该问题就会出现,我需要它   通过运行OpenVPN客户端可以访问vpn   在网站/域上。

没错,您将在运行后端的服务器上需要一个openvpn客户端实例。

上述库(node-openvpn)只是一个与本地OpenVPN客户端实例进行交互的库。它不能自行创建连接。它取决于OpenVPN二进制文件(应该正在运行)。

您需要的解决方案是在服务器上运行OpenVPN客户端(apt-get openvpn)。并让守护程序运行。请查看下面的参考。

  1. node-openvpn issues that points out that a running instance of the client is needed
  2. OpenVPN CLI tutorial