一、缘由:
今天安装Mongodb,本来想限制只能内网或者某几台机器可以访问,看到配置文件有个net.bindIp选项,
就自以为是的认为,他可以像nginx那样限制访问来源IP,其实大错特错。这里配置的是程序绑定的IP,是netstat
里的local addr,并不能限制remote addr。
二、解决办法:
1、net.bindIp 填入本机内网IP 192.168.100.3,这样就只能内网访问27017端口,因为内网可以PING通这个IP。只接受内网网卡的连接。
2、开启iptables,限制mongodb 27017端口,只能接受某几个IP的连接,其他拒绝。
三、附录:
1、bind 127.0.0.1 绑定回环网卡,只能本机访问 ;bind 192.168.100.3 绑定内网IP,只能内网访问;
bind 114.114.114.114 绑定外网IP,只能外网访问;bind 0.0.0.0 绑定全部网址(回环,内网,外网)
2、mongodb 3.2版本,绑定多个IP地址:net.bindIp: 127.0.0.1,192.168.100.3
3、bind与IP地址
如果将套接字绑定到主机的一个IP地址上,而且该主机上有多个IP地址。
如果在某个时刻,内核决定把一个通过该套接字发送出去的数据包通过另一个IP地址发送出去,则接收端接收到这个数据报后,
数据报的源IP地址仍然是原来绑定的IP地址,而不是真正发送出去的那个IP地址。