到底什么是 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,用于本机服务访问。127.0.0.1是环回地址,用于本地测试。0.0.0.0则表示所有不确定的地址,常用于服务监听。此外,还讲解了IP地址的分类和公网、私网IP地址的概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

到底什么是 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地址的区别

### 解析 `localhost`、`127.0.0.1` `0.0.0.0` 的区别及用途 #### 1. 定义与基本概念 - **`localhost`** 实际上是一个域名而非具体的 IP 地址,在多数操作系统中,默认情况下该名称被解析为 IPv4 地址 `127.0.0.1` 或者对应的 IPv6 地址 `::1`。这种映射通常记录于系统的主机文件(如 Linux 中的 `/etc/hosts` 文件),意味着当求发送至 `localhost` 时,实际上会定向到本地计算机本身[^3]。 - **`127.0.0.1`** 属于特殊保留的IPv4地址范围的一部分,称为环回(loopback)地址。它用于表示当前设备上的网络接口,允许应用程序通过此地址与其他在同一机器运行的服务通信而不经过物理网卡传输数据包。任何发往此类地址的数据都将仅限于内部处理而不会离开本机环境[^1][^2]。 - **`0.0.0.0`** 并不是一个有效的公共或私有IP地址;相反,它是用来指代所有可用的网络接口的一个通配符形式。在网络编程服务部署场景下,绑定服务到 `0.0.0.0` 表明其愿意接受来自任意外部源发起连接尝试,并且可以由不同类型的客户端访问——无论是位于同一局域网内还是广域网上其他位置的节点都可以成功建立联系[^5]。 #### 2. 应用场景对比 对于开发者而言: - 使用 `localhost` 或 `127.0.0.1` 主要适用于测试阶段或是构建仅供单机使用的应用实例; - 当希望创建能够接收远程连接的应用程序时,则应考虑将监听地址设置为 `0.0.0.0`,以便让软件能响应来自外界的各种接入需求。 此外值得注意的是,在某些特定情境下(比如多宿主主机或多网卡环境中),选择合适的监听方式变得尤为重要,因为错误配置可能导致预期之外的行为发生。 ```bash # 绑定到单一指定接口 (例如 eth0),只允许来自相同子网内的流量到达 netstat -tulnp | grep :8080 # 查看端口占用情况 # 将Web服务器设为监听全部可用NICs上的TCP 8080端口 sudo systemctl start httpd.service && sudo firewall-cmd --add-port=8080/tcp --permanent && sudo firewall-cmd --reload ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值