在即将进行的项目中,我设置了两台服务器:一台是应用服务器,另一台是已经存在的运行 mysql 服务器的服务器,其中包含我需要访问的数据库。我联系了 mysql 服务器的服务器管理员,我访问远程 mysql 数据库的唯一方法是通过“SSH 隧道”。我以前从未这样做过,到目前为止从未听说过,所以我的问题是,它有什么缺点吗,例如性能方面?与直接在其默认端口上访问 mysql 服务器相比,它不是相当慢吗?
答案1
对于客户端访问,这是一个很好的建议,而不是通过互联网发送纯文本数据库流量。您还会面临身份验证数据的风险。开销不会比任何其他 SSH 会话更多。
对于应用程序访问,我建议通过 SSL 进行 MySQL反而。
答案2
从管理员角度看,您失去了限制每个主机访问 mysql 的能力,因为 mysql 将看到来自反弹主机的所有连接。您确实从 sshd 服务器获得了更强大的身份验证控制选项。
从客户端来看,当您的应用程序需要连接时,您必须确保隧道处于打开状态。如果您需要长时间保持连接,则可能必须使用 ssh keepalives + 通过 ssh 连接运行虚拟应用程序,这样您就不会自动注销。