为什么我的手机用不了IPV6?

背景:宿舍的无线是桥接模式,使用学校的DHCP服务器,另一台Android设备(寨板,4.4,Intel 3735)可以愉快地上网;这台设备之前也是可以用的,直到某次更新ROM前后,可能是5.1出没但CM组没人更新LG G2的那段时间。

症状:ip addr告诉我学校确确实实发来了(2402开头的真正的)IPV6地址,但是ping6 google.com显示Network unreachable,继续查找发现ip -6 route没有默认网关,就像这条ISSUE所说的一样。

解决方案:把内核参数改了就行。在su以后sysctl -w net.ipv6.conf.wlan0.accept_ra_defrtr=1可以坚持到下次启动。

更详细的说明见这里。简单概括一下,你需要在/etc/sysctl.conf里加上

net.ipv6.conf.wlan0.accept_ra_defrtr=1

这一行,然后每次启动*尽量晚的*以su身份运行sysctl -p就行,因为/init_qcom.sh运行的就挺晚的,所以直接写在/etc/init.d/里是不行的。

另外,这次应该是高通不知道在想什么user space,小米只是背锅。

另外,虽然可能看不出来,但是这个博客的后台已经换了一个。