到底什么是 localhost、127.0.0.1、0.0.0.0 和 本机IP ?

平时配置项目环境及运行项目的过程中,会接触到 localhost、127.0.0.1、0.0.0.0 和 本机IP ,这些分别代表什么,有什么区别呢?先了解一些基础知识~

一、hosts文件

1. hosts就相当于本地的一个dns缓存(dns解析服务器),不用访问远程的dns解析服务器,加快了网站打开速度。

For example:访问一个网站,如果没有hosts文件的本地解析的话就需要的浏览器访问远程的dns解析服务器,等待dns服务器返回ip信息后,我们的浏览器才可以向目标网址所指向的服务器发出请求,但是如果有了hosts文件的本地缓存解析,我们的浏览器就不会去访问远程的dns服务器了,而是直接发出向网站服务器的请求,所以说hosts文件可以加快我们打开网站打开的速度;

2. 局域网架设简单化。
3. 可以用来屏蔽任何网站。

二、IP地址的分类

IP地址和子网划分学习笔记之《IP地址详解》

①、A类地址

  1. 范围:1.0.0.0 - 126.255.255.255,其中0和127作为特殊地址
  2. 默认子网掩码为255.0.0.0,也可写作/8。
  3. 最大主机数量是256×256×256-2=166777214。

计算机网络中,主机ID全部为0的地址为网络地址,而主机ID全部为1的地址为广播地址,这2个地址是不能分配给主机用的。

②、B类地址

  1. 范围:128.0.0.0 - 191.255.255.255。
  2. 默认子网掩码为255.255.0.0,也可写作/16。
  3. 最大主机数量256×256-2=6554。

③、C类地址

  1. 范围:192.0.0.0 - 223.255.255.255。
  2. 默认子网掩码为255.255.255.0,也可写作/24。
  3. 最大主机数量256-2=254。

④、D类地址

  1. D类地址不分网络地址和主机地址。
  2. 用于组播(也称为多播)的地址,无子网掩码。
  3. 范围:224.0.0.0 - 239.255.255.255。

⑤、E类地址

  1. E类地址也不分网络地址和主机地址。
  2. 范围:240.0.0.0 - 255.255.255.255。
  3. 其中240.0.0.0-255.255.255.254作为保留地址,主要用于Internet试验和开发,255.255.255.255作为广播地址。

IP地址分类思维导图

IP地址和子网划分学习笔记之《IP地址详解》

三、保留的特殊IP地址

以下这些特殊IP地址都是不能分配给主机用的地址:

  • 主机ID全为0的地址:特指某个网段,比如:192.168.10.0 255.255.255.0,指192.168.10.0网段。
  • 主机ID全为1的地址:特指该网段的全部主机,比如:192.168.10.255,如果你的计算机发送数据包使用主机ID全是1的IP地址,数据链层地址用广播地址FF-FF-FF-FF-FF-FF。
  • 127.0.0.1:是本地环回地址,指本机地址,一般用来测试使用。回送地址(127.x.x.x)是本机回送地址(Loopback Address),即主机IP堆栈内部的IP地址。
  • 169.254.0.0:169.254.0.0-169.254.255.255实际上是自动私有IP地址。
  • 0.0.0.0:如果计算机的IP地址和网络中的其他计算机地址冲突,使用ipconfig命令看到的就是0.0.0.0,子网掩码也是0.0.0.0。

img

四、公网和私网IP地址

公网IP地址
公有地址分配和管理由Inter NIC(Internet Network Information Center 因特网信息中心)负责。各级ISP使用的公网地址都需要向Inter NIC提出申请,有Inter NIC统一发放,这样就能确保地址块不冲突。

私网IP地址
创建IP寻址方案的人也创建了私网IP地址。这些地址可以被用于私有网络,在Internet没有这些IP地址,Internet上的路由器也没有到私有网络的路由表。

  • A类:10.0.0.0 255.0.0.0,保留了1个A类网络
  • B类:172.16.0.0 255.255.0.0~172.31.0.0 255.255.0.0,保留了16个B类网络
  • C类:192.168.0.0 255.255.255.0~192.168.255.0 255.255.255.0,保留了256个C类网络

PS:私网地址访问Internet需要做NAT或PAT网络地址转换
IP地址和子网划分学习笔记之《IP地址详解》

公网和私网IP地址思维导图如下:

IP地址和子网划分学习笔记之《IP地址详解》

