The pits I met when I use MongoDB

1. Oh my bindIp

在服务器上装了 MongDB 后,想在本地环境用可视化工具来管理 MongoDB ,可是死活连不上。后来发现在配置文件/etc/mongod.conf中,其默认的 bindIp 为 127.0.0.1,也就是说数据库只限内网访问。将其改为0.0.0.0或其他指定环境即可。若想指定多个 ip ,每个 ip 之间用逗号分隔。

127.0.0.1 、 localhost 和 0.0.0.0

  • 127.0.0.1 是一个环回地址(Loopback address)。地址块 127.0.0.1/8 被保留作环回通信用。此范围中的地址绝不应出现在主机之外,发送至此地址的报文被作为同一虚拟网络设备上的入站报文(Loopback),主要用于检查 TCP/IP 协议栈是否正确运行和本机对本机的链接。所以,在外部网络环境是访问不到 127.0.0.1 的。

  • localhost 是一个域名,它其实可以被配置为任意地址。平常我们认为 localhost = 127.0.0.0.1,是因为操作系统中的 hosts 文件定义了localhost = 127.0.0.1,在操作系统支持 ipv6 后,它同时还指向ipv6 的地址 [::1]。

  • 在服务器的上下文中,0.0.0.0 代表的意思是“主机上所有本地的 IPv4 地址”,如果一个主机有两个 ip 地址,192.168.1.1 和 10.1.2.1,并且该主机上的一个服务监听的地址是0.0.0.0,那么通过两个 ip 地址都能够访问该服务。

    在路由中,0.0.0.0表示的是默认路由,即当路由表中没有找到完全匹配的路由的时候所对应的路由。

Reference :

  1. 0.0.0.0 | wikipedia
  2. What's the difference between ip address 0.0.0.0 and 127.0.0.1?
  3. localhost、127.0.0.1 和 本机IP 三者的区别?
Show Comments