【问题标题】:Access database on Windows server through VPN from nodejs running on Linux从运行在 Linux 上的 nodejs 通过 VPN 访问 Windows 服务器上的数据库
【发布时间】:2017-08-10 01:54:04
【问题描述】:

我有点迷失在我目前的项目中。在 linux 机器(Ubuntu 服务器)上,在 nodejs 中运行代码,我必须通过 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 我已经编辑了我的问题。这是一个 Ubuntu 服务器 16.04。我没有关于 VPN 服务器的任何信息,只有 IP 和用户名/密码。我来看看这个 pptp-client。以前从未听说过。

标签: node.js linux vpn openvpn


【解决方案1】:

除非指定其他内容,否则基于 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

【讨论】:

  • 这看起来很有希望,但我现在无法测试它。你说的网关是我的linux box还是windows服务器?但是有一个开放点:一旦连接打开,我如何让我的本地客户端与 vpn 内的 IP 通信?
  • 该连接允许您与 (Windows) 服务器通信。如果你想与远程网络上的机器交谈,你必须添加一个路由。它基本上说“与 上的机器交谈通过隧道发送数据”。在示例中,远程网络是 192.168.1.0/24,本地网络必须是其他网络。这被描述为pptpclient.sourceforge.net/routing.phtml#client-to-lan(客户端到 LAN 部分)。您还可以添加默认路由。
【解决方案2】:

您可能需要带有插件 network-manager-pptp 的 Network Manager,另请参阅此 wiki https://help.ubuntu.com/community/VPNClient#PPTP

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-02-23
    • 2020-11-12
    • 2020-06-16
    • 2017-05-19
    • 1970-01-01
    • 1970-01-01
    • 2014-08-17
    • 1970-01-01
    相关资源
    最近更新 更多