我有一个Mongodb阿特拉斯数据库,这是建立与VPC窥视在AWS的VPC。这工作查找和我能够访问它从内部的VPC。然而,我希望提供一个jumpbox,以便开发人员可以使用SSH隧道从VPC之外的工作站连接到Atlas数据库。
Developer workstation --> SSH Tunnel to box in VPC --> Atlas
我对此有困难,因为我不知道我需要建哪条隧道。在我看来,Mongo通过在DNS种子列表(mongodb+srv://)中查找副本信息来连接。所以它没有做的那么简单
ssh user@jumpbox -L 27017:env.somehost.mongodb.net:27017是否有一种方法可以在Atlas上启用直接连接,以便使开发人员能够通过SSH隧道访问此数据库?
发布于 2021-03-08 21:03:34
对于副本集连接,这不能只使用MongoDB和驱动程序,但是您可以尝试在jumpbox上运行像https://github.com/coinbase/mongobetween这样的代理。
对于独立的部署,您可以通过隧道连接,因为驱动程序使用您提供的地址,这就是它的结束。使用directConnection URI选项强制连接到任何部署的节点。虽然这允许您连接到任何节点,但您必须连接到副本集的正确节点(不能写入第二个节点),因此这种方法对于副本集部署的实用程序有限。
对于不在Atlas上的mongos部署,适用独立行为。有了阿特拉斯,就会有驱动程序下面是发布的SRV记录,因此,出于隧道的目的,一个Atlas切分集群的行为就像一个副本集,您不能琐碎地与它进行代理连接。蒙古国也可能在这种情况下起作用。
https://stackoverflow.com/questions/66535866
复制相似问题