【问题标题】:Connecting to RDS Postgres from remote machine从远程机器连接到 RDS Postgres
【发布时间】:2013-12-24 06:59:18
【问题描述】:

我已经配置了一个 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

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

【问题讨论】:

    标签: postgresql amazon-web-services


    【解决方案1】:

    您可以简单地使用 aws 推荐的工作台,但请确保您的所有 postgres 可用设置为无处不在..同时添加 PostgrSQL 5432

    https://aws.amazon.com/getting-started/tutorials/create-connect-postgresql-db/

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

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

        nc -zv portquiz.net 5432
        

        希望这可以为某人节省半天时间来处理 AWS 安全组。

        【讨论】:

          【解决方案4】:

          RDS 设置向导的第 4 步(“附加配置”)可让您选择数据库是否可公开访问(如果不是,则访问仅限于您的 VPC 内,而不管您的安全组设置如何)。我想这决定了主机名是否解析为 54.* vs 172.* 。

          您的第一个实例可能已设置为私有 - 据我所知,初始化后无法更改。我遇到了类似的问题,创建一个可公开访问的新实例集为我解决了这个问题。

          【讨论】:

          • 这个答案已经有将近 4 年的历史了,所以当时可能还不可能,但是今天如果您进入实例的修改菜单,您可以将您的 RDS 实例从公共更改为私有。那里有一个单选按钮可以打开或关闭公共,然后您可以立即应用或在下一个维护窗口期间应用
          【解决方案5】:

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

          【讨论】:

            【解决方案6】:

            绝对有。我在连接到我的 RDS 实例的本地计算机上加载了 pgadmin。 |

            我刚刚确认我可以使用与 psql 相同的语法进行连接,尽管 -U 对我来说不是必需的(尽管我仍然包含两个“示例”参数)

            我确实编辑了“默认”安全组并添加了我的 IP(我要连接的机器的 IP)/32 以允许,虽然我确信你可以得到比这更少的限制,但我会从那里开始,看看是否有帮助。

            【讨论】:

            • 嘿乔,我试过了,但问题是 RDS 实例没有公共 IP 地址。它位于专用网络上。不确定我在哪里将其配置为具有公共地址。我现在熟悉 vcp 安全组,因为它非常类似于 linux 中的 iptables。我已将其配置为允许来自任何主机但仍无法连接到它。我只能从 ec2 接口连接。我认为我必须做一些配置才能给它一个公共可路由的 IP 地址。当我从远程系统 ping 主机时,它解析为 172.* 地址,但我的 ec2 是 54.*
            • 这很奇怪,因为我的地址解析为 52.* - 我有一个实验服务器“primoweb.c1seoysgtur3.us-east-1.rds.amazonaws.com”(我的实际服务器名称在 aws 中).. 检查它是否解析为 54 地址。我没有做任何特别的事情,也没有支付 IP 地址。我检查了我的设置,发现无法打开或关闭公共 IP 地址。
            • 实际上,您的机器可能有一个 NAT 地址,但它应该可以解析给定域名。
            猜你喜欢
            • 2011-09-03
            • 2018-05-19
            • 2016-09-25
            • 2022-01-26
            • 1970-01-01
            • 1970-01-01
            • 2020-01-16
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多