APIPA 是什么
169.254.0.0/16 是 RFC 3927 定义的链路本地地址段,Windows 上称 APIPA。当网卡设为自动获取地址、DHCP 请求却始终没有应答时,主机会从这个段里随机挑一个地址自配,掩码固定 255.255.0.0,并且不写默认网关。它的出现本身就是告警:二层可能通,三层却出不去网。
基本信息
| 地址段 | 169.254.0.0/16(可用 169.254.0.1 – 169.254.255.254) |
|---|---|
| 掩码 | 255.255.0.0,固定 /16,与原有网段无关 |
| 触发条件 | DHCP 无响应、地址池耗尽、中继或 VLAN 配错、网卡驱动异常 |
| 平台差异 | Windows/macOS 默认启用;部分 Linux 发行版需 avahi-autoipd 才自配 |
| 能力边界 | 无网关、无 DNS,只能与本链路段同状态设备互 ping |
典型使用场景
- 新装机器或新接网口后上不了网,先用它判断问题出在拿地址阶段还是路由阶段
- 两条网线误接同一台电脑、VLAN 划错时,两端都会自配 169.254 地址,成为现场最直观的旁证
- 小型临时直连:两台笔记本网线对接、关闭 DHCP 时会自动互配 169.254 地址,可立即互传文件
- 排查 DHCP 服务端:客户端反复拿到 169.254,说明 DISCOVER 没到达服务器,重点查中继与三层网关
- 虚拟机与宿主机桥接配置错误时,虚机常显示 169.254 地址,比看日志更快定位
三步判定
三步判定
# 1. 看当前地址
ip addr show eth0 # Linux:出现 169.254.x.x 即 DHCP 失败
ipconfig /all # Windows:显示“自动配置 IPv4 地址”
# 2. 看 DHCP 交互过程,确认有没有收到 OFFER
dhclient -v eth0 2>&1 | tail -20
# 3. 抓包确认 DISCOVER 是否发出、有无回包
tcpdump -ni eth0 'udp port 67 or udp port 68'排查顺序表
| 层次 | 常见原因 | 核对方式 |
|---|---|---|
| 接入层 | 端口未划入正确 VLAN、端口被关闭 | 交换机上查端口 VLAN 与状态 |
| 链路/中继 | DHCP 中继未配、中继指向的服务器地址错 | 中继配置与 helper-address 核对 |
| 服务端 | 地址池耗尽、租约表满、服务未启动 | 服务状态与地址池使用率 |
| 客户端 | 网卡被静态地址占用、防火墙拦 UDP 68 | 客户端配置与本地防火墙策略 |
| 云环境 | 子网无 DHCP、安全组拦掉 udp/68 | 云平台子网与安全组规则 |
169.254.169.254 是云厂商元数据服务的专用地址,与 APIPA 故障无关;看到它属于正常用途,详见元数据条目。