从运行在 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) 服务器通信。如果你想与远程网络上的机器交谈,你必须添加一个路由。它基本上说“与您可能需要带有插件 network-manager-pptp 的 Network Manager,另请参阅此 wiki https://help.ubuntu.com/community/***Client#PPTP
【讨论】:
以上是关于从运行在 Linux 上的 nodejs 通过 *** 访问 Windows 服务器上的数据库的主要内容,如果未能解决你的问题,请参考以下文章
使用 NodeJS + 实时输出从 Web 运行 Linux 命令
哪个是基于NodeJS的Azure Web App(Linux)上运行的默认Web服务器?