我已经对此进行了一天的研究,但我找不到解决方法。
我正在构建一个在后端运行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)
});
};
我滥用此功能吗?有没有更好的办法?
任何帮助将不胜感激。
谢谢!
答案 0 :(得分:1)
当该应用程序上线时,该问题就会出现,我需要它 通过运行OpenVPN客户端可以访问vpn 在网站/域上。
没错,您将在运行后端的服务器上需要一个openvpn客户端实例。
上述库(node-openvpn)只是一个与本地OpenVPN客户端实例进行交互的库。它不能自行创建连接。它取决于OpenVPN二进制文件(应该正在运行)。
您需要的解决方案是在服务器上运行OpenVPN客户端(apt-get openvpn)。并让守护程序运行。请查看下面的参考。