IPv6全解:为什么你的电脑冒出一堆神秘地址?你懂IPv6吗?🤯🌐
打开网络设置,看到 IPv4 就一个地址,IPv6 却密密麻麻列了好几个?
fe80::、2408::、还有一堆随机字符串……别慌,这不是中毒了,而是 IPv6 的「多地址哲学」。今天就从这些神秘地址入手,把 IPv6 彻底讲明白 👇
🤔 一、IPv4不够用,所以有了IPv6
上篇我们聊过,IPv4只有 43亿 个地址,靠私有地址 + NAT 苦苦支撑了30年。但互联网设备爆发式增长,NAT也越来越力不从心:
📱 每部手机都要IP 🖥️ 物联网设备百亿级 ☁️ 云服务器动辄几万台 🚗 智能汽车也在联网
IPv6的答案很简单粗暴:地址空间从32位扩到128位。

192.168.1.1 | 2001:db8::1 | |
💡 3.4×10³⁸ 是什么概念?如果每个IPv6地址是一粒沙子,全宇宙的沙子加起来都不够填满IPv6地址空间 🏖️🌌
📝 二、IPv6地址长什么样?
2.1 冒号十六进制
IPv6把128位分成 8组,每组16位(4个十六进制数),组间用冒号 : 分隔:
完整写法:2001:0db8:0000:0000:0000:0000:0000:00012.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 按作用范围分
fe80::/10 | |||
2000::/3 | |||
fc00::/7 | |||
ff00::/8 | |||
::1/128 | |||
::/128 |
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 |
5.2 一个设备可以有多少个全局地址?
IPv6的答案:可以有多个,而且这是正常的!
一个设备通常会同时拥有:
一个稳定的全局地址(基于MAC地址生成,固定不变) 一个或多个临时隐私地址(随机生成,定期更换)
这两个都是全局单播地址,都能上网。为什么要两个?接着看 👇
🕵️ 六、临时隐私地址 —— 反追踪的隐身衣
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 各系统隐私扩展设置
netsh interface ipv6 show privacy | ||
ndp -an 查看 | ||
cat /proc/sys/net/ipv6/conf/eth0/use_tempaddr | ||
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私有地址
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 | ||
ff02::1:ffxx:xxxx | ||
ff05::1:3 |
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:e5f6Step 2:发送RS(Router Solicitation)
设备向本链路所有路由器喊话:「有没有路由器?给我一个前缀!」
源: fe80::a1b2:c3ff:fed4:e5f6目的: ff02::2 (所有路由器)消息: Router SolicitationStep 3:路由器回应RA(Router Advertisement)
路由器广播:「这个网段的前缀是 2408:8207:ca3f::/64!」
源: fe80::1 (路由器的链路本地)目的: ff02::1 (所有节点)消息: Router Advertisement, 前缀=2408:8207:ca3f::/64Step 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 混合模式: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:eeff10.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:4d5e10.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.10Linux
# 查看所有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 linkmacOS
# 查看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(首选) | ||
2408:...:e621 | ||
fe80::...%12 | ||
fd7a:...::1 |
关键问题速答
Q:IPv6有NAT吗?A:技术上可以做NAT66,但IPv6的设计理念是 每台设备都有全局地址,不需要NAT。防火墙控制入站安全即可。
Q:这么多地址,别人连我用哪个?A:DNS里注册的通常是 稳定全局地址。临时地址只用于你主动出去时。
Q:临时地址频繁更换,长连接会不会断?A:已有连接不会被中断(用旧地址继续),新连接才会用新临时地址。
Q:能不能只要一个IPv6地址?A:技术上可以关掉隐私扩展,但 不推荐——会增加被追踪的风险。链路本地地址无法关闭。
📊 十三、IPv6地址分类速查表
::1/128 | ||||
::/128 | ||||
fe80::/10 | ||||
fc00::/7 | ||||
2000::/3 | ||||
ff00::/8 | ||||
::ffff:192.168.1.1 |
🆚 十四、IPv4 vs IPv6 核心差异总结
ping | ping6 或 ping -6 |
🧠 十五、为什么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 文档为准。
夜雨聆风