【问题标题】:Connecting to Postgres using private IP使用私有 IP 连接到 Postgres
【发布时间】:2019-04-12 13:31:35
【问题描述】:

在创建我的 Postgres Cloud SQL 实例时,我指定使用私有 IP 连接到它,并选择了我的 default 网络。

我的虚拟机位于同一个 default 网络中。

现在,我按照此处https://cloud.google.com/sql/docs/postgres/connect-compute-engine 中的说明进行操作 并尝试执行

psql -h [CLOUD_SQL_PRIVATE_IP_ADDR] -U postgres

来自我的虚拟机,但收到此错误:

psql: could not connect to server: Connection timed out 是服务器 在主机“CLOUD_SQL_PRIVATE_IP_ADDR”上运行并接受 TCP/IP 连接 5432端口?

我正在寻找什么?

附:我的Service Networking API(不管是什么)已启用。

【问题讨论】:

  • 您是使用 Cloud SQL 创建 Postgres 还是只在自己的实例中安装 postgres?
  • @howie Cloud SQL
  • 根据documentation,PostgreSQL 实例和 Google Compute Engine 实例必须位于同一区域。您的 GCE 实例与您的 PostgreSQL 是否在同一区域?
  • 我遇到了同样的问题。我检查了自动设置中的 Cloud SQL“私有 IP”框,它似乎成功创建了“私有服务网络”、IP 范围分配、VPN 对等连接和其他一切,但我仍然无法连接到 Cloud SQL实例,从 VM 实例 ping 其私有 IP 等。我还检查以确保我可以通过 公共 IP 连接到 Cloud SQL 实例,只要我将其添加到 VM 的公共 IP 到 Cloud SQL 的接受列表中,就可以正常工作.还在挖掘中,如果我弄明白了会在这里更新。
  • 您是从 Docker 容器连接还是直接在 VM 实例上的操作系统中连接?

标签: google-cloud-platform google-cloud-sql


【解决方案1】:

如果您通过 ssh 连接到同一网络中的虚拟机,则可以使用云 SQL 代理连接到 Cloud SQL:

  1. 打开 ssh 窗口(计算机引擎中的 VM-instances 并单击 ssh),然后使用以下命令下载代理文件:
wget https://dl.google.com/cloudsql/cloud_sql_proxy.linux.amd64 -O cloud_sql_proxy
  1. 在 ssh shell 中执行
chmod +x cloud_sql_proxy 
  1. 创建具有 Cloud SQL Client 角色的服务帐户并创建 api 密钥。在本地计算机中下载 json 密钥。

  2. 在ssh vm shell中点击滚轮“上传”,上传密钥文件

  3. 5.
./cloud_sql_proxy -instances=<Instance connection name>=tcp:5432 -credential_file=<name of the json file>

“实例连接名称”可以在 SQL-Overview 中找到 -> 连接到此实例

  1. 终于
psql "host=127.0.0.1 port=5432 sslmode=disable user=<your-user-name> dbname=<your-db-name>"

另一方面,如果您想从本地计算机连接到云 sql,并且云 sql 实例没有公共 ip,则必须通过堡垒主机配置进行连接。

https://cloud.google.com/solutions/connecting-securely

【讨论】:

    【解决方案2】:

    根据本文connect via private ip,您需要设置以下项目:

    • 您必须为您的项目启用服务网络 API。如果您使用的是共享 VPC,您还需要为宿主项目启用此 API。
    • 启用 API 需要 servicemanagement.services.bind IAM 权限。
    • 建立私有服务访问需要网络管理员 IAM 角色。
    • 为您的网络建立私有服务访问权限后,您无需网络管理员角色即可将实例配置为使用私有 IP。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-09-07
      • 1970-01-01
      • 2019-12-28
      • 2020-01-01
      • 2021-06-02
      • 1970-01-01
      • 2023-03-30
      • 1970-01-01
      相关资源
      最近更新 更多