从本地机器连接到 Memorystore for Redis 的端口转发失败

Port forwarding to connect to Memorystore for Redis from local machine failing

我正在尝试按照 this guide 从我的本地计算机连接到我的 Redis 实例,您在其中创建了一个 Compute Engine 实例以用于端口转发到 Redis 实例。

我能够使用以下方法创建 Compute Engine 实例:
gcloud compute instances create redis-port-forward-vm --machine-type=f1-micro --zone=us-east1-d.

当我尝试创建一个 SSH 隧道时,端口通过 Compute Engine VM 转发流量使用:
gcloud compute ssh redis-port-forward-vm --zone=us-east1-d -- -N -L 6379:REDIS_INSTANCE_IP_ADDRESS:6379.

我收到以下错误: channel 2: open failed: connect failed: Connection timed out.

我不明白可能是什么问题,我能够成功通过 SSH 连接到 Compute Engine 实例,但端口转发不起作用。

我假设您要用值替换 REDIS_INSTANCE_IP_ADDRESS

您也可以直接将--ssh-flag传递给gcloud

这个有用吗?

gcloud compute ssh redis-port-forward-vm \
--zone=us-east1-d \
--ssh-flag="-L 6379:localhost:6379"

NOTE Generally it works with localhost rather than the remote host's IP too

按照以下步骤操作,

  1. 通过 运行从 redis-port-forward-vm SSH 终端:
    sudo apt-get install redis-server
  2. 如果尚未创建 Redis 实例,请创建一个并检查您创建的 Redis 实例的端口号(默认情况下为 6379,但对我来说是 6378)。
  3. 运行在你的本地机器终端上执行以下命令
    gcloud compute ssh redis-port-forward-vm --zone=us-east1-d
    redis-cli -h REDIS INSTANCE IP -p PORT NUMBER
  4. 要测试连接,请打开一个新终端 window 和 运行 以下命令:
    redis-cli ping