本地通过阿里云ECS建立SSH隧道连接阿里云RDS MYSQL数据库

背景介绍

本来阿里云RDS数据库是可以通过互联网连接的,不过为了数据安全,一般不让直接连数据库。

另一方面,由于当前网络环境的一些原因,如果直接连阿里云数据库,容易被网络安全软件视为风险。

实现思路

本地电脑—(建立ssh隧道)—>ECS服务器—(转发请求)—>RDS数据库

QQ20250826-140121.png

实现步骤

第一步:确认前提条件

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

参数说明:

QQ20250826-140135.png

执行后无输出即表示成功(后台运行)

第三步:本地连接 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 

 

发表评论

称呼 *
联系方式 * 方便与您联系,不会对外显示。
内容
验证码