Skip to main content

特殊IPv4地址

在日常开发、运维、网络安全和排障中,经常会看到一些“看起来很眼熟”的 IPv4 地址,比如 0.0.0.0127.0.0.110.x.x.x172.16.x.x192.168.x.x。这些地址并不是随便分配的,而是各自有比较固定的用途。

这一篇主要记最常见、最容易混淆的几类。

0.0.0.0

0.0.0.0 不是一个“普通意义上的具体主机地址”,它更像一种特殊语义地址。最常见的两种理解分别是:

  • 服务监听语境里,表示“本机所有 IPv4 地址”
  • 网络协议或配置语境里,表示“未指定地址”

另外在实际使用中还要注意一个容易让人误会的点:

  • 有些系统里,客户端访问 http://0.0.0.0:端口 时,也会把它当成本机地址处理,所以看起来像“本地地址”

也就是说,0.0.0.0 确实经常和“本地服务”一起出现,但它和 127.0.0.1 的语义仍然不一样。

常见场景

1. 服务监听所有网卡

如果一个程序监听在 0.0.0.0:80,通常表示:

  • 它接受所有本机 IPv4 网卡上的请求
  • 不管请求是从 127.0.0.1、内网 IP 还是公网 IP 进来的,只要能到这台机器,都可能被这个端口接收

例如:

python -m http.server 8000 --bind 0.0.0.0

这时不仅本机能访问,局域网内其他机器也可能访问到。

很多程序启动时打印的地址也会直接显示成:

Serving HTTP on 0.0.0.0 port 5600

这句话更准确的意思不是“只能访问 0.0.0.0 这个地址”,而是:

  • 这个服务绑定在所有本机 IPv4 地址上
  • 你可以通过 127.0.0.1、机器内网 IP、机器公网 IP 去访问它(前提是网络可达)

2. 作为客户端访问本地服务

你提到的这种情况也很常见,例如:

curl http://0.0.0.0:5600/api/system

在很多系统上,这种写法确实能访问到本机监听的服务,所以它在实际效果上经常表现得像“本地地址”。

比如一个服务绑定在 0.0.0.0:5600,那么本机上往往下面几种都能访问:

  • http://127.0.0.1:5600
  • http://localhost:5600
  • http://0.0.0.0:5600
  • http://<本机内网IP>:5600

甚至在有些系统里,即使服务只监听 127.0.0.1,访问 http://0.0.0.0:5600 也可能仍然打到本机。

但这里要注意:

  • 这更像操作系统 / 网络栈 / 工具链的实现行为
  • 不应该把它当成跨平台都可靠的“标准访问方式”
  • 如果你的意思就是“访问本机服务”,更推荐写 127.0.0.1localhost

所以更稳妥的理解是:

  • 绑定时0.0.0.0 表示“监听所有本机 IPv4 地址”
  • 访问时:它在很多环境里会被当作“访问本机”,但不建议把这种写法当成规范用法

3. 路由表里的默认路由

在路由配置里,0.0.0.0/0 表示:

  • 匹配任意 IPv4 地址
  • 也就是所谓的“默认路由”

例如系统把所有未知目标都发给默认网关。

4. DHCP 尚未分配地址时的源地址

主机刚启动、还没有获得 IP 时,有时会临时以 0.0.0.0 作为源地址发起 DHCP 请求。

5. 程序配置里的“未指定地址”

有些程序或配置文件里出现 0.0.0.0,只是表示:

  • 现在没有指定具体 IP
  • 让系统自行处理或监听全部地址

容易混淆的点

  • 0.0.0.0 不是严格意义上的回环地址,和 127.0.0.1 的设计语义不一样。
  • 但在很多系统里,访问 0.0.0.0:端口 又确实可能落到本机服务上,所以它在使用体验上会“看起来像本地地址”。
  • 如果是写文档、脚本、排障命令,想明确表示“本机访问”,优先用 127.0.0.1localhost
  • 如果服务监听在 0.0.0.0,它的暴露面通常比监听 127.0.0.1 更大。

127.0.0.0/8

127.x.x.x 整个网段都是回环地址(Loopback),最常见的是 127.0.0.1

它的含义是:

  • 数据包不会离开本机
  • 访问它等价于“访问自己”

最常见的地址

  • 127.0.0.1:最常用的 localhost

虽然平时大家几乎只用 127.0.0.1,但严格来说整个 127.0.0.0/8 都属于回环范围。

常见场景

1. 本机调试

开发时常见:

http://127.0.0.1:3000
http://localhost:8080

