一般来讲,内网的RDS都是不希望外网连接的,比如生产环境。所以这种作死小技巧一般不要轻易使用哦。
想要直接访问阿里云内网RDS,那么一台跳板机是绕不开的,所以前提是你得有一台与目标RDS处于同一内网的ECS。
数据库可视化工具连接
可视化工具是可以直接配置跳板机的,配置方法大同小异。
DataGrip
Navicat
Springboot本地环境连接
1、配置SSH免密登录跳板机
本地运行
ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key: [输入自定义文件名,直接回车默认为id_rsa]
后续一路回车默认就行
为了方便演示,定义文件名为mykey,文件生成路径为当前用户家目录/.ssh/。
增加秘钥至 ssh-agent 的高速缓存
ssh-add -K ~/.ssh/mykey
将公钥文件mykey.pub上传至跳板机,路径随意。此举主要是为了方便将公钥内容追加至指定文件,防止手动复制出错。
在跳板机服务器上运行以下命令,将公钥内容追加至authorized_keys
cat mykey.pub >> ~/.ssh/authorized_keys
为该文件修改权限为600
chmod 600 ~/.ssh/authorized_keys
测试连通性,本地运行命令
ssh [your/username]@[your/server/ip]
能正常联通,说明配置成功。
2、打开代理通道
ssh -L [local/port]:[database/host]:[database/port] -i [rsa/dir] [proxy/server/user]@[proxy/server/host] -p [proxy/server/port]
举例说明:
ssh -L 1921:pgm-xxx.pg.rds.aliyuncs.com:1921 -i /Users/ant/.ssh/mykey root@47.100.22.222 -p 22
- 第一个1921:本地端口,可自定义
- pgm-xxx.pg.rds.aliyuncs.com:需要连接的内网RDS地址,从阿里云RDS控制台获取
- 第二个1921:RDS服务的端口
- /Users/ant/.ssh/mykey:在第一步免密登录中生成的私钥
- root@47.100.22.222:免密登录跳板机的用户名,跳板机地址
- 22:端口
运行后若命令行登录至跳板机,则说明通道打开成功。
3、本地连接
127.0.0.1:1921下的流量会被直接转发至内网RDS上,所以使用127.0.0.1即可连接。