解决安卓手机测试IPv6站点不能访问的问题
现在越来越多的app或站点需要支持IPv6了,虽然运营商网络已经支持,但在产品发布前只能使用内部局域网来进行测试,但发现使用安卓手机碰到一些麻烦,特此记录一下
IPv6与IPv4
- IPv6具有更大的地址空间,IPv6中IP地址的长度为128,即最大地址个数为2^128
- IPv4中规定IP地址长度为32,最大地址个数为2^32
- IPv4点分十进制格式,IPv6采用十六进制表示
- IPv6地址的表达形式一般采用32个十六进制数。例如:2001:0db8:85a3:08d3:1319:8a2e:0370:7344
- 更多表示方法及IPv6相关知识可参考扩展阅读
ipv6测试站点
安卓手机默认不能访问IPv6站点
前提:网络支持IPv6
- 手机连接wifi,浏览器访问test-ipv6,发现并没有检测到IPv6地址
- 再次查看手机wifi中ip地址栏中(或在手机状态信息中)的显示局域网内IPv4地址和fe80开头的IPv6地址
- 至于fe80开头的IPv6地址,这其实链路本地地址(Link-local address),又称链接本地地址是计算机网络中一类特殊的地址, 它仅供于在网段,或广播域中的主机相互通信使用。这类主机通常不需要外部互联网服务,仅有主机间相互通讯的需求(参考维基百科-链路本地地址)
DHCPv6-Client
目前安卓手机是不支持IPv6的,google默认是disable了IPv6,如果需要开启的话,需要root并借助工具
DHCPv6-Client来开启
开启步骤:
- 已经root的手机,如小米手机开发者版本(root相对比较简单)
- 下载DHCPv6-Client-Android apk并安装
- 在root权限管理中添加DHCPv6客户端的允许
- 现在再访问test-ipv6,则可以检测到IPv6地址了
- 再查看wifi网络的IPv6地址,此时就不是fe80开头的地址了,如下图