node.js - 从运行在 Linux 上的 nodejs 通过 VPN 访问 Windows 服务器上的数据库

标签 node.js linux vpn openvpn

我有点迷失在当前的项目中。从 linux 机器(Ubuntu 服务器),在 nodejs 中运行代码,我必须通过 VPN 连接到 Windows 服务器,并访问在其上运行的 mySQL 服务器。

关于 VPN 服务器,我只知道它是 Windows,我可以使用另一台 Windows 机器上的 VPN conector 轻松连接到它,我无法访问那台机器或不知道它的参数。

我所拥有的只是 VPN 和该 VPN 内的数据库服务器的 IP,以及 VPN 和数据库的用户名/密码。我还知道 VPN 使用 ms-chap v2

我正在尝试像这样使用 openvpn:

sudo openvpn --remote vpnIP --dev tun --ifconfig 127.0.0.1 dbIP

这不会显示任何错误消息,但不会请求 VPN 的用户名/密码

创建 VPN 后,我应该如何从 nodejs 访问数据库?

正如我所说,我对此非常迷茫!欢迎任何提示!

最佳答案

除非另有说明,否则基于 Windows 的 VPN 几乎总是使用 PPTP .您无法连接 OpenVPN。您必须使用 PPTP 客户端。

Ubuntu 软件包是 pptp-linux . 里面有详细的配置说明here .

简而言之(我假设您的服务器上没有 GUI), 你可以创建一个隧道:

pptpsetup --create my_tunnel --server <server_address> --username <username> --password '<password>' --encrypt

配置文件将在 /etc/ppp 中创建。然后,您可以(在 Debug模式下)连接:

pon my_tunnel debug dump logfd 2 nodetach

或简单地(一旦它工作):

pon my_tunnel

并用 :

停止它
poff my_tunnel

如果服务器是网关,你可能需要添加路由,比如:

ip route add 192.168.1.0/24 dev ppp0

关于node.js - 从运行在 Linux 上的 nodejs 通过 VPN 访问 Windows 服务器上的数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42875615/

相关文章:

node.js - 使用 Protractor webdriver-manager 关闭 selenium webdriver 时出现问题

android - 翻新请求在 VPN 后面抛出 UnknownHostException

linux - connect 仅使用终端连接到 pptp vpn

javascript - Sequelize.js - 在不获取另一个对象的情况下在 save() 上添加关联

javascript - setImmediate vs. nextTick

php - 使用 Yii::app()->user 时出现问题

linux - 错误-3 打开ST-Link/V2设备

linux - vagrant up 在销毁和关联的驱动器时失败

ios - NEVPNManager 的 onDemandEnabled 标志

javascript - 如何使用 koa-bodyparser 在 koa 中获取查询字符串?