这说明服务只提供给本机访问,外部机器通常访问不到。

2. 本地组件间通信

很多数据库、缓存、代理服务默认只监听回环地址,比如:

  • MySQL / PostgreSQL 本地测试环境
  • Redis 本地调试
  • 开发机上的 Web 服务

这样做的好处是减少暴露面。

3. 安全隔离

如果服务只绑定 127.0.0.1,意味着:

  • 本地进程可以访问
  • 同局域网机器不能直接访问
  • 公网更不能直接访问

这在排障时特别常见:

  • 浏览器在本机能打开
  • 别的机器打不开
  • 一看发现程序只监听在 127.0.0.1

localhost127.0.0.1 的关系

很多时候二者能互换,但并不绝对相同。

  • 127.0.0.1 是明确的 IPv4 地址
  • localhost 是主机名,需要经过解析

有些系统里 localhost 还可能解析到 ::1(IPv6 回环地址),所以排障时如果怀疑是 IPv4 / IPv6 问题,直接写 127.0.0.1 更直接。

10.0.0.0/8

10.x.x.x私有地址的一大段范围,来自 RFC 1918。

范围是:

10.0.0.0 - 10.255.255.255

特点

  • 只能在内网中使用
  • 不能直接在公网路由中传递
  • 如果要访问公网,通常需要 NAT

常见场景

1. 企业内网

很多公司内网会大规模使用 10.x.x.x,因为地址空间非常大,适合:

  • 大公司办公网
  • 数据中心
  • 多子网划分
  • VPN 地址池

2. 云上 VPC

云厂商的 VPC、子网也很常见用 10.x.x.x 段,比如:

  • 10.0.0.0/16
  • 10.10.0.0/24
  • 10.100.0.0/16

3. 容器或虚拟化网络

Docker、Kubernetes、虚拟机网络里,也常见 10.x.x.x

常见原因

因为地址范围大,适合大规模网络规划。相比 192.168.x.x10.x.x.x 更像“企业级内网常客”。

172.16.0.0/12

172. 开头不一定都是私有地址,只有 172.16.0.0172.31.255.255 这一段才是私有地址

也就是说,私有范围是:

172.16.0.0 - 172.31.255.255

如果是:

  • 172.15.x.x 不是 RFC 1918 私有地址
  • 172.32.x.x 也不是 RFC 1918 私有地址

这个点非常容易记错。

常见场景

1. 中型内网

很多企业或实验环境会使用 172.16.x.x172.31.x.x 这段地址。

2. Docker 默认网段

Docker 默认桥接网络中,经常能看到:

  • 172.17.0.0/16
  • 172.18.0.0/16

所以如果你在本机看到某个容器 IP 是 172.17.x.x,这是很正常的。

3. 云环境子网规划

云上子网也会用 172.16.0.0/12 这段,尤其在与本地网络做地址避让时。

容易混淆的点

很多人会把“172. 开头”直接等同于“私网”,这是不准确的。

真正要记的是:

  • 只有 172.16172.31 是私有地址

192.168.0.0/16

192.168.x.x 也是 RFC 1918 定义的私有地址。

范围是:

192.168.0.0 - 192.168.255.255

常见场景

1. 家庭路由器

最常见的就是家用路由器:

  • 192.168.0.1
  • 192.168.1.1

很多家庭网络下,电脑、手机、NAS 都会拿到 192.168.x.x 地址。

2. 小型办公室网络

几十台以内的小型办公网络也常用它,因为:

  • 好记
  • 配置简单
  • 民用设备默认就常用这段

3. 实验环境

做渗透测试、靶场、虚拟机实验时,经常随手就配一段 192.168.x.x

常见原因

因为家用网络几乎天天见,所以很多人一提“内网 IP”,脑子里第一个跳出来的就是 192.168.x.x

100.64.0.0/10

100.64.0.0/10 也经常被误以为是“普通私网段”,但它和 10/8172.16/12192.168/16 不一样。

它不是 RFC 1918 私有地址,而是 RFC 6598 专门定义的 共享地址空间(Shared Address Space),主要给 CGN(Carrier-Grade NAT,运营商级 NAT) 使用。

范围是:

100.64.0.0 - 100.127.255.255

也就是说,第二个八位段是 64127

它和 RFC 1918 私网的区别

  • RFC 1918 私网是给企业、家庭、云上 VPC、实验环境等“最终用户内网”使用的
  • 100.64.0.0/10 更偏向运营商内部 CGN 场景,用来连接大量用户到公网出口
  • 它同样不是公网可达地址,但语义上和经典私网不同

