到底什么是 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。
在计算机网络中,主机ID全部为0的地址为网络地址,而主机ID全部为1的地址为广播地址,这2个地址是不能分配给主机用的。
②、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拨号网络的虚拟网卡,想要正常工作都要绑定一个地址,否则其他设备就不知道如何访问它。
当涉及到计算机间的网络通信时, 则使用本机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 ?(参考多篇文章的学习笔记)相关推荐
- java学习笔记(二十八)——开发一个小项目(VMeeting3.0)
上篇文章按照较规范的产品需求文档梳理了项目的逻辑,感觉开发起来明晰了很多:挂上一篇文章java学习笔记(二十七)--开发一个小项目(VMeeting2.0)_Biangbangbing的博客-CSDN ...
- Django使用本机IP无法访问,使用127.0.0.1能正常访问
使用Django搭建web站点后,使用127.0.0.1能访问,但是用自己本机IP却无法访问. 我们先到Django项目中找到setting文件 找到--> ALLOWED_HOSTS = [] ...
- 超级记账本学习笔记:Hyperledger Fabric 1.0环境搭建,及运行e2e的问题
嗯,虽然Hyperledger Fabric1.1.0版本已经发布了,但是我没搭起来,哈哈哈哈. 但是Hyperledger Fabric 1.0搭建成功了,嗯,还是很高兴的. 这篇文章是基于以下文章 ...
- 内网/外网以-本机IP/localhost等基础知识
一.什么是内网 即所说的局域网,比如学校的局域网,局域网内每台计算机的IP地址在本局域网内具有互异性,是不可重复的.但两个局域网内的内网IP可以有相同的. 1.1 内外网IP定义 内网IP地址 ...
- 【转自知乎】:localhost、127.0.0.1 和 本机IP 三者的区别?
作者:知乎用户 链接:https://www.zhihu.com/question/23940717/answer/26230963 来源:知乎 著作权归作者所有.商业转载请联系作者获得授权,非商业转 ...
- 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 ...
- 【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 ...
- localhost,127.0.0.1 与 本机IP的区别
localhost与127.0.0.1的区别 localhost与127.0.0.1的区别是什么?相信有人会说是本地ip,曾有人说,用127.0.0.1比localhost好,可以减少一次解析. 看来 ...
- localhost,127.0.0.1,本机IP,三者的区别
相信不少电脑用户都曾遇到过使用 localhost 或 127.0.0.1 或直接输入本机IP的场景,看上去这三者都可以访问到本机,那为什么会存在这三种形式呢?它们之间又有啥区别呢?看似简单,其实区别 ...
最新文章
- php类退出魔术方法,php类中常用的魔术方法
- 嵌入在C++程序中的extern C
- 使用JDOM2.0.4 操作/解析xml
- 理解Java集合框架里面的的transient关键字
- hbase 操作指令集合
- 1009 说反话 (20 分)—PAT (Basic Level) Practice (中文)
- 光学定位与追踪技术_从显微镜到显纳镜:小于2nm定位精度光学显微镜
- Java设计模式系列之迭代器模式
- 【MySQL】 GTID使用
- java简单代码练习
- 华为第1书:《华为交换机学习指南》当当网预售中
- Pyton 中eval 函数的用法总结
- TiCDC同步延迟问题处理
- java agent简介热部署SDK接入
- 一道小学数学问题的编程解法
- C - error: converting to execution character set:Illegal byte sequence
- 资料分享|HC-05蓝牙模块资料
- 04_frp内网穿透实例
- 播放流媒体常用工具和格式
- FFMPEG 实现视频拼接,中间插入图片实现过渡
热门文章
- 无线攻击实战(AirCrack、Fern WiFi Cracker)
- CentOS 7 gcc、g++、gdb、zhs和oh-my-zsh安装配置 一条龙
- c语言 人事工资管理系统,c语言人事工资管理系统源程序.doc
- java疫情防控管理系统计算机毕业设计MyBatis+系统+LW文档+源码+调试部署
- python输出偶数_如何用python判断奇偶数
- Maven教程初级篇01
- 在云服务器上部署项目(上)
- 五、企业架构MySQL数据库服务器主从复制
- 欧姆龙PLC仿真环境搭建及通信测试
- 信息学奥赛出局?教育部:若提出申请,会认真研究