我已经为此进行了一天的研究,但还没有找到解决方法。
我正在构建一个在后端运行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/