现在切入正题,回答最初的问题~

五、localhost、127.0.0.1、0.0.0.0 与 主机ip

1、0.0.0.0

严格说来,0.0.0.0已经不是一个真正意义上的IP地址了。

它表示的是一个集合:所有 不清楚 的主机和目的网络

“不清楚”:在本机的路由表里没有特定条目指明如何到达。对本机来说,它就是一个“收容所”,所有不认识的“三无”人员,一律送进去。如果在网络设置中设置了缺省网关,那Windows系统会自动产生一个目的地址为0.0.0.0的缺省路由。

用途:

  • 当一台主机还没有被分配一个IP地址的时候,用于表示主机本身。(DHCP分配IP地址的时候)
  • 用作默认路由,表示"任意IPV4主机”,即当路由表中没有找到完全匹配的路由的时候所对应的路由。
  • 用作服务端,表示本机上的任意IPV4地址。在服务端绑定端口的时候可以选择绑定到0.0.0.0,这样我的服务访问方就可以通过我的多个ip地址访问我的服务。
  • 用来表示目标机器不可用。
  • 监听0.0.0.0的端口,来监听本机中所有IP的端口。

2、127.0.0.1(一种本机保留的私有 IP)

本机地址,主要用于测试,即“我自己”。寻址这样一个地址,是不能把它发到网络接口的。除非出错,否则在传输介质上永远不应该出现目的地址为“127.0.0.1”的数据包。

127.0.0.1属于{127,}集合中的一个,而所有网络号为127的地址都被称之为环回地址,环回地址!== 127.0.0.1,它们是包含关系,即环回地址包含 127.0.0.1。

环回地址:所有发往该类地址的数据包都应该被loop back。所有发往目标IP为127.0.0.1的数据包都不会通过网卡发送到网络上,而是在数据离开网络层时将其回送给本机的有关进程。

用途:

  • 环回测试,通过使用ping 127.0.0.1 测试某台机器上的网络设备,操作系统或者TCP/IP实现是否工作正常。
  • DDos攻击防御:网站收到DDos攻击之后,将域名A记录到127.0.0.1,即让攻击者自己攻击自己。
  • 大部分Web容器测试的时候绑定的本机地址。
  • 一般会通过ping 127.0.0.1来测试某台机器上的网络设备是否工作正常。

3、localhost

相比127.0.0.1,localhost具有更多的意义。localhost是个域名,而不是一个ip地址。可修改。

用于指代 this computer 或者 this host,可以用它来获取运行在本机上的网络服务。

在大多数系统中,localhost被指向了 IPV4 的 127.0.0.1 和 IPV6 的 ::1,这就是把localhost与127.0.0.1等同的原因。

4、主机ip

“本机地址”并不是一个规范的名词。通常情况下,指的是“本机物理网卡所绑定的网络协议地址”。通常仅指IP地址甚至ipv4地址。本机地址是与具体的网络接口绑定的。比如以太网卡、无线网卡或者PPP/PPPoE拨号网络的虚拟网卡,想要正常工作都要绑定一个地址,否则其他设备就不知道如何访问它。

当涉及到计算机间的网络通信时, 则使用本机ip 。

5、localhost、127.0.0.1、本机IP 的对比

网络需求数据传输访问性质
localhost不联网不使用网卡,不受防火墙和网卡限制本机访问域名,默认是指向 127.0.0.1
127.0.0.1不联网网卡传输,受防火墙和网卡限制本机访问环回地址
本机IP联网网卡传输 ,受防火墙和网卡限制本机or外部访问本机对外放开访问的 IP 地址

6、127.0.0.1、0.0.0.0 的对比

共同点:特殊地址。A类地址。IPV4地址。

区别:0.0.0.0 对外开放,80端口外部可访问;127.0.0.1本机访问

参考:

电脑中hosts文件的作用

IP地址和子网划分学习笔记之《IP地址详解》

脑残式网络编程入门(八):你真的了解127.0.0.1和0.0.0.0的区别?

你真的了解127.0.0.1和0.0.0.0吗~

计算网络】一文带你看懂 localhost、127.0.0.1、本机 IP、公有 IP、私有 IP、网卡 (MAC) 与 IP

localhost、127.0.0.1、0.0.0.0的联系与区别

硬核图解!断网了,还能ping通 127.0.0.1 吗?为什么?

127.0.0.1和0.0.0.0地址的区别

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