当前位置: 首页 > news >正文

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

背景介绍

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

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

实现思路

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

组件说明
本地电脑你的开发机(Mac/Windows/Linux)
ECS 实例阿里云 ECS,与 RDS 在同一 VPC,能访问 RDS
RDS MySQL内网地址如 rm-xxxxxx.mysql.rds.aliyuncs.com:3306
连接方式使用 .pem 私钥文件登录 ECS,建立 SSH 隧道
目标本地通过 127.0.0.1:3307 安全连接 RDS MySQL

实现步骤

第一步:确认前提条件

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

参数说明:

参数作用
-i /aliyun-key.pem指定私钥文件
-L 3307:rm-xxxxxx...:3306将本地 3307 端口转发到 RDS
root@<ECS公网IP>ECS 的登录用户和公网 IP
-p 22SSH 端口(默认 22)
-N不执行远程命令(仅端口转发)
-f后台运行

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

第三步:本地连接 RDS MySQL

隧道建立后,你可以通过本地端口 3307 访问 RDS。

用图形化工具连接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,输出可能显示 sshbash 等。

4.结束进程:Stop-Process -Id 12345 -Force 或直接用 taskkill /PID 12345 /F

http://www.dtcms.com/a/352117.html

相关文章:

  • 【P2P】RELAY服务2:cmake+ c实现及ubuntu运行
  • 淘宝/天猫商品详情API数据解析【附代码】
  • 软件检测报告:XML外部实体(XXE)注入漏洞原因和影响
  • 【Erdas实验教程】031:遥感图像频率域增强(傅立叶变换)
  • BCI良好棉花认证标准及申请条件(2025年最新版)
  • 加密狗与U盘的核心区别,U盘能否替代加密狗?
  • 电力工程大模型驱动AI工程计算:从“算错挨骂”到“一键精准”
  • 开发指南135-CSS中定义参数
  • 技术干货丨基于SimSolid的塑胶模具温度场瞬态分析
  • 【贪心算法】day3
  • win11在安装com0com软件后,在设备管理器中虚拟串口黄色感叹号得解决方法
  • 什么是Webpack的热更新(Hot Module Replacement)?原理是什么?
  • 2 梯度下降算法
  • 面试 总结(1)
  • 博士招生 | 南洋理工大学 PINE Lab 招收全奖博士
  • 一文看懂@Bean注解的原理
  • Markdown 编辑器 语法
  • 18、移动应用系统分析与设计
  • 字帖生成器怎么用?电脑手机双端操作指南
  • halcon的默认图像坐标系是怎么样的?
  • Agent实战教程:LangGraph关于智能体的架构模式与核心概念
  • MySQL表的管理
  • Matplotlib渲染性能提升10倍:底层原理与实战技巧
  • 具身智能常用【数据集】汇总篇
  • 三菱FX5U PLC访问字变量的某一位
  • 信长之野望 新生 威力加强版 送修改器 免安装中文版
  • 基于 MediaPipe + Three.js 的实时姿态可视化前端
  • clip等llm模型预研
  • vue3和react的异同点
  • nacos基础