乐于分享
好东西不私藏

IPv6全解:为什么你的电脑冒出一堆神秘地址?你懂IPv6吗?

IPv6全解:为什么你的电脑冒出一堆神秘地址?你懂IPv6吗?

IPv6全解:为什么你的电脑冒出一堆神秘地址?你懂IPv6吗?🤯🌐

打开网络设置,看到 IPv4 就一个地址,IPv6 却密密麻麻列了好几个?fe80::、2408::、还有一堆随机字符串……别慌,这不是中毒了,而是 IPv6 的「多地址哲学」。今天就从这些神秘地址入手,把 IPv6 彻底讲明白 👇


🤔 一、IPv4不够用,所以有了IPv6

上篇我们聊过,IPv4只有 43亿 个地址,靠私有地址 + NAT 苦苦支撑了30年。但互联网设备爆发式增长,NAT也越来越力不从心:

  • 📱 每部手机都要IP
  • 🖥️ 物联网设备百亿级
  • ☁️ 云服务器动辄几万台
  • 🚗 智能汽车也在联网

IPv6的答案很简单粗暴:地址空间从32位扩到128位。

对比项
IPv4
IPv6
地址长度
32位
‎128位
地址总数
~43亿 (4.3×10⁹)
‎~3.4×10³⁸
够不够用
早已耗尽
地球每平方米6.5×10²³个
表示法
点分十进制 ‎192.168.1.1
冒号十六进制 ‎2001:db8::1
是否需要NAT
需要
‎不需要(地址管够)

💡 3.4×10³⁸ 是什么概念?如果每个IPv6地址是一粒沙子,全宇宙的沙子加起来都不够填满IPv6地址空间 🏖️🌌


📝 二、IPv6地址长什么样?

2.1 冒号十六进制

IPv6把128位分成 8组,每组16位(4个十六进制数),组间用冒号 : 分隔:

完整写法:2001:0db8:0000:0000:0000:0000:0000:0001

2.2 压缩规则

为了人类可读,IPv6有两条压缩规则:

规则1:每组前导零可以省略

2001:0db8:0000:0000:0000:0000:0000:0001→ 2001:db8:0:0:0:0:0:1

规则2:连续的全零组可以用 :: 替代(但只能用一次)

2001:db8:0:0:0:0:0:1→ 2001:db8::1

⚠️ :: 只能出现一次!2001::db8::1 是非法的,因为无法判断每组省略了多少个零。

2.3 常见压缩示例

完整形式
压缩后
说明
‎fe80:0000:0000:0000:a1b2:c3ff:fed4:e5f6
‎fe80::a1b2:c3ff:fed4:e5f6
链路本地
‎2001:0db8:0000:0000:0000:0000:0000:0001
‎2001:db8::1
文档示例
‎0000:0000:0000:0000:0000:0000:0000:0001
‎::1
环回地址
‎ff02:0000:0000:0000:0000:0000:0000:0001
‎ff02::1
组播

2.4 前缀表示法

IPv6不再使用子网掩码,而是用 前缀长度 直接跟在地址后面:

2001:db8::/32   → 前32位是网络前缀2001:db8:a:b::/64  → 前64位是网络前缀(最常见)

IPv6的标准做法是:前64位 = 网络前缀,后64位 = 接口标识符。这个 /64 边界几乎是约定俗成的。


🔑 三、IPv6地址分类大全

3.1 按作用范围分

地址类型
前缀
作用范围
类比IPv4
🟢 链路本地
‎fe80::/10
只在本链路(网段)有效
169.254.x.x
🔵 全局单播
‎2000::/3
全球唯一,公网可达
公网IP
🟣 唯一本地
‎fc00::/7
内部网络,不进公网
RFC 1918私有地址
🔴 组播
‎ff00::/8
一对多通信
224.x.x.x
🟡 环回
‎::1/128
本机自测
127.0.0.1
⚪ 未指定
‎::/128
地址未获取时
0.0.0.0

3.2 详解每种地址


🟢 四、链路本地地址 —— fe80:: 开头的「内线电话」

4.1 什么是链路本地地址?

