2

我正在尝试按照本指南从我的本地计算机连接到我的 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 虚拟机转发流量:
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 实例,但端口转发不起作用。

4

2 回答 2

2

按照以下步骤,

  1. 通过从redis-port-forward-vm SSH 终端运行以下命令,在 Compute Engine 虚拟机上安装redis-cli :
    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. 要测试连接,请打开一个新的终端窗口并运行以下命令:
    redis-cli ping
于 2021-05-10T04:08:46.383 回答
1

我假设你正在用REDIS_INSTANCE_IP_ADDRESS价值替换。

--ssh-flag可以gcloud直接传给。

这行得通吗?

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

注意通常它也适用于localhost而不是远程主机的 IP

于 2021-05-06T15:03:10.807 回答