Google SSH 后云公开应用程序

Google Cloud expose application after SSH

我在私人服务器上有一个 Web 应用程序 运行ning。我使用 ssh 端口隧道将私有服务器端口映射到 google 云 VM 端口 8080,当我这样做时 curl http://localhost:8080 在 gcp VM shell 上,它 returns 是一个有效的响应。但是,当我尝试使用外部 IP 从外部(在浏览器中)访问它时(或在 shell 中执行 curl http://[external_IP]:8080),它 returns“IP 拒绝连接”。

我的防火墙设置允许 8080 上的 TCP 流量 s.t。当我 运行 另一个应用程序在 VM 端口 8080 上直接在没有 ssh 的情况下(比如 docker hello-world 应用程序)时,它可以使用相同的 link 从外部访问并且运行良好。我必须做其他配置吗?

检查您的应用程序是否绑定到 127.0.0.1localhost。如果是,则改为0.0.0.0.

要接受来自 VPC 的流量,需要绑定到连接到 VPC 的网络接口。地址 0.0.0.0 表示绑定到所有网络接口。

网络 127.x.x.x 又名本地主机或环回地址是一个仅限内部 (Class A) 的网络。如果您的应用程序只绑定到内部网络,则外部应用程序无法连接到您的应用程序。

如果您的目标是绑定到 localhost 并使用 SSH 端口转发来访问环回地址,那么像这样启动 SSH:

ssh -L 8080:127.0.0.1:8080 IP_ADDRESS_OF_VM

然后您可以通过以下方式访问 VM 上的端口 8080:

curl http://127.0.0.1:8080

curl 命令正在连接到您本地计算机上的端口 8080。 SSH 然后将连接转发到远程计算机上的端口 8080。