首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何从本地主机连接到私有RDS

如何从本地主机连接到私有RDS
EN

Stack Overflow用户
提问于 2021-11-29 14:56:45
回答 1查看 1.3K关注 0票数 2

我有一个带有私有子网的私有VPC,一个私有子网中的私有jumpbox,以及我在另一个私有子网中的私有RDS极光MySql无服务器实例。

我在本地笔记本上执行了这些命令,试图通过端口转发连接到我的RDS:

代码语言:javascript
运行
复制
aws ssm start-session --target i-0d5470040e7541ab9 --document-name AWS-StartPortForwardingSession --parameters "portNumber"=["5901"],"localPortNumber"=["9000"] --profile myProfile

aws ssm start-session --target  i-0d5470040e7541ab9 --document-name AWS-StartPortForwardingSession --parameters "portNumber"=["22"],"localPortNumber"=["9999"] --profile myProfile 

aws ssm start-session --target  i-0d5470040e7541ab9 --document-name AWS-StartPortForwardingSession --parameters "portNumber"=["3306"],"localPortNumber"=["3306"] --profile myProfile 

到服务器的连接挂起。

我的本地笔记本电脑出了这个错误:

代码语言:javascript
运行
复制
Starting session with SessionId: myuser-09e5cd0206cc89542
Port 3306 opened for sessionId myuser-09e5cd0206cc89542.
Waiting for connections...

Connection accepted for session [myuser-09e5cd0206cc89542]

Connection to destination port failed, check SSM Agent logs.

以及/var/log/amazon/ssm/errors.log中的这些错误

代码语言:javascript
运行
复制
2021-11-29 00:50:35 ERROR [handleServerConnections @ port_mux.go.278] [ssm-session-worker] [myuser-017cfa9edxxxx] [DataBackend] [pluginName=Port] Unable to dial connection to server: dial tcp :3306: connect: connection refused
2021-11-29 14:13:07 ERROR [transferDataToMgs @ port_mux.go.230] [ssm-session-worker] [myuser-09e5cdxxxxxx] [DataBackend] [pluginName=Port] Unable to read from connection: read unix @->/var/lib/amazon/ssm/session/3366606757_mux.sock: use of closed network connection

我试着像这样连接RDS:

我甚至尝试使用ssh隧道放置RDS端点,但它不起作用:

在远程服务器EC2-实例上还有其他步骤要执行吗?

连接似乎已被接受,但到目标端口的连接不起作用。

谢谢你在这方面的帮助!

EN

回答 1

Stack Overflow用户

发布于 2021-12-28 21:36:43

开始会话命令将端口从目标EC2实例隧道到本地主机。RDS实例位于另一个主机上,因此必须使用SSH隧道。

将您的公钥发送到EC2实例。填写区域和可用性区域参数。

代码语言:javascript
运行
复制
aws ec2-instance-connect send-ssh-public-key --region us-west-2 --instance-id i-0d5470040e7541ab9 --availability-zone us-west-2a --instance-os-user ec2-user --ssh-public-key file://~/.ssh/id_rsa.pub

将SSH端口22从EC2实例本地转发到9999。

代码语言:javascript
运行
复制
aws ssm start-session --target i-0d5470040e7541ab9 --document-name AWS-StartPortForwardingSession --parameters "portNumber"=["22"],"localPortNumber"=["9999"] --profile myProfile

使用隧道进入实例的SSH (在另一个终端中)。填写RDS -实例- DNS与您的RDS实例DNS。

代码语言:javascript
运行
复制
ssh ec2-user@localhost -L 6606:rds-instance-dns:3306  -i ~/.ssh/id_rsa -p 9999

存取RDS

代码语言:javascript
运行
复制
mysql -h localhost -p 6606

还需要通过配置安全组来确保EC2实例具有访问RDS实例的正确权限。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70156742

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档