所以更准确的说法是:

  • 100.64.0.0/10特殊保留地址空间 / 共享地址空间
  • 不属于传统的 RFC 1918 三大私网段

设计背景

运营商做大规模 NAT 时,如果继续大量占用 10.x.x.x192.168.x.x,就容易和用户自己家里或企业内网的地址冲突。

RFC 6598 单独划出 100.64.0.0/10,就是为了让运营商内部 NAT 网络和用户私网更容易区分。

常见场景

1. 运营商级 NAT

很多宽带、移动网络、蜂窝网络环境里,终端设备可能先拿到一个 100.64.x.x100.127.x.x 的地址,再经过运营商 NAT 出公网。

这时用户看到的“设备地址”可能不是公网 IP,也不是家里常见的 192.168.x.x,而是 100.64/10 这一段。

2. 云厂商内部通信

在云环境里,这一段也并不少见。某些云平台内部服务、元数据访问链路、内部网关、管控面通信等,会用到这类地址。

比如在腾讯云场景里,100.64/10 往往更像“平台内部网络的一部分”,而不是一个对外互联网地址。

3. 安全规则和降噪过滤

做安全检测、日志清洗、规则编写时,很多人只会先想到 RFC 1918 三段私网,但如果场景里有云平台内部通信或 CGN 网络,100.64/10 也值得单独考虑。

例如:

  • 作为“内部通信”白名单范围的一部分
  • 用于过滤明显不具备公网可达性的地址
  • 在误报消减时,避免把云平台内部地址误当成公网恶意 IP

常见误区

很多人会把“不是公网 IP”直接等同于“RFC 1918 私网”,这并不准确。

要单独记住:

  • 100.64.0.0/10 是 RFC 6598 共享地址空间
  • 它不是 RFC 1918 私有地址
  • 但它同样通常不会作为普通公网可路由地址出现

正则中的 /10

100.64.0.0/10 覆盖的第二段范围是 64127

所以像下面这样的写法,本质上就是在匹配这个范围:

100\.(6[4-9]|[7-9]\d|1[01]\d|12[0-7])\.

可以拆成:

  • 6[4-9] -> 6469
  • [7-9]\d -> 7099
  • 1[01]\d -> 100119
  • 12[0-7] -> 120127

拼起来正好覆盖 64127,也就对应了 100.64.0.0/10

169.254.0.0/16

169.254.x.x链路本地地址(Link-Local),来自 RFC 3927。

范围是:

169.254.0.0 - 169.254.255.255

特点

  • 通常在主机没有成功拿到 DHCP 地址时自动生成
  • 只能在本地二层网络里使用
  • 不能被正常路由到更远的网络

常见场景

1. DHCP 失败后的自动地址

如果一台机器本来应该自动获取 IP,但 DHCP 服务器没响应,系统可能会自己给网卡配一个 169.254.x.x 地址。

这通常意味着:

  • 网卡是通的
  • 但拿地址流程出了问题

所以排障时一旦看到 169.254.x.x,第一反应往往就是先检查 DHCP、交换机、VLAN、网线或云网络配置。

2. 云元数据服务

很多云平台的元数据服务也使用链路本地地址,最常见的例子是:

  • 169.254.169.254

这个地址在云安全、云主机排障、SSRF 风险分析里都非常常见。

容易混淆的点

  • 169.254.x.x 不是 RFC 1918 私网
  • 它更像“本链路临时可用”的特殊地址
  • 它不能拿来当通用内网规划地址

255.255.255.255

255.255.255.255受限广播地址(Limited Broadcast)

它表示:

  • 向当前本地网络广播
  • 数据包不会被正常路由转发到其他网络

常见场景

1. DHCP 广播

主机还不知道自己是谁、也不知道 DHCP 服务器是谁时,常会向 255.255.255.255 发广播包。

2. 老一些的广播发现机制

某些局域网发现协议、初始化阶段的网络服务,也可能会往这个地址发广播。

0.0.0.0 的区别

这两个地址经常一起出现在 DHCP 场景里,但语义不同:

  • 0.0.0.0 更像“我还没有地址”
  • 255.255.255.255 更像“我要向本地所有人喊话”

文档示例专用地址

有三段 IPv4 地址不是给真实生产网络用的,而是专门留给文档、教程、示例配置使用。

分别是:

  • 192.0.2.0/24:TEST-NET-1
  • 198.51.100.0/24:TEST-NET-2
  • 203.0.113.0/24:TEST-NET-3

