当前位置: 首页 > 知识库问答 >
问题:

尝试通过VPC连接到MongoDB Atlas时Google Compute Engine超时

方昊
2023-03-14

我正在做一个mongoexport,然后是一个5000万记录集的BigQuery负载。我的所有云功能和应用引擎实例都可以通过VPC对等连接设置,通过无服务器VPC访问GCP托管的我们的Atlas,很好地连接到MongoAtlas

但是,我无法让计算引擎实例通过我们的VPC连接。当我添加计算引擎实例外部IP时,它连接良好。当我删除它并为计算引擎实例添加内部IP时,我得到超时,但它确实显示:

2021-01-10T18:09:44.531+0000    could not connect to server: server selection error: server selection timeout, curr
ent topology: { Type: ReplicaSetNoPrimary, Servers: [{ Addr: ***.mongodb.net:27017, Type: Unkn
own, State: Connected, Average RTT: 0, Last error: connection() : dial tcp *.*.*.*:27017: i/o timeout }, { Ad
dr: ***.mongodb.net:27017, Type: Unknown, State: Connected, Average RTT: 0, Last error: connec
tion() : dial tcp *.*.*.*:27017: i/o timeout }, { Addr: ***.mongodb.net:27017, Type: Unkn
own, State: Connected, Average RTT: 0, Last error: connection() : dial tcp *.*.*.*:27017: i/o timeout }, ] }

所以我最好的猜测是我没有输入正确的IP范围,或者正确的特定IP来允许计算引擎实例在内部连接,这似乎是Mongo Atlas防火墙阻止。

通过VPC在计算引擎和mongo地图集之间建立连接的正确步骤是什么,这样就没有入口/出口,连接是直接的。

共有3个答案

秦锐
2023-03-14

您的问题如下:您正在尝试访问此DNS以连接您的MongoDB地图集集群***。mongodb.net。此DNS是公共的,您的VM需要在Internet上解析此DNS。因为您没有公共IP,所以无法访问Internet。

解决方案是使用云NAT允许您的VM访问Internet。

袁骏祥
2023-03-14

我建议您使用GCP上的智能工具来丢弃任何防火墙问题,请记住该工具模拟的数据包不是真实的数据包。一旦放弃GCP级别的防火墙规则,请确保内部防火墙允许通信。

蒯嘉赐
2023-03-14

我想这个问题的原因也是防火墙设置。

遵循以下2个步骤。

第1步。检查VPC对等状态

当“状态”处于活动状态时,您可以使用VPC对等互连的内部访问。

检查它是否处于活动状态。

第2步。检查防火墙规则

如果您没有接触防火墙规则,请添加一个规则,允许双方的CIDR范围。

 类似资料:
  • 我正在使用SpringMVC和Hibernate构建一个应用程序。我还没有将Hibernate和Spring集成在一起(对两者都是新的),并且希望确保可以首先通过Hibernate打开会话。 我创建了一个简单的函数来测试,当前收到以下错误: 线程“main”java.lang.nosuchmethoderror中出现异常:org.hibernate.integrator.internal.inte

  • 问题内容: 我刚刚在跟随他们的网页时安装了Docker- Toolbox 我开始看下面 但是当我尝试表演时,这就是我所看到的 怎么了? 问题答案: 今天早上我遇到了同样的问题,以下内容为我解决了这个问题: 看来这是由于Docker虚拟机进入了一种奇怪的状态。这里有一个开放的github问题

  • 我正在尝试连接到远程主机以发出命令,但在运行代码时收到以下错误消息: SSH:握手失败:SSH:密钥交换没有通用算法;提供的客户端:[curve25519-sha256@libssh.org ecdh-sha2-nistp256 ecdh-sha2-nistp384 ecdh-sha2-nistp521 difffie-hellman-group14-sha1],提供的服务器:[difffie-h

  • 试图通过IMAP连接连接到gmail,捕获javax.mail.MessagingException 堆栈跟踪: 主:

  • 我们使用PgBouncer作为基于spring的应用程序连接池的中间件。在应用程序中,我们使用HikariCP进行应用程序级连接池。 我们将HikariCP的值设置为一小时,将设置为30秒。

  • 我试图通过AWS SES发送一封带有SMTP的电子邮件,我正在使用这个