连接到内部MySQL服务器

连接到内部MySQL服务器,mysql,node.js,database,security,Mysql,Node.js,Database,Security,我有一个Node.JS Express API应用程序,它托管在云中的Heroku上。我想查询一个MySQL数据库 问题是该数据库托管在一个具有专有信息的安全局域网上。我们不想向公众公开这个数据库。像这样的事情需要什么样的模式 我有一个静态代理IP,如果可能的话,我想在MySQL服务器中加入白名单。我认为引入另一个层(如VPN或SSH)是行不通的。我有一个静态代理IP,我想如果可能的话,可能会在MySQL服务器中加入白名单 MySQL允许IP的白名单。这是可能的 但是,您可以创建从本地系统到服务

我有一个Node.JS Express API应用程序,它托管在云中的Heroku上。我想查询一个MySQL数据库

问题是该数据库托管在一个具有专有信息的安全局域网上。我们不想向公众公开这个数据库。像这样的事情需要什么样的模式

我有一个静态代理IP,如果可能的话,我想在MySQL服务器中加入白名单。我认为引入另一个层(如VPN或SSH)是行不通的。

我有一个静态代理IP,我想如果可能的话,可能会在MySQL服务器中加入白名单

MySQL允许IP的白名单。这是可能的

但是,您可以创建从本地系统到服务器的SSH隧道。SSH隧道可以为您提供加密的SSH连接。与使用基于密码的SSH不同,更好的方法是使用基于密钥的加密

您需要做的是生成一个公共身份验证密钥并将其附加到远程主机~/.ssh/authorized_keys文件中。最好禁用基于密码的身份验证,只允许基于密钥的ssh连接


如果您需要关于如何实现这一点的一些步骤,我也可以列出。

您可以只通过防火墙允许您的应用程序服务器的IP吗?在发布之前,总结问题,并提供详细信息和示例来描述您所尝试的。嗯……但是您不认为通过SSH(从Node Express)进行隧道传输有点尴尬吗?它引入了另一个层,可以降低客户端请求的速度,但是SSH隧道确实更慢。我从安全角度推荐它,因为OP没有提到连接响应时间。如果安全性和响应时间是因素,那么我建议使用stunnel和/或openVPN。由于底层UDP的使用,开放VPN具有更好的优势。