到底什么是 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. 范围: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地址都是不能分配给主机用的地址:

  • 主机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拨号网络的虚拟网卡,想要正常工作都要绑定一个地址,否则其他设备就不知道如何访问它。

当涉及到计算机间的网络通信时, 则使用本机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地址的区别

到底什么是 localhost、127.0.0.1、0.0.0.0 和 本机IP ?(参考多篇文章的学习笔记)相关推荐

  1. java学习笔记(二十八)——开发一个小项目(VMeeting3.0)

    上篇文章按照较规范的产品需求文档梳理了项目的逻辑,感觉开发起来明晰了很多:挂上一篇文章java学习笔记(二十七)--开发一个小项目(VMeeting2.0)_Biangbangbing的博客-CSDN ...

  2. Django使用本机IP无法访问,使用127.0.0.1能正常访问

    使用Django搭建web站点后,使用127.0.0.1能访问,但是用自己本机IP却无法访问. 我们先到Django项目中找到setting文件 找到--> ALLOWED_HOSTS = [] ...

  3. 超级记账本学习笔记:Hyperledger Fabric 1.0环境搭建,及运行e2e的问题

    嗯,虽然Hyperledger Fabric1.1.0版本已经发布了,但是我没搭起来,哈哈哈哈. 但是Hyperledger Fabric 1.0搭建成功了,嗯,还是很高兴的. 这篇文章是基于以下文章 ...

  4. 内网/外网以-本机IP/localhost等基础知识

    一.什么是内网 ​ 即所说的局域网,比如学校的局域网,局域网内每台计算机的IP地址在本局域网内具有互异性,是不可重复的.但两个局域网内的内网IP可以有相同的. 1.1 内外网IP定义 ​ 内网IP地址 ...

  5. 【转自知乎】:localhost、127.0.0.1 和 本机IP 三者的区别?

    作者:知乎用户 链接:https://www.zhihu.com/question/23940717/answer/26230963 来源:知乎 著作权归作者所有.商业转载请联系作者获得授权,非商业转 ...

  6. Android 异常: failed to connect to localhost/127.0.0.1

    Android 异常: failed to connect to localhost/127.0.0.1 参考文章: (1)Android 异常: failed to connect to local ...

  7. 【android】java.net.ConnectException: localhost/127.0.0.1:8080 - Connection refused

    调试中通过android simulator模拟器链接localhost或者127.0.0.1,因为我在电脑上面建立了apache,我的代码大概就是 URL url = new URL(urlStri ...

  8. localhost,127.0.0.1 与 本机IP的区别

    localhost与127.0.0.1的区别 localhost与127.0.0.1的区别是什么?相信有人会说是本地ip,曾有人说,用127.0.0.1比localhost好,可以减少一次解析. 看来 ...

  9. localhost,127.0.0.1,本机IP,三者的区别

    相信不少电脑用户都曾遇到过使用 localhost 或 127.0.0.1 或直接输入本机IP的场景,看上去这三者都可以访问到本机,那为什么会存在这三种形式呢?它们之间又有啥区别呢?看似简单,其实区别 ...

最新文章

  1. php类退出魔术方法,php类中常用的魔术方法
  2. 嵌入在C++程序中的extern C
  3. 使用JDOM2.0.4 操作/解析xml
  4. 理解Java集合框架里面的的transient关键字
  5. hbase 操作指令集合
  6. 1009 说反话 (20 分)—PAT (Basic Level) Practice (中文)
  7. 光学定位与追踪技术_从显微镜到显纳镜:小于2nm定位精度光学显微镜
  8. Java设计模式系列之迭代器模式
  9. 【MySQL】 GTID使用
  10. java简单代码练习
  11. 华为第1书:《华为交换机学习指南》当当网预售中
  12. Pyton 中eval 函数的用法总结
  13. TiCDC同步延迟问题处理
  14. java agent简介热部署SDK接入
  15. 一道小学数学问题的编程解法
  16. C - error: converting to execution character set:Illegal byte sequence
  17. 资料分享|HC-05蓝牙模块资料
  18. 04_frp内网穿透实例
  19. 播放流媒体常用工具和格式
  20. FFMPEG 实现视频拼接,中间插入图片实现过渡

热门文章

  1. 无线攻击实战(AirCrack、Fern WiFi Cracker)
  2. CentOS 7 gcc、g++、gdb、zhs和oh-my-zsh安装配置 一条龙
  3. c语言 人事工资管理系统,c语言人事工资管理系统源程序.doc
  4. java疫情防控管理系统计算机毕业设计MyBatis+系统+LW文档+源码+调试部署
  5. python输出偶数_如何用python判断奇偶数
  6. Maven教程初级篇01
  7. 在云服务器上部署项目(上)
  8. 五、企业架构MySQL数据库服务器主从复制
  9. 欧姆龙PLC仿真环境搭建及通信测试
  10. 信息学奥赛出局?教育部:若提出申请,会认真研究