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

Posted

技术标签:

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

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

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

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

我正在尝试这样使用 open***:

sudo open*** --remote ***IP --dev tun --ifconfig 127.0.0.1 dbIP

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

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

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

【问题讨论】:

*** 是否运行 open*** 作为服务器软件?您使用的是哪个 Linux 发行版? Windows 中的 MS-CHAP 通常与基于 PPTP 的 *** 服务器(我强烈反对这种协议)一起使用,如果是这种情况,您必须使用 pptp 客户端。 @Hultner 我已经编辑了我的问题。这是一个 Ubuntu 服务器 16.04。我没有关于 *** 服务器的任何信息,只有 IP 和用户名/密码。我来看看这个 pptp-client。以前从未听说过。 【参考方案1】:

除非指定其他内容,否则基于 Windows 的 *** 几乎总是使用 PPTP。您无法连接 Open***。您必须使用 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服务器?但是有一个开放点:一旦连接打开,我如何让我的本地客户端与 *** 内的 IP 通信? 该连接允许您与 (Windows) 服务器通信。如果你想与远程网络上的机器交谈,你必须添加一个路由。它基本上说“与 上的机器交谈通过隧道发送数据”。在示例中,远程网络是 192.168.1.0/24,本地网络必须是其他网络。这被描述为pptpclient.sourceforge.net/routing.phtml#client-to-lan(客户端到 LAN 部分)。您还可以添加默认路由。【参考方案2】:

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

【讨论】:

以上是关于从运行在 Linux 上的 nodejs 通过 *** 访问 Windows 服务器上的数据库的主要内容,如果未能解决你的问题,请参考以下文章

使用 NodeJS + 实时输出从 Web 运行 Linux 命令

如何让nodejs在linux后台运行

哪个是基于NodeJS的Azure Web App(Linux)上运行的默认Web服务器?

NodeJS Express - 同一端口上的两个 NodeJS 实例(vhost)

Linux设置nodejs开机自启动

Linux VM/nodejs 问题:Nodemon、Coffee 等未执行