我们在 Windows 上使用默认端口 (27017) 使用 MongoDB 副本。
我们的服务器都位于防火墙后面,我们希望将防火墙配置为仅允许打开默认端口。
但是,查看 netstat 时,我们会看到使用了以下端口:
[mongod.exe]
TCP 0.0.0.0:27017 SERVER-NAME:0 LISTENING
[mongod.exe]
TCP 0.0.0.0:47001 SERVER-NAME:0 LISTENING
为什么 mongo 要使用动态端口 47001?我们必须在防火墙上打开动态端口(除了默认的 27017)才能允许其他服务器访问它。
为什么 mongo 需要动态端口?我至少可以强制它使用预配置的端口吗?
谢谢!
答案1
看到我们如何看到默认端口正在用于实例mongo
,端口必须来自shardsvr
或configsvr
运行时。
根据评论来判断......
最好的办法是检查副本集是否正在使用这些端口。
db.runCommand( { replSetGetStatus : 1 } )
所使用的端口应显示在name
输出文档的一部分中。