我已经为此进行了一天的研究,但还没有找到解决方法。

我正在构建一个在后端运行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)
});

};


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

任何帮助将不胜感激。

谢谢!

最佳答案

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


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

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

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


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

关于node.js - 在远程网站上运行VPN客户端,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51805656/

10-12 15:37