那个ipv6临时地址

我曾经发过一帖

求助校园网 pppoe 拨号后 ipv6 无法使用的问题

那时我的介面里面有两个 Global 的 v6 地址,我并不知道原因

最近才听说 ipv6 有个临时地址
据说是为了保护隐私,系统会不断产生一些临时 v6 地址,另外还有一个固定的 v6 地址

通过 sysctl 把 linux 的 ipv6 临时地址功能禁用了
现在只有一个 v6 地址在介面中,ipv6 也完全正常

你们怎么看?论坛中的其他校园网用户?

没错的,遇到了和楼主同样的问题,在 PPPoE 下被分配到多个 IPv6 地址,解决方法如下

sudo grep use_tempaddr /etc/sysctl.conf
net.ipv6.conf.default.use_tempaddr = 2
net.ipv6.conf.all.use_tempaddr = 2



sudo sysctl net.ipv6.conf.default.use_tempaddr = 2
sudo sysctl net.ipv6.conf.all.use_tempaddr = 2

注:1. 这样做只能暂时生效,重启后会还原默认配置,要想永久生效,请在配置文件 /etc/sysctl.conf 中进行修改(如没有这两个选项,直接加到文件末尾即可)
2. 经测试,该做法既可解决 nm 下 pppoe 出现的该问题,也可以解决 ppp 下出现的该问题,前提是 pppoe 连接后获取到了 IPv6 的地址。若获取不到,请先检查网络环境,然后检查文件 /etc/ppp/options 中是否开启了 ipv6 支持,若没有,则在该文件末尾添加

+ipv6 ipv6cp-use-ipaddr
ipv6 ,

注意其中的逗号和空格及加号
然后

 sudo systemctl restart NetworkManager.service 

具体分配到多个 v6ip 导致无法使用 ipv6 的原因还需要研究一下,如果各位有人知晓,望清指点。
详情请见: blog.linitx.com/control-privacy-addressing-ipv6-linux/