作用

这些地址的设计目的很直接:

  • 写教材、博客、产品文档时,可以放心拿来举例
  • 不容易和读者自己的真实公网或内网环境撞上
  • 比随手写一个“看起来像公网”的地址更规范

例如文档里写:

server 203.0.113.10
client 198.51.100.25

读者一看就知道这是示例地址,而不是你真的在指向某个互联网主机。

记忆价值

做安全分析、写规则、读厂商文档时,经常会碰到这些网段。

如果你知道它们是“示例专用”,就不会:

  • 误以为这是某个真实的对外资产
  • 把文档示例 IP 当成 IOC 或告警目标
  • 在培训材料里继续随手乱写真实公网地址

记忆方法

看到下面这些段,先想到“文档示例”:

  • 192.0.2.x
  • 198.51.100.x
  • 203.0.113.x

198.18.0.0/15

198.18.0.0/15 是专门给网络设备性能测试 / 基准测试保留的地址段。

范围是:

198.18.0.0 - 198.19.255.255

用途

这段地址最早就是为了做网络互联设备测试时,避免测试环境误撞真实互联网地址。

常见用途包括:

  • 防火墙吞吐测试
  • 路由器转发性能测试
  • IDS / IPS / 代理设备压测
  • 实验室里的隔离流量模拟

易忽略点

它看起来很像一段“普通公网地址”,但实际不是给互联网真实主机分配用的。

所以如果你在:

  • 测试报告
  • 厂商基准文档
  • 网络实验环境抓包

里看到 198.18.x.x198.19.x.x,先别急着把它理解成外部真实地址。

实用判断

如果某条通信、配置、性能压测流量里出现了大量 198.18/15,大概率是在做实验、压测或仿真,不是正常的业务对公网访问。

224.0.0.0/4

224.0.0.0/4多播地址(Multicast)

范围是:

224.0.0.0 - 239.255.255.255

与单播的区别

平时最常见的是“单播”,也就是一个源发给一个目标。

多播更像是:

  • 一个发送者发给一组接收者
  • 只有加入该多播组的主机才接收这份流量

所以 224.x.x.x239.x.x.x 看起来像“目标 IP”,但它表达的不是某一台普通主机,而是一个多播组。

常见场景

1. 局域网发现和控制协议

很多自动发现、邻居通告、组播协议都会用到多播。

2. 流媒体或一对多分发

在合适的网络环境里,多播适合做:

  • 视频分发
  • 一对多通知
  • 某些工业或专网控制场景

3. 路由协议

部分动态路由协议也会使用多播地址收发控制报文。

记忆点

  • 224.0.0.0/4 不是普通公网主机地址段
  • 看到目标地址是 224-239,先想“多播”
  • 它和广播不完全一样,多播是“发给加入这个组的人”

常见细节

239.0.0.0/8 经常被当作组织内部使用的管理范围多播地址,所以它和“面向全网的多播”在感觉上也不太一样。

240.0.0.0/4

240.0.0.0/4 一般被称为 保留地址(Reserved for Future Use)

范围是:

240.0.0.0 - 255.255.255.254

注意:

  • 255.255.255.255 通常单独看作受限广播地址
  • 所以它虽然数值上落在这个大范围附近,但语义要单独区分

特点

  • 历史上大多数系统不会把这段当作普通可用单播地址
  • 很多网络设备、协议栈、应用程序会直接拒绝或特殊处理这类地址
  • 在现实生产网络里通常不应该把它当成正常主机地址使用

了解意义

因为它特别容易在阅读日志时造成错觉。

例如看到一个 250.x.x.x251.x.x.x 的地址,如果不熟,很容易下意识觉得这是“某个奇怪公网 IP”。

其实更应该先警觉:

  • 这可能是构造数据
  • 可能是协议解析错误
  • 可能是伪造样本或无效输入
  • 也可能是工具把异常字节错误地显示成了 IPv4 地址

实战判断

如果不是在做协议研究或非常特殊的实验环境里,看到 240-255.255.255.254 这段,通常先按“异常、保留、非正常主机地址”理解会更稳妥。

私有地址的共性

以下三段都属于 RFC 1918 私有地址:

  • 10.0.0.0/8
  • 172.16.0.0/12
  • 192.168.0.0/16

共同点:

  • 不能直接作为公网可路由地址使用
  • 可以在不同内网中重复出现
  • 访问公网通常依赖 NAT 或代理

这就是为什么你在不同公司、不同家庭网络里,都可能看到一样的 192.168.1.10

