node.js - 在远程网站上运行 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)
});
};
我在滥用这个功能吗?有没有更好的办法?
任何帮助将不胜感激。
谢谢你!
解决方案
当应用程序上线时问题会出现,我需要它通过(我猜)在站点/域上运行 OpenVPN 客户端来访问 vpn。
没错,您将需要在服务器上运行后端的 openvpn 客户端实例。
上面的库(node-openvpn)只是一个与本地 OpenVPN 客户端实例交互的库。它无法自行创建连接。这取决于 OpenVPN 二进制文件(应该正在运行)。
您需要的解决方案只是在您的服务器上运行 OpenVPN 客户端(apt-get openvpn)。并让守护程序运行。查看下面的参考资料。
推荐阅读
- javascript - 在选择一个之前如何在选择中获取一个值?
- ruby-on-rails - rake db:create 创建测试数据库,而不是开发
- c# - 如何在函数中将消息推送到 Azure 服务总线
- python - 移除轴并排列子图
- javascript - 温斯顿记录器显示行号和文件名
- c++ - Minimax 井字游戏 (4x4) 悬挂
- php - 如何在不创建嵌套对象且不使用 IRI 的情况下发布包含嵌套对象的对象?
- sql - 选择所有列,但忽略其中一些具有重复值的记录
- python - TensorFlow 运动预测
- pandas - Pandas - 如何根据条件对 2 列中的 X 个最后一个值求和