[试图理解它是如何工作的,文档不是很清楚。使用AWS quickstart-mongo,我使用堡垒服务器为3个Mongo节点创建了VPN。我可以通过SSH和密钥登录到堡垒服务器。然后,我可以将密钥复制到堡垒服务器,然后将SSH复制到主副本节点。该节点正在运行mongo,并通过rs.status()显示所有3个节点都在正确运行。
登录到堡垒服务器后,我尝试执行curl primary-mongo-node-ip:27017
,并且似乎挂起。
本地计算机->堡垒服务器->副本节点1/2/3
[我想我知道我需要以某种方式连接到堡垒服务器,然后将ssh转发设置为primary-mongo-node-ip:27017,sec1-mongo-node-ip:27017,sec2-mongo-node-ip: 27017,这样我的mongo URI连接看起来像这样:
SSH进入bastion-dnsmongodb:// user:pass @ localhost:1000,localhost:1001,localhost:1002 /数据库
当我无法通过事件无法连接到没有SSH的堡垒服务器上的服务器时,该怎么办?
假设Mongo实例允许来自堡垒主机(在安全组中)的必需端口的通信,您可以使用SSH隧道机制从本地主机访问群集/实例:
ssh -N -L <local_port_x>:<mongoDB instance ip>:<mongo_port_y> <ssh_username>@<bastion_host_ip> -i <ssh_key_path>
[Local_Port_X
:您要访问远程Mongo实例的本地计算机上的端口
MongoDB Instance IP
:托管MongoDB的ec2实例的IP地址
[Mongo_Port_Y
:MongoDB正在监听的端口(您的问题似乎是27017-请确保您可以从此端口上的堡垒主机内与Mongo Instance对话)]]
[Bastion_Host_Ip
:堡垒主机上的IP地址,应该直接从本地计算机访问]