非公网但非 RFC 1918

这一点很容易混:

  • 100.64.0.0/10:RFC 6598 共享地址空间,常见于 CGN 或云平台内部通信
  • 169.254.0.0/16:链路本地地址,常见于 DHCP 失败或云元数据访问
  • 127.0.0.0/8:回环地址,只在本机内部使用

所以看到“不可公网路由”的地址,最好继续往下分一层,不要全部粗暴归类成“私网”。

快速区分

看到地址时可以先这么判断:

  • 127.x.x.x:回环,本机自己
  • 0.0.0.0:未指定地址 / 所有地址 / 默认路由语义
  • 10.x.x.x:私有地址,大型内网常见
  • 172.16.x.x172.31.x.x:私有地址,中型内网或容器网络常见
  • 192.168.x.x:私有地址,家庭路由和小型局域网最常见
  • 100.64.x.x100.127.x.x:RFC 6598 共享地址空间,CGN 或云平台内部通信要重点留意
  • 169.254.x.x:链路本地地址,先怀疑 DHCP 或元数据服务
  • 255.255.255.255:本地广播地址
  • 192.0.2.x / 198.51.100.x / 203.0.113.x:文档示例地址
  • 198.18.x.x / 198.19.x.x:网络设备测试、压测、基准环境常见
  • 224-239.x.x.x:多播地址
  • 240-255.255.255.254:保留地址,看到时优先按异常或特殊用途理解

开发与排障

绑定 127.0.0.1

  • 只能本机访问
  • 外部访问不到
  • 安全性通常更高

绑定 0.0.0.0

  • 所有网卡都能访问
  • 局域网甚至公网都可能打得到
  • 要结合防火墙、安全组考虑暴露面

访问私网地址

  • 大概率是内网目标
  • 跨网络访问时要考虑路由、VPN、NAT、跳板机

访问 100.64-127.

  • 很可能不是普通公网地址
  • 要结合运营商网络、云平台内部网络、VPC 连通关系来判断
  • 在云安全和日志分析里,通常值得先按“内部或半内部通信”理解

访问 169.254.

  • 先看是不是链路本地地址
  • 云环境里重点关注是不是元数据服务
  • 本地网络里则常常意味着自动寻址或 DHCP 异常

访问文档示例地址

  • 先判断是不是文档、教程、培训材料或示例配置
  • 不要直接把它当成真实外部资产
  • 在安全场景里通常不该直接当作真实 IOC 使用

访问 198.18.198.19.

  • 很可能是压测、仿真、实验网络
  • 常见于网络设备性能测试
  • 和真实公网业务访问语义通常不同

访问 224-239.

  • 先按多播理解
  • 看是不是发现协议、路由协议或一对多分发流量
  • 不要把它当成一台“普通目标主机”去想

访问 240-255.255.255.254

  • 先当成保留地址或异常数据
  • 很多情况下说明日志、输入、样本或解析链路有特殊情况

小结

  • 0.0.0.0:通常表示“未指定”或“所有地址”,服务监听和默认路由里最常见。
  • 127.0.0.1:本机回环地址,只在自己机器内部打转。
  • 10.x.x.x:私有地址,大地址段,企业网络和云上网络常见。
  • 172.16.x.x172.31.x.x:私有地址,注意不是所有 172. 都是私网。
  • 192.168.x.x:私有地址,家庭和小型办公网络最常见。
  • 100.64.0.0/10:RFC 6598 共享地址空间,不是 RFC 1918 私网,但也通常不作为普通公网地址使用。
  • 169.254.0.0/16:链路本地地址,DHCP 异常和云元数据场景很常见。
  • 255.255.255.255:本地广播地址。
  • 192.0.2.0/24198.51.100.0/24203.0.113.0/24:文档和示例专用地址。
  • 198.18.0.0/15:网络设备测试和基准压测常用地址段。
  • 224.0.0.0/4:多播地址。
  • 240.0.0.0/4:保留地址,通常不应按正常主机地址理解。

如果只是快速判断一个地址值不值得警觉,最简单的经验就是:

  • 127 看本机
  • 0.0.0.0 看监听范围或默认路由
  • 10/172.16-31/192.168 看内网
  • 100.64-127 看 CGN 或云内部通信
  • 169.254 看链路本地或元数据服务
  • 255.255.255.255 看广播
  • 192.0.2/198.51.100/203.0.113 看文档示例
  • 198.18-19 看测试和压测
  • 224-239 看多播
  • 240-255.255.255.254 看保留或异常