🌐 IP 地址概念图解

回环地址 · 127.0.0.1 · 255.255.255.0 · 255.255.255.255 · localhost — 一次讲清

总览

五个概念速查

名称 类型 一句话 数据包去哪
回环地址 127.0.0.0/8 地址段 127.x.x.x 都算,发给自己,不出网卡 → 本机内核
127.0.0.1 127.0.0.1 具体 IP 回环地址段里最常用的那个 IP → 本机内核
localhost hostname 域名/主机名 名字,需要 DNS 解析,通常 → 127.0.0.1 → 解析后决定
255.255.255.0 /24 掩码 子网掩码 不是目标 IP!用来划分"网络部分"和"主机部分" N/A(工具值)
255.255.255.255 广播地址 特殊 IP 全局广播,发给当前网段所有人,不过路由器 → 本网段所有人
图解

它们在哪个层次发挥作用?

应用层 localhost ← 主机名,由 DNS/hosts 文件解析 网络层 (IP) 127.0.0.1 255.255.255.255 255.255.255.0 — 子网掩码(IP 的辅助参数) 解析 数据链路层 (MAC) 广播用 FF:FF:FF:FF:FF:FF — 127.0.0.1 永远到不了这里 物理层(网卡/线缆) 127.0.0.1 的数据包永远不经过这层! ✕ 回环,不继续下传
回环地址

127.0.0.1 — Loopback

127.0.0.1 是最经典的回环地址(Loopback Address)

整个 127.0.0.0/8 网段(即 127.0.0.1 ~ 127.255.255.254 所有 IP)都属于回环地址, 但日常只用 127.0.0.1 这一个。

核心机制

数据包怎么走?

✅ 场景:你的程序访问 127.0.0.1:8080
你的进程
数据包
系统内核 (lo 接口)
目标进程

📌 数据在内核里打了个转,不碰网卡,不出机器,速度极快

❌ 不会发生的事
你的进程
数据包
网卡 (eth0)
互联网 ✕

🚫 127.0.0.1 的数据包永远不会离开本机!路由表直接把它转回来

位结构

127.0.0.1 的二进制

每组 8 位(一个字节),四组合起来 = 32 位 IPv4 地址

十进制
127 . 0 . 0 . 1
十六进制
0x7F . 00 . 00 . 01
整个回环段
127.0.0.0 / 8
~1600万个地址都回环
典型用途
本地服务测试
进程间通信
数据库本地连接
为什么是 127?

历史原因:第一位是 0

IPv4 原始分类设计(Classful)中,A 类地址第一字节范围是 1–126。 127 被故意留出来专门用于回环,因为它满足 A 类开头(最高位为 0)但超出了有效 A 类范围。

所以你有时候也会看到 127.0.0.2127.1.2.3,它们都会回环到本机。

主机名

localhost — 名字,不是地址

localhost 本质上是一个主机名(hostname),不是 IP 地址本身。 它需要经过名称解析才能变成 IP 地址。

大多数系统中 localhost127.0.0.1(或 IPv6 的 ::1

解析过程

localhost 如何变成 IP?

你的程序 访问 localhost 查询 /etc/hosts (macOS/Linux) hosts 文件优先! 127.0.0.1 localhost ::1 localhost 找到了 127.0.0.1 或 ::1 (IPv6) 连接 内核回环 lo 接口 hosts 找不到 → 再查 DNS
⚠️ localhost ≠ 127.0.0.1(在某些情况下)

如果你修改了 /etc/hosts 文件, 把 localhost 指向别的 IP,那它们就不一样了。
另外,IPv6 系统中 localhost 可能优先解析为 ::1(IPv6 回环),而不是 127.0.0.1

实际差异

什么时候用哪个?

场景推荐原因
本地开发访问服务 localhost 可读性好,是惯例写法
代码里写死 bind 地址 127.0.0.1 明确,不受 DNS/hosts 影响
需要 IPv4 连接 127.0.0.1 避免 localhost → ::1 (IPv6) 问题
数据库连接字符串 127.0.0.1 明确 IPv4,避免歧义
子网掩码

255.255.255.0 — 不是目标 IP!

255.255.255.0 不是你要访问的地址,而是一个参数, 告诉内核:这个 IP 的哪些位是"网络部分",哪些位是"主机部分"

换成 CIDR 写法就是 /24(前 24 位是网络,后 8 位是主机)。

位运算图解

AND 运算:算出网络地址

给定 IP: 192.168.1.100,掩码: 255.255.255.0,按位 AND 得网络地址

范围计算

192.168.1.x 子网里有啥?

🌐 网络地址

192.168.1.0
主机位全 0,代表"这个网络"

✅ 可用主机范围

192.168.1.1
192.168.1.254
共 254 个可分配 IP

📢 广播地址

192.168.1.255
主机位全 1,网段内广播

📐 掩码

255.255.255.0
= /24,前 24 位是网络
常见掩码对比

不同掩码划出不同大小的子网

掩码CIDR网络位主机位可用 IP 数用途
255.0.0.0 /8 8 位 24 位 16,777,214 A类大网络
255.255.0.0 /16 16 位 16 位 65,534 B类中等网络
255.255.255.0 /24 24 位 8 位 254 最常见!家庭/小型办公
255.255.255.128 /25 25 位 7 位 126 把/24切成两半
255.255.255.252 /30 30 位 2 位 2 点对点链路
广播地址

255.255.255.255 — 全局广播

255.255.255.255 是一个特殊的有限广播地址(Limited Broadcast)。 向它发送数据包,当前子网内所有主机都会收到,但路由器不转发它,所以只能在本网段传播。

传播范围图

255.255.255.255 vs 定向广播

有限广播 255.255.255.255 路由器 本网段 主机A B C D ✕ 路由器不转发 定向广播 192.168.1.255 路由器 外网主机 192.168.1.0/24 网段 .1 .50 .100 ✓ 可转发
典型用途

255.255.255.255 用在哪?

DHCP 发现
新机器没有 IP 时,发 DHCP Discover 包到 255.255.255.255,让网段里的 DHCP 服务器响应
WoL 唤醒
局域网唤醒(Wake-on-LAN)发魔术包到 255.255.255.255
服务发现
部分老协议(如 NetBIOS)用广播做局域网服务发现
定向广播 vs 全局
192.168.1.255 = 本子网定向广播
255.255.255.255 = 有限广播(本链路)
全 1 的二进制

255 = 11111111₂

四组全 1,共 32 位全部是 1

测验

检验一下你学会了没