无法通过 Google 虚拟机(通过反向 SSH)将 PostgreSQL 暴露给云

问题描述 投票:0回答:1

我想使用 Google 虚拟机(通过反向 ssh 隧道)将在我的 RPi 中运行的 Postgresql 公开到云中。但我无法实现。

以下是在谷歌虚拟机中完成的步骤

  1. 添加了标记名为
    allow-postgresql
  2. 的防火墙规则
  3. 在 VM 实例的网络标签中添加了标签名称
    allow-postgresql
  4. 重启机器

以下是在RPi中完成的步骤

  1. 已安装 PostgreSQL。启动并运行。
  2. 生成 SSH 密钥。
  3. 将公钥添加到 Google 虚拟机 -> SSH 密钥列表。
  4. 执行了以下命令 ssh -f -N -R 5432:localhost:5432 $google_vm_ip

以下是在RPi中做的测试

  1. nc -zv 本地主机 5432
  • 产生输出
    Connection to localhost 5432 port [tcp/postgresql] succeeded!

以下是谷歌虚拟机(SSH)中的测试

  1. nc -zv 本地主机 5432
  • 产生输出
    Connection to localhost 5432 port [tcp/postgresql] succeeded!
  1. nc -zv domain.com 5432
  • 产生输出
    nc: connect to domain.com port 5432 (tcp) failed: Connection refused
  1. nc -zv 5432
  • 哪个产生输出
    nc: connect to <public_ip_of_vm> port 5432 (tcp) failed: Connection refused

所以,如果我通过 SSH 进入,那么我就能够访问反向 SSH 隧道。但出于某种原因,我无法公开访问它。

我不确定,我错过了什么。任何想法都会有所帮助。

postgresql google-cloud-platform ssh-tunnel
1个回答
0
投票

您的 SSH 隧道正在监听

localhost
。那不是公共网络,只能从虚拟机(实际上是操作系统)内部访问。

如果你想通过虚拟机从互联网连接到你的树莓派,那么你应该绑定到连接到公共 IP 地址的接口。

localhost
替换为网络接口的私有IP地址。

在谷歌云中,公共 IP 地址通过特殊的 1 对 1 NAT 映射到私有 IP 地址。因此绑定到与公共 IP 地址对应的私有 IP 地址。

Google Cloud Console GUI 将列出每个 VM 的私有和公共 IP 地址。您可能需要启用这些列才能看到列表中的值。

© www.soinside.com 2019 - 2024. All rights reserved.