处于安全考虑,RDS一般只会允许指定的IP进行访问,而我们开发环境的IP往往是动态的,每次IP变动都需要去修改RDS的白名单,为我们的工作带来很大的不便。
那么如何去解决这个问题?
假如我们有一台ESC服务器,ESC服务器跟RDS在同一个内网之中,只需要将ECS内网IP添加到RDS白名单,然后我们通过SSH进行端口转发,就可以通过内网形式访问数据库了。这样做更安全,由于IP是固定的,效率也更高。但是访问速度就取决于当前ESC的带宽了,不过这对于我们开发来说往往是足够的了。
二、SSH穿透配置
在这里我推荐使用MobaXterm这个SSH连接工具,当然其他的各种SSH工具都可以,之所以推荐MobaXterm,是因为免费、启动速度快、界面好看、还集成了文件管理器。
关于SSH穿透RDS配置,我就直接上图。
打开MobaXterm在菜单找到Tunneling,用鼠标使劲戳它。
在弹出界面的左下角点 New SSH tunnel,然后进行如下配置:
第1步,就是你内外的RDS地址,第2步就是RDS端口。
第3、4、5步就是你ESC的公网IP、用户、端口,这台ECS的内网IP需要提前添加到RDS的白名单中。
第6步就是在你本地开放一个端口,用来映射第2步指定的端口。到时你在代码里通过127.0.0.1:3306访问的实际就是第1、2步所对应的地址和端口。
配置完成后记得点Save按钮进行保存,保存完后会进入列表界面,但对应的启动按钮就可以了。现在就可以在代码里愉快的访问RDS了。
SSH穿透不止于RDS穿透这个功能,其他服务器、端口也可以按此配置进行穿透。