You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何搭建本地代理服务器通过SSH隧道连接AWS VPC内MySQL供Hibernate使用

实现本地代理访问VPC内MySQL的方案

没问题,我来帮你搞定这个需求!你要的就是通过SSH本地端口转发搭建一个「隐形代理」,完全不用修改微服务的核心配置逻辑,只需要把微服务的MySQL端点指向本地端口就行,具体步骤如下:

准备工作

你需要先确认这些基础条件和信息:

  • 一台AWS VPC内的堡垒机(Bastion Host):这台EC2实例必须有公网IP,且能通过SSH登录;它的安全组要允许你的本地IP访问22端口(SSH),同时要允许访问目标MySQL实例的3306端口。
  • MySQL实例的安全组:要允许堡垒机的私有IP访问3306端口(因为堡垒机和MySQL在同VPC内,用私有IP即可)。
  • 本地有SSH客户端:Linux/macOS自带终端,Windows用PowerShell或者Putty都可以。

建立SSH隧道(核心步骤)

这一步就是把本地端口和VPC内的MySQL端口做绑定,相当于在本地和MySQL之间搭了一条加密通道,通过堡垒机中转。

方式1:Linux/macOS终端或Windows PowerShell

直接在终端里运行这条命令(替换成你的实际信息):

ssh -L 3306:your-mysql-rds-endpoint:3306 ec2-user@your-bastion-public-ip -i /path/to/your-aws-key-pair.pem

参数解释:

  • -L 3306:xxx:3306:把本地的3306端口,转发到your-mysql-rds-endpoint的3306端口
  • ec2-user@your-bastion-public-ip:堡垒机的SSH登录用户名和公网IP
  • -i /path/to/xxx.pem:你的AWS密钥对文件路径(如果堡垒机用密码登录可以去掉这个参数)

运行后保持终端窗口打开,关闭窗口隧道就会断开。

方式2:Windows Putty(图形界面)

如果你习惯用图形工具:

  1. 打开Putty,在「Session」面板输入堡垒机的公网IP,端口填22
  2. 左侧导航栏选「Connection → SSH → Tunnels」:
    • 在「Source port」填3306
    • 在「Destination」填your-mysql-rds-endpoint:3306
    • 选择「Local」,点击「Add」
  3. 回到「Session」面板,保存配置(方便下次快速使用),然后点击「Open」登录堡垒机

测试并配置微服务

  1. 先验证隧道是否正常:用本地MySQL客户端连接localhost:3306,输入原来的MySQL用户名和密码,如果能成功连接,说明隧道通了。
  2. 配置RdsConnector:直接把微服务里的MySQL端点改成localhost:3306,其他配置(用户名、密码、数据库名)完全和云端一致,不用做任何修改!

额外注意事项

  • 如果本地3306端口被占用(比如本地装了MySQL),可以换个端口,比如3307:把命令里的3306改成3307,然后微服务连接localhost:3307就行。
  • 堡垒机的安全组一定要配置正确:允许你的本地IP访问22端口,同时允许访问MySQL的3306端口;MySQL的安全组要允许堡垒机的私有IP访问3306端口。
  • 如果你想让隧道在后台静默运行,可以给SSH命令加-fN参数:
    ssh -fN -L 3306:your-mysql-rds-endpoint:3306 ec2-user@your-bastion-public-ip -i /path/to/your-key-pair.pem
    
    要关闭后台隧道的话,用lsof -i :3306找到进程ID,再用kill <PID>结束进程即可。

内容的提问来源于stack exchange,提问作者K. M

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 06:44:11