SSH穿透ECS访问内网RDS数据库

SSH穿透ECS访问内网RDS数据库

一、前言

处于安全考虑,RDS一般只会允许指定的IP进行访问,而我们开发环境的IP往往是动态的,每次IP变动都需要去修改RDS的白名单,为我们的工作带来很大的不便。

那么如何去解决这个问题?

假如我们有一台ESC服务器,ESC服务器跟RDS在同一个内网之中,只需要将ECS内网IP添加到RDS白名单,然后我们通过SSH进行端口转发,就可以通过内网形式访问数据库了。这样做更安全,由于IP是固定的,效率也更高。但是访问速度就取决于当前ESC的带宽了,不过这对于我们开发来说往往是足够的了。

二、SSH穿透配置

在这里我推荐使用MobaXterm这个SSH连接工具,当然其他的各种SSH工具都可以,之所以推荐MobaXterm,是因为免费、启动速度快、界面好看、还集成了文件管理器。

关于SSH穿透RDS配置,我就直接上图。

打开MobaXterm在菜单找到Tunneling,用鼠标使劲戳它。

image-20211110110650477

在弹出界面的左下角点 New SSH tunnel,然后进行如下配置:

image-20211110111048408

第1步,就是你内外的RDS地址,第2步就是RDS端口。

第3、4、5步就是你ESC的公网IP、用户、端口,这台ECS的内网IP需要提前添加到RDS的白名单中。

第6步就是在你本地开放一个端口,用来映射第2步指定的端口。到时你在代码里通过127.0.0.1:3306访问的实际就是第1、2步所对应的地址和端口。

配置完成后记得点Save按钮进行保存,保存完后会进入列表界面,但对应的启动按钮就可以了。现在就可以在代码里愉快的访问RDS了。

image-20211110111547784

SSH穿透不止于RDS穿透这个功能,其他服务器、端口也可以按此配置进行穿透。

本博客采用 知识共享署名-禁止演绎 4.0 国际许可协议 进行许可

本文标题:SSH穿透ECS访问内网RDS数据库

本文地址:https://dev-tang.com/post/2021/11/ssh-tunnel.html

推荐阅读