【问题标题】:Accessing a MySQL database through SSH tunnels通过 SSH 隧道访问 MySQL 数据库
【发布时间】:2016-09-08 12:22:15
【问题描述】:

我有 3 台服务器:serverAserverBserverMySQL

serverMySQL 位于防火墙后面,serverB 无法访问。

serverA 可以通过 SSH 访问 serverBserverMySQL

有什么方法可以设置 SSH 隧道,以便我能够访问位于 serverMySQL 的 MySQL 数据库?

【问题讨论】:

    标签: ubuntu ssh tunnel ssh-tunnel


    【解决方案1】:

    如果 serverB 可以访问 MySQL 服务器(端口 3306 不是 SSH),则必须在 serverA 中运行:

    ssh -L 3306:mysqlServer:3306 serverB
    

    然后在 serverA 中配置 MySQL 服务器为 127.0.0.1:3306

    如果 serverB 只能通过 SSH 访问 MySQL,那么你必须在 serverA 中运行:

    ssh -L 3306:127.0.0.1:12345 serverB
    

    然后在 serverB 中:

    ssh -L 12345:127.0.0.1:3306 serverMySQL
    

    12345 是任何未使用的端口(超过 1024)

    【讨论】:

    • 使用autossh 可能是更好的方法,因为它会尝试保持连接处于活动状态。
    • @jotik 的评论很好,但它建立在我所说的之上。让它工作后添加密钥身份验证(这样您就不必一直输入密码),然后添加 autossh。
    猜你喜欢
    • 2019-07-15
    • 2013-02-05
    • 2014-09-17
    • 2013-06-02
    • 2017-12-26
    • 2014-05-06
    • 2016-06-14
    • 1970-01-01
    • 2014-12-15
    相关资源
    最近更新 更多