连远程数据库不想暴露公网端口,SSH隧道本地转发安全又方便

SSH -L本地转发端口不暴露公网、Navicat自动隧道配置、autossh断线重连
发布于
6

之前用 Navicat 连服务器数据库都是把 MySQL 的 3306 端口暴露在公网上,虽然设了密码但总觉得不安全。后来换成 SSH 隧道转发,数据库端口只对本机开放,外面连不进来。本地连的时候通过 SSH 隧道转过去,跟直连一样快。

服务器用的雨云,地址 rain.jiyueip.com,优惠码 admin01 五折。

SSH 隧道原理

服务器上 MySQL 只绑 127.0.0.1 不给外网连。你在本地用 ssh -L 3307:127.0.0.1:3306 user@服务器IP 建立隧道。本地连 127.0.0.1:3307 等于连到远程 MySQL 的 3306。中间所有流量加密传输,安全组不用开 3306 端口。

怎么配客户端

Navicat 或 DBeaver 连接设置里选 SSH 隧道。填服务器IP、SSH 端口、用户名、密钥或密码。然后 MySQL 连接填 127.0.0.1:3306。客户端自动建立隧道然后连数据库。每次打开客户端自动建立隧道,不影响平时使用。

隧道断了自动重连

网络抖一下 SSH 隧道就会断。用 autossh 替代 ssh:autossh -M 0 -N -L 3307:127.0.0.1:3306 user@服务器IP。断了自动重连,保持隧道一直通着。

其他用到隧道的场景

Redis 6379 同理只开本机不暴露公网,本地通过隧道连。内网的 Web 面板(宝塔、Grafana、Portainer)不暴露公网端口,本地用隧道转发到本地端口。SSH 隧道转发的方向反过来还能让别人访问你本地的服务。

搭好隧道之后安全组里关掉数据库和面板的公网端口。雨云 rain.jiyueip.com,优惠码 admin01 五折。

本文由作者原创/授权发布于极跃圈(jiyueip.com),未经许可,禁止转载。题图来自Unsplash,基于CC0协议。

声明:极跃圈(JIYUEIP.com)内网友所发表的所有内容及言论仅代表其本人,并不反映任何极跃圈(JIYUEIP.com)之意见及观点。

0 / 600
0 讨论
热门最新
总结
暂无总结

暂无数据