背景介绍
本来阿里云RDS数据库是可以通过互联网连接的,不过为了数据安全,一般不让直接连数据库。
另一方面,由于当前网络环境的一些原因,如果直接连阿里云数据库,容易被网络安全软件视为风险。
实现思路
本地电脑—(建立ssh隧道)—>ECS服务器—(转发请求)—>RDS数据库
实现步骤
第一步:确认前提条件
1.在ECS上可以访问RDS数据库,在ECS上执行命令:
telnet rm-xxxxxx.mysql.rds.aliyuncs.com 3306
检查ECS是否能够连接到RDS(RDS需要配置IP白名单)。
2.本地连ECS有密码和证书文件两种方式,为了安全,推荐使用证书方式。
要连接ECS,需要配置ECS秘钥对,可以参考《通过SSH密钥对登录Linux实例_云服务器 ECS(ECS)-阿里云帮助中心》。
假设得到ECS证书:aliyun-key.pem
注意:在 Windows 上,新创建或下载的文件可能默认权限较宽松(例如 Everyone 可读),SSH 会认为不安全,拒绝使用该私钥。
需要 修改 .pem 文件的权限,只允许当前用户访问。
(1)选中aliyun-key.pem文件,右键 → 属性 → 安全 → 高级。
(2)点击 “禁用继承” → 选择 “将继承的权限转换为此对象的显式权限”
(3)点击 “删除” 按钮,移除所有用户/组(除了你自己的用户)
(4)点击 “添加” → “选择主体” → 输入你的用户名(如 DESKTOP-XXXXX\user)
(5)设置权限:
类型:允许
权限:读取(或“读取和执行”)
(6)确保 只有你自己的用户有权限,其他用户(如 Everyone、SYSTEM 等)都删除或拒绝
(7)点击 确定 保存。
第二步:建立 SSH 隧道(本地 → ECS → RDS)
在你的 本地终端 执行以下命令:
ssh -i E:\***\aliyun-key.pem -L 3307:rm-******.mysql.rds.aliyuncs.com:3306 root@<ECS_IP> -p 22 -N -f
参数说明:
执行后无输出即表示成功(后台运行)
第三步:本地连接 RDS MySQL
隧道建立后,你可以通过本地端口 3307 访问 RDS。
主机:127.0.0.1
端口:3307
数据库用户名和密码用自己数据库对应的账号和密码即可,用图形化工具连接MySQL。
第四步:关闭 SSH 隧道
方法一:使用 任务管理器(最简单,推荐)
快捷键:Ctrl + Shift + Esc 打开 任务管理器
切换到 “详细信息” 选项卡(如果是简体模式,可能叫“进程”)
在列表中找到:ssh.exe 或 OpenSSH.Ssh.exe
或你在 Git Bash/WSL 中运行的终端进程(如 bash.exe)
右键点击该进程 → 选择 “结束任务”。
方法二:使用 命令行(PowerShell) 查找并关闭
1. 打开 PowerShell(以普通用户运行即可)
2. 查找占用本地端口 3307 的进程,记下最后的 PID(如 12345)
3. 根据 PID 查找进程名称:Get-Process -Id 12345,输出可能显示 ssh 或 bash 等。
4.结束进程:Stop-Process -Id 12345 -Force 或直接用 taskkill /PID 12345 /F
发表评论