每个IPv6网卡一启用,就会自动生成一个 fe80:: 开头的地址。 不需要路由器、不需要DHCP、不需要任何配置——这是IPv6的「出厂自带」。

4.2 它能干什么?

  • 同一网段内的设备互相通信(邻居发现、路由器发现)
  • 设备上线时用它联系路由器,获取全局地址
  • 就算没有全局地址,链路本地地址也照样存在

4.3 它不能干什么?

  • ‎不能跨路由器!数据包不会被路由到其他网段
  • 不能用来访问互联网
  • 就像公司内线电话:只能打给同一层的同事

4.4 注意事项

使用链路本地地址通信时,必须指定接口(因为每个网卡都有fe80地址,系统不知道你想从哪块网卡发出去):

ping fe80::a1b2:c3ff:fed4:e5f6%eth0#                              ^^^^ 指定从eth0接口发出

💡 %eth0 叫做 区域ID(Zone ID),是链路本地地址的标配。不加这个,ping可能会报错。


🔵 五、全局单播地址 —— IPv6的公网门牌号

5.1 什么是全局单播地址?

全局单播地址(Global Unicast Address, GUA)是 全球唯一、可以在互联网上路由 的IPv6地址。相当于IPv4的公网IP。

前缀范围:2000::/3,即第一个十六进制位是 2 或 3 开头。

常见前缀
分配方
用途
‎2408::/12
中国电信
国内宽带用户
‎2409::/12
中国联通
国内宽带用户
‎240a::/12
中国移动
国内宽带用户
‎240e::/12
中国教育网
高校/研究机构
‎2001::/16
全球分配
早期IPv6部署

5.2 一个设备可以有多少个全局地址?

IPv6的答案:可以有多个,而且这是正常的!

一个设备通常会同时拥有:

  1. ‎一个稳定的全局地址(基于MAC地址生成,固定不变)
  2. ‎一个或多个临时隐私地址(随机生成,定期更换)

这两个都是全局单播地址,都能上网。为什么要两个?接着看 👇


🕵️ 六、临时隐私地址 —— 反追踪的隐身衣

6.1 问题:EUI-64会暴露你的MAC

传统IPv6地址的接口标识符用 EUI-64 算法从MAC地址生成:

MAC: AA:BB:CC:DD:EE:FF       ↓ EUI-64转换接口ID: A8BB:CCFF:FEDD:EE:FF  (第7位取反: AA→A8)

这意味着你的IPv6地址里嵌入了MAC地址!任何人只要看到你的IPv6地址,就能:

  • 🔍 识别你的设备(MAC全球唯一)
  • 📍 追踪你的位置(同一MAC出现在不同网络 = 同一台设备)
  • 🏭 知道你的网卡厂商(MAC前24位 = 厂商代码)

这在隐私保护上是灾难。

6.2 解决方案:隐私扩展(RFC 4941)

现代操作系统(Windows 10+、macOS、Android、iOS、Linux)默认启用 IPv6隐私扩展:

  • 系统额外生成 临时地址:前缀不变,接口ID完全随机
  • 临时地址 定期更换(通常几小时到几天)
  • ‎对外连接优先使用临时地址(源地址选临时地址)
  • 稳定地址保留,用于 入站连接(别人主动连你时用)

6.3 实际效果

你的网卡上可能看到:① fe80::a1b2:c3ff:fed4:e5f6                    ← 链路本地(必存在)② 2408:8207:ca3f:1:a1b2:c3ff:fed4:e5f6         ← 全局稳定(基于MAC)③ 2408:8207:ca3f:1:7f3a:9c12:4b8d:e621         ← 全局临时(随机生成,定期换)④ 2408:8207:ca3f:1:5d2e:ab18:3c7f:90d4         ← 上一个临时(已过期但未删除)

💡 所以你看到「一堆IPv6地址」,本质上就是:1个链路本地 + 1个稳定全局 + 若干临时全局。完全正常,不是异常!

6.4 各系统隐私扩展设置

系统
默认行为
查看命令
Windows
临时地址默认开启
‎netsh interface ipv6 show privacy
macOS
临时地址默认开启
‎ndp -an 查看
Linux
多数发行版默认开启
‎cat /proc/sys/net/ipv6/conf/eth0/use_tempaddr
Android/iOS
临时地址默认开启
系统设置 → 网络详情

