我按照以下说明在 gcp 上安装了 redis 服务器。
https://cloud.google.com/community/tutorials/setting-up-redis
我设置了防火墙,使端口6379
对所有 IP 开放(0.0.0.0/0
)
然后,我在同一个项目中创建另一个 GCP 实例。当我尝试连接到我刚刚设置的 redis 服务器时(例如在具有 1.2.3.4 外部 IP 的机器上),我无法这样做。但是当我使用该机器的内部 IP 时,它就起作用了。
另外,当我尝试连接本地机器上的 redis 服务器时,失败(超时)。
当我从与该机器相同的 gcp 项目中的另一个实例使用端口 6379 对机器进行 nmap 时外部的ip 显示
PORT STATE SERVICE
6379/tcp filtered unknown
当我从与该机器相同的 gcp 项目中的另一个实例使用端口 6379 对机器进行 nmap 时内部的ip 显示
PORT STATE SERVICE
6379/tcp open unknown
当我从与机器位于同一 gcp 项目中的本地机器对端口 6379 进行 nmap 时外部的ip 显示
PORT STATE SERVICE
6379/tcp filtered redis
我在这里遗漏了什么?
答案1
我终于知道哪里出了问题。
我没有设置正确的target
。
我以为我可以在目标字段中输入任何内容,但事实证明该字段中的内容将是该规则适用的机器。
选择之后All instances in the network
一切targets
顺利。虽然当我从内部网络进行 nmap 时,端口6379
仍然是一个未知的服务,但它是开放的,我可以使用 redis-cli 连接到 redis 服务器