的Windows默认使用与Windows Vista开始自定义方案。
要检查该功能是否处于活动状态,请运行PowerShell命令:
Get-NetIPv6Protocol | fl RandomizeIdentifiers
要启用/禁用该功能:
Set-NetIPv6Protocol -RandomizeIdentifiers Enabled
Set-NetIPv6Protocol -RandomizeIdentifiers Disabled
Linux(NetworkManager)使用连接配置文件的UUID作为种子的一部分,从NetworkManager v1.2.0开始支持RFC 7217。默认情况下,此功能在最近的NM版本中处于活动状态。
要启用或禁用此功能:
nmcli con modify "<profilename>" ipv6.addr-gen-mode stable-privacy
nmcli con modify "<profilename>" ipv6.addr-gen-mode eui64
Linux(内核SLAAC)从内核v4.1.0开始支持RFC 7217;但是,必须通过sysctl存储秘密种子来手动激活它。
密钥是一个128位的十六进制字符串(形状类似于IPv6地址),必须存储在net.ipv6.conf.default.stable_secret
sysctl中。为了使其持久,可以将其放入/etc/sysctl.d/50-rfc7217.conf
或类似方式:
net.ipv6.conf.default.stable_secret = 84a0:d5aa:52b0:4d35:k567:3aa6:7af5:474c
设置密码会自动为所有网络接口激活此模式。要检查该功能是否处于活动状态,请在中查找“ addrgenmode stable_secret” ip -d link
,或在中查找值“ 2” sysctl net.ipv6.conf.<ifname>.addr_gen_mode
。
Windows从Windows XP SP2开始支持临时地址。
要启用/禁用此功能:
netsh interface ipv6 set privacy state=enabled
netsh interface ipv6 set privacy state=disabled
请注意,从Windows Vista开始,Windows不再使用基于MAC地址的主地址。
Linux(NetworkManager):NetworkManager的最新版本自行处理RA,尽管以下两个值与sysctl具有相同的含义(2 =首选隐私地址,1 =首选主地址):
nmcli con modify <name> ipv6.ip6-privacy 2
同样,从1.2.0版开始,更好的模式变得可用,它将主地址更改为不再基于MAC,而是对每个网络都是唯一的(RFC 7217):
(请注意,隐私寻址与addr-gen-mode正交;可以同时使用两者。)
旁注:从1.4.0开始,NM也允许随机化MAC地址本身。设置wifi.cloned-mac-address
到stable
具有不同的MAC对每个网络(推荐),或random
随机化它为每连接(可能会引起问题)。
在所有情况下,都<name>
必须是连接名称,例如WiFi SSID或"Wired Connection 1"
。使用nmcli con
列出所有。
要将其设置为新连接的默认设置,从1.2.0开始,您可以更改/etc/NetworkManager/NetworkManager.conf
:
[connection]
ipv6.addr-gen-mode=stable-privacy
wifi.cloned-mac-address=stable
Linux(内核SLAAC)支持临时地址,但默认情况下不使用它们。可以通过sysctls激活它们。
要启用临时地址并使它们成为传出连接的首选地址:
sysctl net.ipv6.conf.all.use_tempaddr=2
sysctl net.ipv6.conf.default.use_tempaddr=2
要启用临时地址生成,但将静态SLAAC地址保留为首选:
sysctl net.ipv6.conf.all.use_tempaddr=1
sysctl net.ipv6.conf.default.use_tempaddr=1
的all
或default
部分可以与特定的接口名称被替换; 例如net.ipv6.conf.eth0.use_tempaddr
。
(我曾经ip link set eth0 down && ip link set eth0 up
强制执行地址分配,但您也可以运行rdisc6 eth0
或仅等待几分钟,以便进行下一次定期的路由器广告。)
Mac OS X –自OS X 10.7 Lion起默认启用:
sysctl -w net.inet6.ip6.use_tempaddr=1
临时地址(如果启用)将是首选。
FreeBSD:
sysctl net.inet6.ip6.use_tempaddr=1
sysctl net.inet6.ip6.prefer_tempaddr=1
NetBSD:
sysctl -w net.inet6.ip6.use_tempaddr=1
临时地址偏爱?我不知道。autoconf地址似乎是首选。ifconfig
似乎没有列出任何地址属性。
OpenBSD –在5.2中添加了支持;在5.3中默认启用和首选。
ifconfig em0 autoconfprivacy
ifconfig
在临时地址旁边显示“ autoconfprivacy”。