我有一个指向我的家庭服务器的域名。在通过 Wily 发布的每个 Ubuntu 版本中,默认情况下,我都有一个稳定的 EIU-64 地址,可用于我的 AAAA 记录。但是,安装Xenial后,我好像默认没有得到稳定的地址。
joejoe@myserver:~$ ip address
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:24:1d:d2:e3:f4 brd ff:ff:ff:ff:ff:ff
inet 192.168.0.101/24 brd 192.168.0.255 scope global enp2s0
valid_lft forever preferred_lft forever
inet6 2601:280:3068:2945:74ed:b303:6474:6e29/64 scope global temporary dynamic
valid_lft 6965sec preferred_lft 3363sec
inet6 2601:280:3068:2945:ac34:ea15:4340:29a4/64 scope global temporary deprecated dynamic
valid_lft 6965sec preferred_lft 0sec
inet6 2601:280:3068:2945:bdfd:6253:b07e:1308/64 scope global mngtmpaddr noprefixroute dynamic
valid_lft 6965sec preferred_lft 6965sec
inet6 fe80::dc3e:6127:bd4e:18b/64 scope link
valid_lft forever preferred_lft forever
如您所见,所有inet6
地址的scope global
生命周期都是有限的。有没有办法找回我的 EIU-64 地址,或者有没有其他方法可以得到一个可以在域名记录中使用的稳定地址?
我只是想通了。对于 中的每个连接
/etc/NetworkManager/system-connections/
,您需要设置以下属性:16.04 中的 NetworkManager 似乎
stable-privacy
为该addr-gen-mode
设置设置了默认值。这里的其他答案有点不完整:如果您没有配置 NetworkManager 配置(这实际上是问题所在,请参见下文),则更改 NetworkManager 配置无济于事,并且禁用 IPv6 隐私扩展实际上有些不相关(再次,如果您所谓的稳定每次启动时 IPv6 地址都会更改,删除额外的隐私地址无济于事)。
如该线程中所述,如果您使用有线连接,则默认的 16.04 新安装会稍有疏忽。NetworkManager 会自动生成一个“临时”配置,它工作得很好,但是,嗯,临时的。这意味着用于散列到假定一致的 IPv6 地址的 GUID 不会被存储,因此您每次启动都会获得一个新的。只需进入 NetworkManager,在有线连接上按“编辑”并保存它而不做任何更改,将生成一个带有保存 GUID 的实际 NM 配置,因此每次启动时您将获得相同的 IPv6 地址。
该地址是一个 RFC7217 地址(GUID、您的前缀等的加密哈希)——因此,尽管每次启动它都是稳定的,但它并不是将您的 MAC 地址直接包含到地址中的那种。如果您想要其中一个 EUI64 地址,this other answer on this question详细说明了如何更改它。
Ubuntu 16.04 和以前的版本对我来说一直默认使用 EIU-64,所以对于服务器我必须禁用它。我很高兴在我的桌面上使用隐私地址。
所以你需要类似的东西:
然后 ifdown/ifup。结果对我来说,注意 MAC/IPv6 关系:
如果您需要在某些接口而不是其他接口上启用它,您可以命名特定接口。您可以通过以下方式查看列表:
我不建议将网络管理器用于生产服务。例如,它不会在其他方面表现不佳,例如 /etc/sysctl.conf。如果您想这样做,您将需要在 /etc/networking/interfaces 中输入一个静态地址或自动配置的地址。我只是在使用:
当然要根据口味调整。