侧边栏壁纸
博主头像
七哥的技术博客

You got a dream, you gotta to protect it!

  • 累计撰写 85 篇文章
  • 累计创建 76 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

本地通过隧道连接服务器的mysql

admin
2025-02-15 / 0 评论 / 0 点赞 / 20 阅读 / 0 字

前言

服务器上部署了 mysql,本地希望能访问该 mysql,但是又不希望 mysql 直接暴露在公网上

那么可以通过隧道连接 ssh 端口的方式进行连接

从外网看,服务器只开放了一个 ssh 端口,并没有开放 3306 监听端口

设置本地免密登录

这个之前写过,有不清楚的可以看 这里

设置好之后,本地就不需要密码,直接 ssh [email protected] 登录到服务器了

建立隧道

本地使用以下命令,来通过 ssh 建立本地到服务器的一个连接通道,将本地的 33060 映射到服务器的 3306 端口

连接本地的 33060 端口,就相当于连接了服务器的 3306 端口

如果需要更详细的输出日志,可以增加 ssh 的参数 -v-vv-vvv,v 越多日志越详细

ssh -N -v -L 33060:127.0.0.1:3306 user@your_server_ip

建议不需要带 v 参数,都是 ssh 的日志,也没什么看的,不带 v 是没有日志输出的

但是因为 ssh 隧道极其不稳定,可以用 autossh 替代,使用上基本一致,增加 M 参数监控端口,会进行断开自动重连

autossh -M 5000 -N -v -L 33060:127.0.0.1:3306 user@your_server_ip

本地连接数据库

在上面隧道建立起来之后,运行 dbeaver,配置连接本地的 33060 端口

输入数据库的账号密码,点击测试连接显示已连接

最终配置

开始没留意,后来发现其实 dbeaver 中就已经实现了 ssh 的隧道功能,这样就不需要单独额外启动 ssh 隧道了

dbeaver 配置分两步,一是设置 ssh 的配置,一是设置 mysql 的配置

前提是本地的公钥已经配置到服务器的 authorized_keys 文件中了,也可以通过输入密码账号的方式连接 ssh

新建连接,在 “SSH” 的标签页上,认证方式使用公钥,并选择本地的私钥,配置好服务器地址以及端口信息

切换回到 “主要” 标签页,主机填 localhost,端口就是服务器的 3306 端口,输入账号密码,测试连接 OK

0

评论区