IPv6 地址类型实战速查——fe80、2400、fd00、::ffff 分别在网络的哪一层出现

· 约 7 分钟 🌐 IP 工具箱

把 IPv4 用了 20 年的人第一次看 IPv6 都会愣住:2400:da00:e003:0000:0000:0000:0000:0001——8 个 16 进制段 + 双冒号缩写 + 多种地址类型——比 IPv4 的 192.168.1.1 复杂得多。

但其实只要认识 6 个核心前缀就够用 90% 的场景。这篇按”地址段对应什么场景”反向梳理,再讲清缩写规则、SLAAC / DHCPv6 分配机制、双栈 socket 和反向 DNS。

6 个必须记的 IPv6 前缀

把 IPv6 地址类型按出现场景分类:

前缀类型出现场景类比 IPv4
::1/128回环本机自己(ping6 ::1127.0.0.1
fe80::/10链路本地同网段内通信(路由器邻居发现)169.254.0.0/16(DHCP 失败)
fc00::/7(实际 fd00-fdff本地唯一 ULA内网”私有 IPv6”10.0.0.0/8192.168.0.0/16
2000::/3(即 2000-3fff)全局单播 GUA公网 IPv6公网 IPv4
ff00::/8组播路由协议、邻居发现、应用层组播224.0.0.0/4
::ffff:0:0/96IPv4-mapped双栈 socket 内核表示

速读fe80 链路、fd 内网、23 公网、ff 组播——其他段保留或废弃,正常网络见不到。

每个网卡的 fe80:: 链路本地

打开 macOS / Linux 终端跑 ifconfig,每个网卡都有:

en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST>
    inet 192.168.1.50 netmask ...
    inet6 fe80::8a3:34ff:fe56:7890%en0 prefixlen 64 ...
    inet6 2400:da00:e003::a12:34ff:fe56:7890 prefixlen 64 ...

fe80:: 这个地址特点

  1. 每张网卡有一个,开机自动生成(基于 MAC 地址或随机算)
  2. 不出本网段——路由器收到目标是 fe80:: 的包不转发
  3. 必须带 zone id%en0 在 macOS、%eth0 在 Linux、%4 在 Windows)——告诉系统从哪个网卡发出
  4. 核心用途——路由器邻居发现 NDP(IPv6 版 ARP)、链路内 ping 测试

实战场景:路由器配置时常用 fe80::1%eth0 而不是公网 IPv6——前者稳定不随 ISP 前缀变化。

fd00:: ULA 本地唯一私有 IPv6

IPv4 私有段是 10.0.0.0/8172.16.0.0/12192.168.0.0/16——大家都用,跨公司一并就冲突。

IPv6 用 fc00::/7 ULA(Unique Local Address),前缀里有 40 位随机数保证全球唯一:

fd  XX XX XX XX XX  XX:XX:XX:XX::/64
└┬┘ └─────┬─────┘ └─────┬─────┘
 ULA标识  40位随机数   子网号

生成自己的 ULA 前缀

  • 工具不直接生成(避免被滥用)
  • 标准方法:取 EUI-64 + 时间 + SHA1 算 40 位
  • 实践:在线 ULA generator 或路由器后台一键生成
  • 典型:fd1a:2b3c:4d5e::/48,子网 0001 → 0xff

为什么需要 ULA:(1) 不接公网时内网通信不依赖运营商;(2) 双栈环境内网默认走 ULA、外网走 GUA;(3) 不需要 NAT66——IPv6 ULA 内网直连内网,地址空间够。

2000::/3 公网 GUA

公网 IPv6 实际只用 2000::/3 这段(首字节二进制 001xxxxx)——也就是 2000::3fff:ffff:...:ffff

注册区域IPv6 段(部分)
APNIC(亚太)2001:200::/232400::/122401::/16
ARIN(北美)2001:400::/232600::/12
RIPE(欧洲)2001:600::/232a00::/12
AFRINIC(非洲)2001:4200::/232c00::/12
LACNIC(拉美)2001:1200::/232800::/12

中国家宽 IPv6

运营商典型前缀
中国电信2408::/20240e::/16
中国联通2408::/20 部分、2409::/20
中国移动2409::/20
教育网 CERNET2001:da8::/32

看到 240e:... 就是中国电信家宽 / 中国联通——大概率个人用户。

IPv6 缩写规则

IPv6 完整 128 位写出来 39 字符太长,两条缩写规则

规则 1:每段去前导 0

2001:0db8:0000:0000:0a3f:8a2e:0000:0001
↓ 去每段前导 0
2001:db8:0:0:a3f:8a2e:0:1

规则 2:连续多段全 0 用 :: 替代(一次)

2001:db8:0:0:a3f:8a2e:0:1
↓ 把最长的全 0 段缩成 ::
2001:db8::a3f:8a2e:0:1

注意事项

  • :: 每个地址只能出现一次——多个会产生歧义无法还原
  • 单段的 0 不必用 :: 替换
  • 推荐压缩最长的全 0 段
  • 全 0 地址 0:0:0:0:0:0:0:0 可写 ::、回环 0:0:0:0:0:0:0:1::1

实战例题

完整缩写
fe80:0:0:0:8a3:34ff:fe56:7890fe80::8a3:34ff:fe56:7890
2001:db8:0:0:1::1 —— 一个地址不能有两个 ::
2001:db8:0:0:1:0:0:12001:db8::1:0:0:1(压前面)或 2001:db8:0:0:1::1(压后面)

防火墙规则、ACL 配置粘贴时若不接受 ::——切到工具的”完整形式”栏直接复制完整 39 字符。

SLAAC vs DHCPv6 vs DHCPv6-PD

IPv6 地址分配机制比 IPv4 多 / 复杂:

SLAAC(无状态自配置)

  1. 路由器周期性发 RA(Router Advertisement),通告 “本网段前缀 2400:da00:e003::/64
  2. 主机收到后自己拼地址:前缀 + EUI-64 / 随机数
  3. 不需要 DHCP 服务器,每台机器独立计算

优点:零配置、抗服务器宕机、扩展性好。缺点:服务器不知道哪台机器是哪个 IP(无中心化记录)。

DHCPv6(有状态)

  1. 主机发 SOLICIT 请求
  2. DHCPv6 服务器分配并记录
  3. 类似 IPv4 DHCP

优点:可记 IP-MAC-Hostname 绑定,可下发 DNS / NTP。缺点Android 至今不支持——Google 强推 SLAAC。

DHCPv6-PD(Prefix Delegation 前缀委派)

  1. 你的家庭路由器向 ISP 申请前缀
  2. ISP 委派一段 /60/56 给路由器
  3. 路由器再用 SLAAC / DHCPv6 给内网子网

这是家宽典型方式——你的路由器收到运营商委派的 /60(16 个 /64 子网)后,按需切给 WiFi、LAN、访客网络等。

场景推荐机制
家用 / 移动 / WiFiSLAAC + RA-RDNSS
企业内网(要管控)DHCPv6(但失去 Android)
双栈(要 DNS)SLAAC + RDNSS in RA
运营商家宽下放DHCPv6-PD

双栈 socket 与 ::ffff: 地址

Linux / BSD / Windows 默认双栈 socket:一个 IPv6 socket 监听 ::同时接收 IPv4 和 IPv6 连接

IPv4 客户端连进来时,在 IPv6 socket API 层面表现为:

源 IP: ::ffff:192.0.2.1
端口: 12345

::ffff:192.0.2.1 就是 IPv4 192.0.2.1 在 IPv6 表示层的”内嵌”形式。

实战影响

  1. Java / Go / Node 默认监听 IPv6——但 netstat -an 看到的是 :::8080 同时接 IPv4 v6
  2. 日志里看到 ::ffff: 开头——拆出末尾 32 位还原 IPv4,再做地理 / WHOIS 查询
  3. 想纯 IPv4 监听——绑定 0.0.0.0:8080 而不是 :::8080
  4. 想纯 IPv6 监听——设 socket 选项 IPV6_V6ONLY=1

工具的”IP 转换”模块输入 ::ffff:192.0.2.1 自动拆出 IPv4 部分。

IPv6 反向 DNS PTR

IPv4 的反向 DNS:1.2.3.44.3.2.1.in-addr.arpa

IPv6 的反向 DNS 复杂得多——每个 16 进制 nibble 一节点

2001:db8::1
↓ 展开 32 nibble
20010db8000000000000000000000001
↓ 逆序 + 每字符一节点 + ip6.arpa
1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa

73 字符长的字符串。手算容易错——工具自动算好直接复制。

实战用途

  1. 邮件服务器——postfix / exim 收信时反查发件方 IP 的 PTR,没设的服务器被视作可疑(SPF/DKIM 之外的另一道关)
  2. 日志分析——访问日志的 IPv6 来源反查域名,识别是不是已知服务(Google bot、AWS、Cloudflare)
  3. DNSSEC 部署——正向 + 反向都要签

自建邮件服务器 IPv6 出口:(1) 在域名 DNS 区里必须配 IPv6 PTR;(2) IPv6 PTR 通常由运营商委派给你的整段 /64——你自己起 NS 服务器或在运营商面板配。

几个常见误区

误区 1:以为 IPv6 不需要防火墙

IPv6 没有 NAT,每台设备都有公网 IPv6——比 IPv4 内网更危险。路由器和操作系统都必须开 IPv6 防火墙默认拒绝入站。

误区 2:以为有 IPv6 就能直连家里

家用路由器默认拦截入站 IPv6——和 IPv4 端口转发一样要在路由器里加放行规则。好处:不需要 NAT 映射,直接放行端口即可

误区 3:把 ::ffff:192.0.2.1 当成 IPv6 地址

只是 IPv6 socket API 表示层,不在网络上传输。日志看到这种地址 → 拆出末尾 IPv4 即可。

误区 4:以为 IPv6 比 IPv4 更慢

实测多数场景 IPv6 直连更快——少了 NAT、运营商 IPv4 通常 CGNAT 多一跳。但部分服务的 IPv6 端口路由优化不足会更慢——双栈环境主机会优先尝试 IPv6 失败再 fallback IPv4(Happy Eyeballs 算法)。

误区 5:把 2001:db8::/32 段当成可用公网

2001:db8::/32 是 RFC 3849 规定的文档示例段——和 IPv4 的 192.0.2.0/24198.51.100.0/24203.0.113.0/24 同性质,写教程用,不会路由

双栈环境的运维速记

任务IPv4 命令IPv6 命令
pingping 1.2.3.4ping6 2001:db8::1
路由表ip routeip -6 route
邻居arp -aip -6 neigh
监听端口netstat -anp4netstat -anp6
nslookupdig A example.comdig AAAA example.com
curl自动选 IPv6 优先curl -6 https://... 强制
ssh 链路本地ssh fe80::abc%eth0

实战诊断流程

  1. ip -6 addr 确认本机 IPv6 地址是 2400:: 还是 fe80:: 还是 fdxx
  2. ping6 ::1 确认 IPv6 协议栈正常
  3. ping6 fe80::路由器地址%网卡名 确认本网段通
  4. ping6 2001:4860:4860::8888(Google DNS IPv6)确认公网通
  5. dig AAAA ipv6.google.com 确认 DNS 解析 IPv6

一句话总结

fe80 链路、fd 内网、23 公网、ff 组播、::ffff: IPv4 内嵌——记住这五个前缀就识别 90% 的 IPv6 场景。SLAAC 是主流分配方式,DHCPv6-PD 是运营商委派,反向 DNS 把 32 nibble 逆序加 .ip6.arpa——工具自动算好。

IPv6 没有 NAT,每台设备都暴露在公网——别忘了路由器和系统的 IPv6 防火墙。需要算 IPv4 CIDR 子网、AWS VPC 切分,见 [[ip-tools]] 的另一篇 CIDR 速查。

❓ 常见问题

IPv4 看 192.168 就懂是内网,IPv6 一串 2400:da00:... 我怎么一眼判断地址类型?

看前 2-3 个 16 进制段(前缀)就够。(1) ::1 —— 全 0 末尾一个 1,回环地址(等价 IPv4 的 127.0.0.1);(2) fe80:: 开头 —— 链路本地,每个网卡 boot 时自动生成,不出本网段,路由器不转发。任何 IPv6 设备都有这种地址;(3) fc00::/7(实际写为 fd00:: 开头)—— 本地唯一 ULA,IPv6 版的"私有 IP",配合 NAT66 用在内网;(4) 2000::/3 —— 即首字节二进制是 001xxxxx 的所有地址(2000::3fff::),是全局单播 GUA公网 IPv6中国电信/联通/移动家宽 IPv6 多在 2400:: ~ 240e:: 这几段;(5) ff00:: 开头 —— 组播(IPv6 没有广播,全靠组播);(6) ::ffff: 开头 —— IPv4-mapped,把 IPv4 32 位塞进 IPv6 末尾(如 ::ffff:192.0.2.1)。速读法:抬头 fe80 链路、fd 私有、23 开头公网、ff 组播——剩下都是特殊用途。

IPv6 地址缩写到底怎么写?为什么 2001:0db8:0000:0000:0000:0000:0000:0001 能缩成 2001:db8::1

两条规则规则 1:每段去前导 0 —— 0db8db80001100000。所以 2001:0db8:0000:...:0001 先简化为 2001:db8:0:0:0:0:0:1规则 2:连续多段全 0 可用 :: 替代一次 —— 0:0:0:0:0:0::,所以 2001:db8:0:0:0:0:0:12001:db8::1关键限制:(1) :: 每个地址只能出现一次(多个会产生歧义无法还原);(2) 单段的 0 不必用 :: 替换(2001:db8:0:1::1 中间的 :0: 保留即可);(3) 推荐优先压缩最长的全 0 段,规则不严但是约定。完整示例fe80:0000:0000:0000:0a12:34ff:fe56:7890fe80::a12:34ff:fe56:7890反向:本工具的"完整 / 压缩"两种格式并列展示——遇到防火墙规则不允许 :: 时切到完整形式粘贴。

家里的路由器 LAN 口 IPv6 是 2400:8902:...,但外面 ping 不通,是没分配公网吗?

多半是被光猫 / 路由器的 IPv6 防火墙拦了先确认你确实有公网 IPv6:(1) 浏览器开 ip.sb 或 test-ipv6.com,看显示的 IPv6 地址是不是和你设备 ifconfig / ipconfig 里看到的一致;(2) 一致 = 你有真公网 IPv6(运营商已下放 /60 或 /56 前缀),没经过 NAT;(3) 不一致或没 IPv6 = 运营商未启用 / 光猫桥接没配好。有公网但 ping 不通:(1) 家用路由器默认入站防火墙——TP-Link / 小米 / 华为 / OpenWrt 都默认拒绝所有入站 IPv6 连接,保护你内网设备不被互联网直接扫;(2) 运营商上游可能也会拦 ICMPv6——少数情况 ping6 不通但 TCP 服务通;(3) 想开放某台设备——在路由器 IPv6 防火墙里加规则放行特定端口,比 IPv4 端口转发更简单(IPv6 不需要 NAT,直接放行即可)。实战:远程访问家里 NAS,用 IPv6 + 路由器防火墙放行 22/443 端口,比 frp / 内网穿透服务零成本——前提家里和远程都有 IPv6。

SLAAC 和 DHCPv6 都给 IPv6 地址,到底用哪个?为什么 Android 不支持 DHCPv6?

两种 IPv6 地址分配机制并存SLAAC(StateLess Address AutoConfiguration)无状态自配置:路由器通告(RA)发"本网段前缀是 2400:abc::/64",主机自己用 MAC 地址 + 前缀拼出完整 IPv6——不需要 DHCP 服务器,每台机器自己算。DHCPv6:和 IPv4 的 DHCP 类似,DHCP 服务器集中分配每台机器的 IPv6。核心差别:(1) SLAAC 快、零配置、抗服务器宕机;(2) DHCPv6 可记录 IP-MAC-Hostname 绑定、可下发 DNS / NTP——企业内网喜欢;(3) Android 至今不支持 DHCPv6——Google 主张 SLAAC 够用,强推 RA-Based RDNSS(路由器通告里塞 DNS)。实战影响:(1) 企业要管控终端 IPv6 → 必须用 DHCPv6 + Windows / iOS / Linux,不能用 Android;(2) 家庭 / 校园 / 公共 WiFi → SLAAC + RA-RDNSS 全兼容;(3) 运营商家宽 多用 DHCPv6-PD(前缀委派)给你的路由器一段 /60,路由器再用 SLAAC 给内网设备发 /64

::ffff:192.0.2.1 这种"IPv4 内嵌 IPv6"是什么场景?6to4 又是什么?

两种不同的转换机制::ffff:a.b.c.d IPv4-mapped IPv6:(1) 用于双栈 socket 接收 IPv4 连接 —— Linux / BSD / Windows 上一个 IPv6 socket(AF_INET6)能同时接收 IPv4 和 IPv6 连接,IPv4 客户端的地址在 IPv6 socket 里被表示为 ::ffff:a.b.c.d;(2) 不在网络上传输——只是内核 socket API 表示层;(3) netstat -an 看到的 IPv6 监听 :: 实际包含 IPv4——这就是为什么 Java / Go / Node 的服务默认监听 IPv6 也能接 IPv4 客户端。2002:xxxx:xxxx:: 6to4:(1) 过渡技术,IPv6 网络在 IPv4-only 互联网上承载——把 IPv4 的 4 字节编码到 IPv6 前缀 2002: 后;(2) 你的 IPv4 192.0.2.1 → 6to4 隧道地址 2002:c000:0201::/48;(3) 2010 年后基本淘汰——双栈和原生 IPv6 普及,6to4 中继不稳定。本工具的"IP 转换"模块两种都能算——遇到日志里的 ::ffff: 地址直接拆出内嵌 IPv4 看真实来源。

IPv6 反向 DNS 怎么写?为什么 PTR 记录这么长?

IPv6 反查比 IPv4 复杂得多IPv4 反查规则:把 4 段反转 + .in-addr.arpa 后缀。1.2.3.44.3.2.1.in-addr.arpaIPv6 反查规则:把完整 128 位(32 个 16 进制 nibble / 半字节)逐个反转 + .ip6.arpa 后缀。2001:db8::1 完整为 20010db8000000000000000000000001 → 反转每个字符 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa——长达 73 字符的字符串怎么算:(1) 先把 IPv6 展开到完整 32 nibble 形式(用工具的"完整形式"栏);(2) 字符反转;(3) 中间加点;(4) 末尾加 .ip6.arpa。本工具自动算好——直接复制粘贴到 DNS 配置里。为什么这么麻烦:DNS 反查的层级分配按字节细粒度,IPv6 128 位才能精确委托权威服务器。实战:邮件服务器(postfix / exim)做反向解析校验时会查 IPv6 PTR——SPF + DKIM 都过、PTR 没设,仍会被部分收件方认作可疑。自建邮件服务器走 IPv6 出口的,必须配 PTR。

🌐 打开 IP 工具箱 IPv4/IPv6 解析·CIDR 计算·子网包含·进制反向DNS·范围互转

📖 同一工具的其他教程