【问题标题】:MySQL Server Refusing Local Connections Over SSH TunnelMySQL 服务器拒绝通过 SSH 隧道的本地连接
【发布时间】:2014-11-14 05:41:00
【问题描述】:

我有一个带有 MySQL 和 Cygwin 的远程 Windows 服务器(启用远程 SSH 连接)。当我从 Workbench 的本地实例(即使用 Workbench 处理隧道)以 root 身份通过 SSH 连接时,连接到远程数据库没有问题。

我需要建立自己的隧道,因为我有另一个需要访问 MySQL 的应用程序。我选择使用 Putty,但只取得了部分成功。

我可以通过我的隧道 localhost:3307 进行连接(使用 Workbench 作为测试客户端),我已将其转发到 myremoteserver.no-ip.com:3306,前提是我将那里的远程 root 用户设置为接受连接来自所有主机 (%),和/或服务器的实际 IP。

如果我将 root 限制为 127.0.0.1(应该如此),我会收到错误 Host x.x.x.x is not allowed to connect to this MySQL server 其中 x.x.x.x 是远程服务器的实际地址!

不知何故,使用 Putty 建立隧道并没有将我显示为本地连接。而是作为远程连接,即使远程IP是远程服务器的IP

我的问题:如何设置 putty 以模仿 Workbench 成功建立隧道连接的方式?

注意:我与远程 IP 的所有连接都是通过无 IP 地址进行的。这在 Workbench 打开隧道时起作用。我的服务器也在 AWS EC2 生态系统中运行。

我当前的 Putty 连接是无 IP 地址,隧道设置是 Source:3307, Destination: myremoteserver.no-ip.com:3306, Local and Auto

编辑:我也在 Putty 隧道设置中尝试将127.0.0.1:3306 作为目标地址并得到相同的结果。

【问题讨论】:

    标签: mysql ssh putty


    【解决方案1】:

    我当前的 Putty 连接是到无 IP 地址和隧道 设置来源:3307,目的地:myremoteserver.no-ip.com:3306, 本地和自动。

    您希望限制 mysql 的远程实例只接受 localhost 接口上的连接,因此您的隧道应该转发到远程主机的 localhost 接口而不是其网络接口。将隧道的目标地址更改为127.0.0.1,而不是服务器的名称。

    【讨论】:

    • 感谢您的回复。事实上,我昨晚尝试过,结果与 127.0.0.1:3306 在 Putty 中设置为目标地址相同。我也会更新详细说明这一观察的问题。
    猜你喜欢
    • 1970-01-01
    • 2020-09-30
    • 2017-08-24
    • 2014-05-06
    • 2018-10-06
    • 2012-06-19
    • 2020-04-07
    • 2019-08-01
    • 2019-11-12
    相关资源
    最近更新 更多