postgresql 从远程计算机连接到RDS Postgres

db2dz4w8  于 2023-01-25  发布在  PostgreSQL
关注(0)|答案(6)|浏览(194)

我已配置RDS Postgres微示例进行测试,但连接时遇到问题。我已创建安全组并允许所有主机(0.0.0.0/0)默认连接到端口5432,但由于某种原因我无法连接。我尝试连接到机器上的端口5432,但它似乎已关闭。有什么想法吗?我已验证安全组正在使用正确的安全组。
这是我的配置

TCP
Port (Service)  Source  Action
5432    0.0.0.0/0   Delete

下面是我尝试连接到rds服务的方法

psql -p 5432 -h example.cs945smhrv09.us-west-2.rds.amazonaws.com -U example example
    • 更新**

好吧,在弄清楚RDS是在私有172子网上启动的之后,我觉得有点傻。我能够从我的EC2示例连接。
现在的问题是,有没有办法把它放在一个公共地址,我可以连接到?我想配置它与一个安全组,限制源ip,但然后能够连接到它与psql从我的桌面。

    • 更新2**

我不记得我最初发布这个问题时的所有细节,但现在它不再是一个问题。我们现在有一个管理vpc,我们使用vpn服务器连接到它。管理vpc网络被rds示例的prod和devel安全组信任。我们在不添加任何公共ip的情况下与他们通信没有问题。

6ovsh4lw

6ovsh4lw1#

RDS设置向导的第4步(“Additional Config”)允许您选择DB是否可公开访问(如果不是,则访问仅限于您的VPC内,无论您的安全组设置如何)。我想这将决定主机名解析为54.* 还是172.*。
你的第一个示例可能已经被设置为私有--据我所知,这在初始化后是无法改变的。我有一个类似的问题,创建一个新的示例设置为公共访问解决了这个问题。

5ktev3wc

5ktev3wc2#

我公司的防火墙阻止了到默认postgres端口5432的传出流量。直到我在终端窗口中使用netcat测试该端口时,我才意识到这一点,如下所示:

nc -zv portquiz.net 5432

希望这能节省人们半天的时间来摆弄AWS安全组。

cvxl0en2

cvxl0en23#

当然有。我在连接到RDS示例的本地机器上加载了pgadmin。|
我刚刚确认可以使用与psql相同的语法进行连接,尽管-U对我来说不是必需的(尽管我仍然包含了两个“example”参数)
我确实编辑了“默认”安全组,并添加了我的IP(我正在连接的机器的IP)/32以允许,尽管我相信您可以得到比这更少的限制,但我会从那里开始,看看它是否有帮助。

tkclm6bt

tkclm6bt4#

这可能是由于您的出站防火墙规则造成的。如果您位于企业防火墙之后,他们通常会阻止超过一定数量的出站端口。您需要设置某种类型的SSH隧道来避免这种情况。http://conoroneill.net/accessing-amazon-rds-instances-from-your-desktop/

ozxc1zmp

ozxc1zmp5#

我遇到了这个问题。这不是一个直接的解决方案,但可能对一些人有用。我设置Postgres安全组接受来自将使用它的服务器(同一个VPC)的连接。然后我设置我的Postgres客户端使用ssh隧道。如果我需要使用命令行,我只需SSH到该服务器,然后从那里psql

h9a6wy2h

h9a6wy2h6#

您可以简单地使用aws推荐的工作台,但请确保您的所有postgres availibily设置为无处不在。
https://aws.amazon.com/getting-started/tutorials/create-connect-postgresql-db/

相关问题