Windows 手动控制:

:: 开启临时地址netsh interface ipv6 set privacy state=enabled:: 关闭临时地址(不推荐)netsh interface ipv6 set privacy state=disabled:: 设置临时地址有效期(秒)netsh interface ipv6 set privacy maxpreferredlifetime=86400

🟣 七、唯一本地地址 —— IPv6的私有地址

7.1 什么是ULA?

唯一本地地址(Unique Local Address, ULA)是IPv6版本的「私有地址」,定义在 RFC 4193:

  • 前缀:‎fc00::/7
  • 实际使用:‎fd00::/8(本地分配,‎fc00::/8 保留未来中心化分配)
  • ‎不在公网路由,仅用于内部网络
  • 类似IPv4的 ‎10.0.0.0/8、‎172.16.0.0/12、‎192.168.0.0/16

7.2 ULA vs IPv4私有地址

对比
IPv4私有
IPv6 ULA
前缀
10/8, 172.16/12, 192.168/16
fd00::/8
是否全局唯一
❌ 不同组织可重复
✅ 包含随机40位,冲突概率极低
NAT上网
✅ 必须NAT
⚠️ 技术上可以NAT但违背IPv6理念
常见用途
内网、家庭、企业
内网、企业、无需公网的场景

7.3 ULA的生成

ULA的40位随机前缀是本地生成的,不需要向任何人申请:

fd + 40位随机数 + 16位子网ID + 64位接口ID例:fd7a:3b1c:d54e::/48  ← 40位随机部分: 7a:3b1c:d54e

💡 即使两个组织碰巧生成了相同的ULA前缀(概率约2^-40 ≈ 万亿分之一),只要它们的网络不互联,也完全没问题。


📢 八、组播地址 —— 一对多的高效通信

8.1 什么是组播?

组播(Multicast)是一对多的通信方式:一个发送者,多个接收者。比广播更精准——只有「加入组」的设备才会收到。

IPv6 取消了广播,用组播完全替代。

8.2 常见组播地址

地址
名称
用途
‎ff02::1
所有节点
本链路上所有设备
‎ff02::2
所有路由器
本链路上所有路由器
‎ff02::1:2
所有DHCP代理
DHCPv6
‎ff02::1:ffxx:xxxx
被请求节点
邻居发现(NDP)
‎ff05::1:3
所有DHCP服务器
站点内DHCPv6

8.3 组播地址结构

ff    02    :    0000:0000:0000:0000:0000:0001│     ││     └── 范围:0=保留 1=接口 2=链路 5=站点 8=组织 E=全局│└── 前缀:ff = 组播标志位

⚡ 九、SLAAC —— 即插即用的自动配置

9.1 IPv6不需要DHCP?

IPv4时代,设备获取IP地址主要靠 DHCP 服务器。IPv6引入了一种全新的方式:SLAAC(无状态地址自动配置),设备可以自己搞定,不需要任何服务器。

9.2 SLAAC工作流程

Step 1:生成链路本地地址

设备一启用IPv6,就自动生成 fe80:: 地址(基于MAC或随机):

fe80::a1b2:c3ff:fed4:e5f6

Step 2:发送RS(Router Solicitation)

设备向本链路所有路由器喊话:「有没有路由器?给我一个前缀!」

源: fe80::a1b2:c3ff:fed4:e5f6目的: ff02::2 (所有路由器)消息: Router Solicitation

Step 3:路由器回应RA(Router Advertisement)

路由器广播:「这个网段的前缀是 2408:8207:ca3f::/64!」

源: fe80::1 (路由器的链路本地)目的: ff02::1 (所有节点)消息: Router Advertisement, 前缀=2408:8207:ca3f::/64

Step 4:拼接成完整地址

设备把前缀和接口ID拼起来:

前缀:     2408:8207:ca3f:0000接口ID:                  a1b2:c3ff:fed4:e5f6完整地址: 2408:8207:ca3f:0000:a1b2:c3ff:fed4:e5f6

同时,隐私扩展还会额外生成临时地址。

9.3 SLAAC vs DHCPv6

