gpt4 book ai didi

mongodb - 如何禁用 MongoDB TCP 端口?

转载 作者:可可西里 更新时间:2023-11-01 09:13:41 24 4
gpt4 key购买 nike

如何禁用TCP端口?

仅配置 unix 套接字。

用于隔离本地用户。

最佳答案

这至少是一个 5 年前的错误。我发现的唯一问题已作为 WONTFIX 和 RTFM 关闭,但这里针对 2.4 记录的这个问题在某种程度上与以下问题有关:https://jira.mongodb.org/browse/SERVER-9383 .

MongoDB 将拒绝创建 unix 域套接字,除非 IPV4 IP 地址是 127.0.0.1 或 0.0.0.0。您不能在一个界面上运行它或禁用它(出于未说明的原因)。对我来说,这反射(reflect)了 MongoDB 代码的质量。

我将代码追溯到 2011 年,我认为这是一种粗略的破解,目的是防止您意外地让 2 个 mongodb 进程尝试创建相同的套接字文件。如果您在 192.168.1.1:27017 和 192.168.1.2:27017 上运行一个实例,它们都会尝试在以下位置创建相同的套接字文件:/tmp/mongod-27017.sock。由于 10gen 没有人知道为什么要进行检查,因此自 2011 年以来就没有人修复它。由于 EADDRINUSE,很容易检查 127.0.0.1:27017 是否已被使用,但很难检查您的套接字文件已过时或者是否有其他进程创建了它。我不确定为什么他们不只是以不同的方式命名套接字文件。

请在此处查看代码:https://github.com/mongodb/mongo/blob/r2.2.4/src/mongo/util/net/listen.cpp#L91

if (useUnixSockets && (sa.getAddr() == "127.0.0.1" || sa.getAddr() == "0.0.0.0")) // only IPv4
out.push_back(SockAddr(makeUnixSockPath(port).c_str(), port));

关于mongodb - 如何禁用 MongoDB TCP 端口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21421410/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com