我想通过堡垒主机在私有子网中建立与我的rds的连接。我可以通过SSH毫无问题地访问堡垒主机,并且已经在RDS DB所在的专用子网中打开了安全组,以接收来自堡垒主机安全组的传入流量。 现在有两种可能性可以连接到RDS实例。 解决方案1.在堡垒主机上安装MySQL commndline工具,并使用它连接到RDS DB 解决方案2.通过本地计算机上的端口转发访问RDS。
我可以通过Bastion Host通过MySQL命令进行连接,但是很难使端口转发正常进行。当我使用
ssh -i ecs_key.pem -NL 3007:mydb3.co2qgzotzpzu.eu-west-1.rds.amazonaws.com:3306 ubuntu@ec2-56-18-172-97.eu-west-1.compute.amazonaws.com
我最终还是在堡垒主机上。有人可以向我解释这两种解决方案之间是否有区别,还是我应该坚持对我有用的解决方案1。
Merci A
答案 0 :(得分:0)
您需要在localhost:3007而不是9000上连接
答案 1 :(得分:0)
两种解决方案之间的区别在于,在解决方案1中,您必须在堡垒上安装mysql命令行工具,而在使用隧道(解决方案2)时,可以使用计算机上的工具通过隧道进行连接。 / p>
我不想用本机上已有的工具来使堡垒主机混乱。堡垒主机的最佳实践是通过仅安装最小的sshd配置以允许您设置隧道,而不安装大量的开发工具来最大程度地减少攻击面。
同样,如果要安装SQL Studio工具(如Workbench或Dbeaver),则需要在本地使用它,并通过隧道进行连接。
您的隧道设置看起来正确。坚持下去。
尝试:
'mysql --host = 127.0.0.1 --port = 3007 --user = myname --password'
注意 当为host参数指定localhost时,MySQL使用套接字,并忽略端口设置。请改用127.0.0.1。看到 https://dev.mysql.com/doc/refman/8.0/en/connecting.html