特性
SLAAC
DHCPv6
需要服务器?
❌ 不需要
✅ 需要DHCPv6服务器
配置复杂度
极低
中等
地址分配
设备自己拼
服务器集中分配
DNS信息
RA中附带(RDNSS)
服务器推送
适用场景
家庭/简单网络
企业/需要地址审计的网络
典型组合
SLAAC + RA DNS
SLAAC + DHCPv6(混合模式)

💡 现代网络常用 SLAAC + DHCPv6 混合模式:SLAAC负责地址分配,DHCPv6负责推送DNS等额外配置。


🔄 十、EUI-64 —— 从MAC生成接口ID

10.1 转换规则

EUI-64把48位MAC地址扩展为64位接口标识符:

原MAC:    AA:BB:CC : DD:EE:FF                ↓在中间插入 FF:FE:   AA:BB:CC:FF:FE:DD:EE:FF                ↓第7位取反:        A8:BB:CC:FF:FE:DD:EE:FF                ↓接口ID:           a8bb:ccff:fedd:eeff

10.2 举个例子

MAC:  00:1A:2B:3C:4D:5E步骤1: 001A:2B3C:4D:5E → 001A:2BFF:FE3C:4D5E步骤2: 第7位取反 → 021A:2BFF:FE3C:4D5E (00→02)步骤3: 021a:2bff:fe3c:4d5e

10.3 为什么现在不太用EUI-64了?

隐私问题! MAC地址全球唯一且固定不变,用它生成IPv6地址意味着:

  • 你的设备在不同网络下的IPv6地址后缀永远一样
  • 可以被跨网络追踪

所以现代系统更倾向用 随机接口ID(临时地址)。


🛠️ 十一、实战:查看你系统上的IPv6地址

Windows

:: 查看所有IPv6地址ipconfig /all:: 只看IPv6ipconfig | findstr "IPv6":: 查看临时地址状态netsh interface ipv6 show privacy:: 测试IPv6连通性ping -6 ::1ping -6 2001:4860:4860::8888

典型输出:

以太网适配器 以太网:   IPv6 地址 . . . . . . . . . : 2408:8207:ca3f:1:a1b2:c3ff:fed4:e5f6(首选)   临时 IPv6 地址. . . . . . . : 2408:8207:ca3f:1:7f3a:9c12:4b8d:e621   本地链接 IPv6 地址. . . . . : fe80::a1b2:c3ff:fed4:e5f6%12(首选)   IPv4 地址 . . . . . . . . . : 192.168.1.10

Linux

# 查看所有IPv6地址ip -6 addr show# 查看特定接口ip -6 addr show eth0# 查看IPv6路由ip -6 route show# 查看邻居发现表(类似ARP)ip -6 neigh show# 测试IPv6连通性ping6 ::1ping6 2001:4860:4860::8888

典型输出:

2: eth0: <BROADCAST,MULTICAST,UP> mtu 1500    inet6 2408:8207:ca3f:1:a1b2:c3ff:fed4:e5f6/64 scope global dynamic    inet6 2408:8207:ca3f:1:7f3a:9c12:4b8d:e621/64 scope global temporary dynamic    inet6 fe80::a1b2:c3ff:fed4:e5f6/64 scope link

macOS

# 查看IPv6地址ifconfig en0 | grep inet6# 查看邻居发现ndp -an# 测试IPv6连通性ping6 ::1

🧩 十二、多地址解读实战 —— 看到一堆IPv6不再懵

场景:你打开 ipconfig 看到这些

IPv6 地址 . . . . . : 2408:8207:ca3f:1:a1b2:c3ff:fed4:e5f6(首选)临时 IPv6 地址 . . . : 2408:8207:ca3f:1:7f3a:9c12:4b8d:e621本地链接 IPv6 地址 . : fe80::a1b2:c3ff:fed4:e5f6%12(首选)IPv6 地址 . . . . . : fd7a:3b1c:d54e::1

逐行翻译 👇

地址
类型
解读
‎2408:...:e5f6(首选)
全局稳定地址
你的公网IPv6门牌号,基于MAC生成,固定不变
‎2408:...:e621
临时隐私地址
随机生成的隐身地址,对外连接用这个,定期换
‎fe80::...%12
链路本地
本网段通信用,%12是网卡编号
‎fd7a:...::1
唯一本地
内网私有地址,不进公网

