MongoDB 网络设置全览
核心参数清单
- 基础监听
- port:监听端口,默认 27017。
- bindIp:绑定的 IP 地址列表,默认 127.0.0.1(MongoDB 3.6+ 起更严格,仅本地)。可填多个地址(逗号分隔),也可在地址中直接加入 Unix 域套接字路径(如:/data/mongodb/27017/run/mongodb.sock)。
- bindIpAll:是否绑定到所有地址,默认 false;自 3.6 引入,且优先级高于 bindIp。设为 true 时将以“监听所有地址”为准。
- ipv6:是否启用 IPv6,默认 false。
- 连接与传输
- maxIncomingConnections:最大并发入站连接数,默认 65536。
- wireObjectCheck:是否校验客户端 BSON 有效性,默认 true(开启会对性能有轻微影响)。
- Unix 域套接字
- unixDomainSocket.enabled:是否启用 Unix Domain Socket,默认 true。
- unixDomainSocket.pathPrefix:套接字文件目录与前缀,默认 /tmp(实际文件通常为 /tmp/mongodb-<端口>.sock)。
- unixDomainSocket.filePermissions:套接字文件权限,默认 0700。
- 传输加密(TLS/SSL)
- ssl.mode:加密模式,常见值 disabled / allowSSL / preferSSL / requireSSL。
- ssl.PEMKeyFile / PEMKeyPassword:证书与私钥(及私钥口令)。
- ssl.clusterFile / ssl.clusterPassword:集群内部认证证书与口令。
- ssl.CAFile / ssl.CRLFile:CA 证书链与证书吊销列表。
- ssl.allowConnectionsWithoutCertificates / allowInvalidCertificates / allowInvalidHostnames:证书校验宽松选项(不建议生产开启)。
- ssl.disabledProtocols:禁用的协议版本(如 TLS1_0, TLS1_1, TLS1_2)。
- ssl.FIPSMode:是否启用 FIPS 模式。
- 已废弃/不推荐
- net.http.enabled、net.http.JSONPEnabled、net.http.RESTInterfaceEnabled:HTTP 接口与 REST/JSONP,默认 false,线上应关闭。
常见配置示例
- 仅本地 + Unix 套接字(适合本机服务)
net:
port: 27017
bindIp: 127.0.0.1,/data/mongodb/27017/run/mongodb.sock
unixDomainSocket:
enabled: true
pathPrefix: /data/mongodb/27017/run
filePermissions: 0700
- 监听内网地址(更安全)
net:
port: 27017
bindIp: 192.168.1.100,127.0.0.1
- 监听所有地址(便捷但不安全,务必配合认证与防火墙)
net:
port: 27017
bindIpAll: true
- 启用 TLS/SSL(示例)
net:
port: 27017
ssl:
mode: requireSSL
PEMKeyFile: /etc/mongodb/server.pem
CAFile: /etc/mongodb/ca.pem
以上示例展示了 bindIp / bindIpAll 的典型用法、Unix 套接字配置以及 TLS/SSL 的基本启用方式。
生效与运维要点
- 修改配置后需重启实例(示例)
- Linux(systemd):
sudo systemctl restart mongod
- Windows:在服务管理器中重启 MongoDB 服务
- macOS(Homebrew):
brew services restart mongodb-community
- 防火墙与云安全组
- 开放对应端口(默认 27017/TCP),仅放通必要来源网段(如内网 VPC/CIDR)。
- 安全建议
- 避免将 bindIp 设为 0.0.0.0 并暴露公网;优先使用 bindIp 指定内网地址或配合 bindIpAll: true 时严格限制来源。
- 启用 认证与授权:在配置中设置
security.authorization: enabled 并创建具备最小权限的用户。
- 启用 TLS/SSL 以加密传输数据,禁用不安全的协议版本。
版本与默认值差异
- 自 MongoDB 3.6 起,bindIp 默认仅绑定 localhost(127.0.0.1),如需远程访问需显式配置 bindIp 或开启 bindIpAll。
- bindIpAll 的优先级高于 bindIp;同时指定时以 bindIpAll 为准。