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

Run a VPN client on a remote website

我研究了一天,一直没找到方法。

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

上有一个 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)
});

};

我是不是误用了这个功能?有没有更好的办法?

任何帮助将不胜感激。

谢谢!

The problem will rise when the app will be live and I will need it to have access to the vpn by (I'm guessing) having a OpenVPN client running on the site/domain.

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

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

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

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