到底什么是 localhost、127.0.0.1、0.0.0.0 和 本机IP ?(参考多篇文章的学习笔记)
平时配置项目环境及运行项目的过程中,会接触到 localhost、127.0.0.1、0.0.0.0 和 本机IP ,这些分别代表什么,有什么区别呢?先从基础知识开始,再了解他们之间的区别。
到底什么是 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地址的分类
①、A类地址
- 范围:1.0.0.0 - 126.255.255.255,其中0和127作为特殊地址。
- 默认子网掩码为255.0.0.0,也可写作/8。
- 最大主机数量是256×256×256-2=166777214。
②、B类地址
- 范围:128.0.0.0 - 191.255.255.255。
- 默认子网掩码为255.255.0.0,也可写作/16。
- 最大主机数量256×256-2=6554。
③、C类地址
- 范围:192.0.0.0 - 223.255.255.255。
- 默认子网掩码为255.255.255.0,也可写作/24。
- 最大主机数量256-2=254。
④、D类地址
- D类地址不分网络地址和主机地址。
- 用于组播(也称为多播)的地址,无子网掩码。
- 范围:224.0.0.0 - 239.255.255.255。
⑤、E类地址
- E类地址也不分网络地址和主机地址。
- 范围:240.0.0.0 - 255.255.255.255。
- 其中240.0.0.0-255.255.255.254作为保留地址,主要用于Internet试验和开发,255.255.255.255作为广播地址。
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。
四、公网和私网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地址思维导图如下:
现在切入正题,回答最初的问题~
五、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拨号网络的虚拟网卡,想要正常工作都要绑定一个地址,否则其他设备就不知道如何访问它。
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本机访问
参考:
脑残式网络编程入门(八):你真的了解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的联系与区别
更多推荐
所有评论(0)