首页 > 解决方案 > 在远程网站上运行 VPN 客户端

问题描述

我一直在研究这一天,但我一直无法找到这样做的方法。

我正在构建一个反应应用程序,在后端运行 express,它需要访问位于 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)
});

};

我在滥用这个功能吗?有没有更好的办法?

任何帮助将不胜感激。

谢谢你!

标签: node.jsexpressvpnopenvpn

解决方案


当应用程序上线时问题会出现,我需要它通过(我猜)在站点/域上运行 OpenVPN 客户端来访问 vpn。

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

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

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

  1. node-openvpn 问题指出需要客户端的运行实例
  2. OpenVPN CLI 教程

推荐阅读