通过终端通过端口转发访问私有子网中的 RDS



我想通过堡垒主机在私有子网中与我的 rds 建立连接。我可以通过 SSH 毫无问题地访问堡垒主机,并且已在 RDS DB 所在的私有子网中打开了安全组,以便从堡垒主机安全组传入流量。 现在有 2 种连接到 RDS 实例的可能性。 解决方案 1.在堡垒主机上安装MySQL通信工具,并使用它来连接到RDS数据库 解决方案 2.通过从我的本地计算机进行端口转发访问 RDS。

我可以通过堡垒主机的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。

梅西·

您需要在本地主机上连接:3007,而不是9000

两种解决方案之间的区别在于,在解决方案1中,您必须在堡垒上安装mysql命令行工具,而对于隧道(解决方案2(,您可以使用计算机上的工具通过隧道进行连接。

我宁愿不要用本地已有的工具弄乱堡垒主机。堡垒主机的最佳做法是仅安装最低 sshd 配置以允许设置隧道,而不安装一堆开发工具,从而最大程度地减少攻击面。

同样,如果你想安装像Workbench或Dbeaver这样的SQL studio工具,你将需要在本地使用它,并通过隧道进行连接。

您的隧道设置看起来正确。坚持下去。

尝试:

'mysql --host=127.0.0.1 --port=3007 --user=myname --password'

注意 当为主机参数提供本地主机时,MySQL使用套接字并忽略端口设置。请改用 127.0.0.1。看 https://dev.mysql.com/doc/refman/8.0/en/connecting.html

最新更新