我有一个带有简单 php 文件的 apache 服务器echo "hello world!";
,当我尝试:
- http://[127.0.0.1]:8000工作正常
- http://[192.168.1.2]:8000工作正常
- http://[::]:8000工作正常
- http://[fe80::b00:24ff:fe62:5fa4]:8000不工作
192.168.1.2我的私人 IPV4 是
fe80::b00:24ff:fe62:5fa4我的私人 IPV6 是
这里出了什么问题?我需要设置一些东西吗?
答案1
你声称的你的私有 IPv6 地址是不是私有 IPv6 地址。在 IPv6 中,私有地址称为 ULA(唯一本地地址),其定义为RFC 4193,唯一本地 IPv6 单播地址。IPv6 ULA 的范围是fc00::/7
,但地址的下半部分(fc00::/8
)保留给未来的全球机构分配。ULA 的后半部分(`fd00::/8)可供本地使用,但以下 40 位(全球 ID)必须由经批准的伪随机数生成器随机生成,以尽量减少冲突的可能性。
你所说的私有 IPv6 地址实际上是链路本地 IPv6 地址(fe80::/10
请参阅RFC 4291,IP 版本 6 寻址架构,第 2.5.6 节。链路本地 IPv6 单播地址)。每个链路上的每个 IPv6 接口都将使用相同的网络进行链路本地寻址。这会导致问题,因为设备可能有多个接口,并且每个接口都将使用相同的链路本地网络。这意味着设备无法确定使用链路本地地址时指的是哪个接口。为了解决这个问题,您可以在地址末尾使用一个范围(接口),例如fe80::b00:24ff:fe62:5fa4%eth0
。不幸的是,浏览器开发人员尚未采用这种表示法。这意味着您无法在浏览器中使用 IPv6 链路本地地址。
您需要2000::/3
在网络上配置全局()或 ULA 寻址,以便在浏览器中使用 IPv6。