面试题答案
一键面试配置 bindIp 参数
- 参数说明:
bindIp
用于指定 MongoDB 服务器绑定的 IP 地址。通过设置此参数,可以限制 MongoDB 监听的 IP 地址范围,从而限制外部网络访问。 - 配置方法:
- 配置文件方式:在 MongoDB 的配置文件(通常是
mongod.conf
)中,添加或修改bindIp
参数。例如,只允许本地访问,可以设置为bindIp = 127.0.0.1
。如果要允许本地和特定的外部 IP(如192.168.1.100
)访问,可以设置为bindIp = 127.0.0.1,192.168.1.100
。 - 命令行方式:启动 MongoDB 时,通过命令行参数指定
--bind_ip
。例如:mongod --bind_ip 127.0.0.1
。
- 配置文件方式:在 MongoDB 的配置文件(通常是
使用防火墙
- 参数说明:防火墙可以从网络层面进一步限制对 MongoDB 端口(默认为 27017)的访问。
- 配置方法:
- Linux 系统(以 iptables 为例):例如,只允许本地访问 MongoDB 端口,可执行命令
iptables -A INPUT -p tcp --dport 27017 -s 127.0.0.1 -j ACCEPT
,然后iptables -A INPUT -p tcp --dport 27017 -j DROP
。这两条命令分别表示允许本地 IP 访问 27017 端口,拒绝其他所有 IP 访问该端口。 - Windows 系统:在 Windows 防火墙设置中,找到 MongoDB 对应的程序或端口(27017),设置入站规则,限制只允许特定的 IP 地址访问。
- Linux 系统(以 iptables 为例):例如,只允许本地访问 MongoDB 端口,可执行命令
启用身份验证
- 参数说明:虽然这不是直接限制网络访问,但启用身份验证后,即使外部能访问到 MongoDB 服务,没有正确的用户名和密码也无法操作数据库,增强了安全性。
- 配置方法:
- 配置文件方式:在
mongod.conf
文件中,添加或修改security.authorization
参数为enabled
。例如:
- 配置文件方式:在
security:
authorization: enabled
- 命令行方式:启动 MongoDB 时,通过命令行参数指定
--auth
。例如:mongod --auth
。然后需要预先通过mongo
客户端使用db.createUser()
等命令创建用户。