关键问题速答

Q:IPv6有NAT吗?A:技术上可以做NAT66,但IPv6的设计理念是 每台设备都有全局地址,不需要NAT。防火墙控制入站安全即可。

Q:这么多地址,别人连我用哪个?A:DNS里注册的通常是 稳定全局地址。临时地址只用于你主动出去时。

Q:临时地址频繁更换,长连接会不会断?A:已有连接不会被中断(用旧地址继续),新连接才会用新临时地址。

Q:能不能只要一个IPv6地址?A:技术上可以关掉隐私扩展,但 不推荐——会增加被追踪的风险。链路本地地址无法关闭。


📊 十三、IPv6地址分类速查表

前缀
类型
作用域
是否必存在
类比IPv4
‎::1/128
环回
本机
是
127.0.0.1
‎::/128
未指定
-
否
0.0.0.0
‎fe80::/10
链路本地
本链路
‎是
169.254.x.x
‎fc00::/7
唯一本地ULA
内网
否
10/172.16/192.168
‎2000::/3
全局单播GUA
全球
有IPv6时
公网IP
‎ff00::/8
组播
按范围
否
224.x.x.x
‎::ffff:192.168.1.1
IPv4映射
兼容
否
-

🆚 十四、IPv4 vs IPv6 核心差异总结

维度
IPv4
IPv6
地址长度
32位
128位
表示法
192.168.1.1
2001:db8::1
地址分类
A/B/C/D/E类
前缀路由,无类别
私有地址
RFC 1918 三段
ULA fd00::/8
地址配置
DHCP 或手动
SLAAC / DHCPv6 / 手动
单网卡地址数
通常1个
通常3~6个
NAT
必须
不需要
广播
✅ 有
❌ 取消,用组播替代
邻居发现
ARP(广播)
NDP(组播 + ICMPv6)
分片
路由器可分片
‎只允许发送端分片
安全性
可选IPSec
‎内置IPSec支持
DNS记录
A记录
AAAA记录
ping命令
‎ping
‎ping6 或 ‎ping -6

🧠 十五、为什么IPv6推广这么慢?

原因
说明
NAT太好用了
IPv4私有+NAT方案成熟,迁移动力不足
兼容性问题
IPv6和IPv4不直接互通,需要双栈/隧道过渡
设备升级成本
老旧设备/系统可能不支持IPv6
运营商惰性
升级网络基础设施需要投入
技能缺口
很多网管对IPv6不熟悉

现状:全球IPv6采用率约 40%+(Google统计),中国约 30%+,仍在持续增长。IPv6不是「要不要上」的问题,而是「什么时候上」的问题。


🔮 十六、未来展望

  • ‎IPv4地址交易市场:剩余地址越来越贵,推动迁移
  • ‎5G/物联网:海量设备驱动IPv6需求
  • ‎双栈长期共存:IPv4和IPv6并行运行是主流方案
  • ‎纯IPv6网络:部分云厂商(如AWS、阿里云)已支持纯IPv6 VPC
  • ‎NAT64/DNS64:纯IPv6网络访问IPv4资源的过渡技术

IPv6不会一夜取代IPv4,但趋势已经不可逆。理解IPv6,就是提前拿到下一代互联网的钥匙 🔑


💬 写在最后

下次看到系统里冒出好几个IPv6地址,别再慌了——

  • ‎fe80:: 开头?→ 链路本地,本网段用的
  • ‎2408:: / ‎2409:: / ‎240a:: 开头?→ 全局公网地址
  • 同一个前缀下有两三个?→ 稳定地址 + 临时隐私地址
  • ‎fd 开头?→ 内网私有

多地址不是Bug,是IPv6的Feature。 每个地址各司其职:链路本地管基础通信,稳定地址管入站连接,临时地址管隐私保护,组播管高效通知。IPv6的设计哲学就是:地址够多,每个用途都有专属地址,不必像IPv4那样一个地址凑合着用 🎯


本文基于公开资料整理,仅供科普教育用途。技术标准请以 IETF RFC 文档为准。

相关学习资料