我在连接到运行 Windows Server 2012 R2 的 Windows Azure 虚拟机上运行的 mongo 实例时遇到问题。我已经验证了以下内容
- 网络安全组有允许端口 27017 入站的规则 (* -> 27017)
- 虚拟机在所有配置文件上都打开 TCP 端口 27017 入站(目前,我的防火墙已完全禁用)
- Mongo 作为 Windows 服务运行。我已经验证它已启动并正在运行。我能够在运行 Mongo 的远程虚拟机上的 shell 中连接、插入和查找记录
- 当我运行 netstat -a 时,我可以看到 0.0.0.0:27017,状态为“LISTENING”
- 如果我尝试 ping 虚拟机,则会超时(我相信这是预期的情况)
- 端口 22 在防火墙和网络安全组规则中已开放
- 我的本地计算机上没有运行任何第三方防病毒软件
- 我尝试从操作系统和 Azure 门户重新启动虚拟机
- 我尝试从网络安全组中删除规则并读取它们
我尝试使用最基本的命令 mongo <ip-address>
在运行 Windows 10 的本地计算机上的 bash 中通过 SSH 连接。超时并显示消息 ssh: connect to host x.x.x.x port 22: Resource temporarily unavailable
我尝试通过 Putty/SSH 进行连接。结果相同
我尝试通过 MongoDB Compass 进行连接,但出现类似的错误 Could not connect to MongoDB on the provided host and port
有什么想法吗?
这是我正在使用的配置
systemLog:
logAppend: true
verbosity: 0
traceAllExceptions: true
path: c:\MongoLogs\mongolog.log
destination: file
net:
port: 27017
bindIp: [127.0.0.1, <external-ip>]
http:
enabled: true
JSONPEnabled: false
RESTInterfaceEnabled: true
storage:
dbPath: c:\MongoData\
最佳答案
事实证明,该虚拟机附加了多个网络安全组配置文件。当我单击“有效安全规则”时,它显示了第二个选项卡,其中有另一个配置文件,该配置文件似乎是从子网继承的 - 足以说明,它没有所需的权限。通过在该配置文件上打开正确的端口,我们就可以正常进行连接了。我们将清理它,但简而言之,存在权限冲突。
关于windows - 无法连接到远程 Azure Windows 计算机上运行的 MongoDB 实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41519075/