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

6

我在当前项目中有些迷茫。我正在使用nodejs代码在Linux机器(Ubuntu服务器)上,需要通过VPN连接到Windows服务器,并访问在其上运行的MySQL服务器。

关于VPN服务器,我只知道它是Windows系统,我可以通过另一台Windows机器上的VPN连接器轻松连接到它,但我无法访问该机器或了解其参数。

我所拥有的仅有VPN和数据库服务器在VPN内部的IP地址,以及VPN和数据库的用户名/密码。此外,我知道VPN使用ms-chap v2

我正在尝试使用openvpn进行如下操作:

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

这并不显示任何错误信息,但从未请求VPN的用户名/密码。

一旦创建VPN,我应该从nodejs中做什么来访问数据库?

就像我所说的那样,我非常迷茫!欢迎任何提示!


VPN运行的是OpenVPN作为服务器软件吗?您使用哪个Linux发行版?在Windows中,MS-CHAP通常与基于PPTP的VPN服务器一起使用(这是我强烈反对的协议),如果是这种情况,您必须使用pptp客户端。 - Hultner
@Hultner 我已经编辑了我的问题。这是一个Ubuntu服务器16.04。我没有关于VPN服务器的任何信息,但有IP和用户名/密码。我会看一下这个pptp-client。以前从未听说过它。 - Gustavo Vargas
2个回答

3

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

Ubuntu软件包为pptp-linux。 有一个详细的解释如何配置它在这里

简而言之(我假设您在服务器上没有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

这看起来很有前途,但我现在无法测试它。你所提到的网关是我的Linux盒子还是Windows服务器?但有一个未解决的问题:一旦连接打开,我如何让我的本地客户端与VPN内部的IP通信? - Gustavo Vargas
连接允许您与(Windows)服务器通信。如果您想与远程网络中的机器通信,则必须添加路由。它基本上说“要想与<some_network>上的计算机通信,请通过隧道发送数据”。在此示例中,远程网络为192.168.1.0/24,本地网络必须是其他内容。这在http://pptpclient.sourceforge.net/routing.phtml#client-to-lan(客户端到LAN部分)中有所描述。您还可以添加默认路由。 - bwt

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接