IP地址的基础知识:127.0.0.1 VS 0.0.0.0

Posted 沛沛老爹

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IP地址的基础知识:127.0.0.1 VS 0.0.0.0相关的知识,希望对你有一定的参考价值。

地址组成

IP地址由两部分组成,一部分为网络地址(Net-id),另一部分为主机地址(Host-id)。 Internet上的每台主机(Host)都有一个唯一的IP地址。IP协议就是使用这个地址在主机之间传递信息,这是Internet能够运行的基础。

Net-id:表示ip地址所在的网络地址。

Host-id:表示ip地址所在网络中的某个主机地址。

即:IP-address ::=  { <Net-id>, <Host-id> }

地址分类

IP地址分为5类,即A~E,划分的依据是:Network所占的字节长度,以及网络地址的前几位。 

 图片来自网络

A类IP地址

一个A类IP地址是指, 在IP地址的四段号码中,第一段号码为网络号码,剩下的三段号码为本地计算机的号码。A类IP地址中网络的标识长度为8位,主机标识的长度为24位,A类网络地址数量较少,有126个网络,每个网络可以容纳主机数达1600多万台。

A类IP地址 地址范围1.0.0.1到127.255.255.254。

B类IP地址

一个B类IP地址是指,在IP地址的四段号码中,前两段号码为网络号码。B类IP地址中网络的标识长度为16位,主机标识的长度为16位,B类网络地址适用于中等规模的网络,有16384个网络,每个网络所能容纳的计算机数为6万多台。

B类IP地址地址范围128.0.0.1-191.255.255.254。

C类IP地址

一个C类IP地址是指,在IP地址的四段号码中,前三段号码为网络号码,剩下的一段号码为本地计算机的号码。C类IP地址中网络的标识长度为24位,主机标识的长度为8位,C类网络地址数量较多,有209万余个网络。适用于小规模的局域网络,每个网络最多只能包含254台计算机。

C类IP地址范围192.0.0.1-223.255.255.254。

D类IP地址

D类IP地址在历史上被叫做多播地址,即组播地址。在以太网中,多播地址命名了一组应该在这个网络中应用接收到一个分组的站点。多播地址的最高位必须是“1110”,范围从224.0.0.0到239.255.255.255。

E类IP地址

E类IP地址中是以“1111”开头,E类IP地址都保留用于将来和实验使用。

说明下其中,ABC三类地址为单播地址,用于一对一通信,比较常用。

下面是IPV4下的地址空间划分比例和范围(图片来自网络):

特殊IP地址

特殊IP地址就是用来做一些特殊的事情。RFC1700中定义了以下特殊IP地址。

{0,0}:网络地址和主机地址都全部为0,表示“本网络上的本主机”,只能用作源地址。

{0,host}:本网络上的某台主机。只能用作源地址。

{-1,-1}:表示网络地址和主机地址的所有位上都是1(二进制),用于本网络上的广播,只能用作目的地址,发到该地址的数据包不能转发到源地址所在网络之外。

{network,-1}:直接广播到指定的网络上。只能用作目的地址。

{network,sub-network,-1}:直接广播到指定网络的指定子网络上。只用作目的地址。

{network,-1,-1}:直接广播到指定网络的所有子网络上。只能用作目的地址。

{127,}:即网络地址为127的任意ip地址。都是内部主机回环地址(loopback),永远都不能出现在主机外部的网络中。

 0.0.0.0   VS  127.0.0.1 

0.0.0.0说明

IPV4中,0.0.0.0地址被用于表示一个无效的,未知的或者不可用的目标。

在服务器中,0.0.0.0指的是本机上的所有IPV4地址,如果一个主机有两个IP地址,192.168.1.1 和 10.1.2.1,并且该主机上的一个服务监听的地址是0.0.0.0,那么通过两个IP地址都能够访问该服务。

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

0.0.0.0用途

  • 当一台主机还没有被分配一个IP地址的时候,用于表示主机本身。
  • 用作默认路由,表示”任意IPV4主机”。
  • 用来表示目标机器不可用。
  • 用作服务端,表示本机上的任意IPV4地址。

127.0.0.1说明

回环地址:所有发往该类地址的数据包都应该被loop back。

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

127.0.0.1用途

  • 回环测试,通过使用ping 127.0.0.1 测试某台机器上的网络设备,操作系统或者TCP/IP实现是否工作正常。
  • DDos攻击防御:网站收到DDos攻击之后,将域名记录到127.0.0.1,即让攻击者自己攻击自己。对DDos有兴趣可以看下这篇文章《DDOS攻击(流量攻击)防御步骤》 
  • 大部分Web容器测试的时候绑定的本机地址。

127.0.0.1 是一个环回地址。并不表示“本机”。0.0.0.0才是真正表示“本网络中的本机”。

在实际应用中,服务端绑定端口一般都选择绑到0.0.0.0。0.0.0.0/0或者掩码为0,代表允许或拒绝所有IP的访问。

特别说明下:如果绑定0.0.0.0,理论上存在一定的安全隐患,对于只需要内网访问的服务,只绑定内网地址进行内部转发就可以了。例如通过nginx进行内网分发的一些微服务,指定局域网内部访问就可以了。

以上是关于IP地址的基础知识:127.0.0.1 VS 0.0.0.0的主要内容,如果未能解决你的问题,请参考以下文章

为啥ip开头不能用0、127、255?

Linux基础命令

本机ip地址localhost与127.0.0.1的区别

127.0.0.1和0.0.0.0地址的区别

VS Code:在 127.0.0.1:9229 上启动检查器失败:地址已在使用中

127.0.0.1和0.0.0.0地址的区别