从 Linux 上的 nodejs 运行 通过 VPN 访问 Windows 服务器上的数据库

Access database on Windows server through VPN from nodejs running on Linux

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

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

我所拥有的只是 VPN 和该 VPN 内的数据库服务器的 IP,以及 VPN 和数据库的 username/password。我也知道 VPN 使用 ms-chap v2.

我正在尝试这样使用 openvpn:

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

这不会显示任何错误消息,但不会请求 VPN username/password

创建 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 中创建。然后您可以连接(在调试模式下):

pon my_tunnel debug dump logfd 2 nodetach

或简单地(一旦它起作用):

pon my_tunnel

并用 :

停止它
poff my_tunnel

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

ip route add 192.168.1.0/24 dev ppp0

您可能需要 Network Manager 和插件 network-manager-pptp,也看到这个维基 https://help.ubuntu.com/community/VPNClient#PPTP