从本地计算机访问 GCP 实例的 localhost

Hit*_*ani 4 network-programming google-cloud-platform

我正在尝试在 GCP 实例上运行我的 Flask 应用程序。但是,该应用程序会在该实例的本地主机上发布。我想访问该实例本地主机。

我看过几个视频和文章,但几乎都是关于在 GCP 上部署应用程序的。是否没有简单的方法可以将虚拟机实例的本地主机上发布的任何内容转发到我的 PC 浏览器,如果我在应用程序中提交一些信息,那么它会转到虚拟机实例并通过虚拟机实例本地主机将结果返回到我的本地计算机的浏览器。

Neo*_*son 11

您可以在进入 GCP 中托管的目标实例Local Port Forwarding时使用。ssh

Local port forwarding允许您从本地计算机连接到另一台服务器。要使用本地端口转发,您需要知道您的目标服务器、源端口和目标端口。

您应该已经知道您的目标服务器。目标端口必须是您的 Flask 应用程序正在侦听的端口。源端口可以是本地计算机上未使用的任何端口。

假设 Flask 应用程序正在侦听8080GCP 实例上的端口,并且您希望使该应用程序在本地计算机的 port 上可用9876,请使用以下命令 ssh 到您的 GCP 实例:

ssh -L 9876:127.0.0.1:8080 <username>@<gcpInstanceIP>
Run Code Online (Sandbox Code Playgroud)


gcloud compute ssh如果目标实例上没有 ssh 密钥,则可以实现相同的结果。
--参数必须在左侧的 gcloud 特定参数和右侧的 SSH_ARGS 之间指定:

gcloud compute ssh <gcp-instance-name> --zone=<instance-zone> -- -L <source-port>:localhost:<target-port>
Run Code Online (Sandbox Code Playgroud)


您还可以使用 Google Cloud Shell:

  • Activate Cloud Shell位于 GCP Web 界面的右上角
  • ssh 进入您的实例Local Port Forwarding
gcloud compute ssh <gcp-instance-name> --zone=<instance-zone> -- -L 8080:localhost:<target-port>
Run Code Online (Sandbox Code Playgroud)
  • 单击Web Preview中的Google Cloud ShellPreview on port 8080在此输入图像描述