我有点迷失在当前的项目中。从 linux 机器(Ubuntu 服务器),在 nodejs 中运行代码,我必须通过 VPN 连接到 Windows 服务器,并访问在其上运行的 mySQL 服务器。
关于 VPN 服务器,我只知道它是 Windows,我可以使用另一台 Windows 机器上的 VPN conector 轻松连接到它,我无法访问那台机器或不知道它的参数。
我所拥有的只是 VPN 和该 VPN 内的数据库服务器的 IP,以及 VPN 和数据库的用户名/密码。我还知道 VPN 使用 ms-chap v2
。
我正在尝试像这样使用 openvpn:
sudo openvpn --remote vpnIP --dev tun --ifconfig 127.0.0.1 dbIP
这不会显示任何错误消息,但不会请求 VPN 的用户名/密码
创建 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
中创建。然后,您可以(在 Debug模式下)连接:
pon my_tunnel debug dump logfd 2 nodetach
或简单地(一旦它工作):
pon my_tunnel
并用 :
停止它poff my_tunnel
如果服务器是网关,你可能需要添加路由,比如:
ip route add 192.168.1.0/24 dev ppp0
关于node.js - 从运行在 Linux 上的 nodejs 通过 VPN 访问 Windows 服务器上的数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42875615/