AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 764695
Accepted
Chris Keller
Chris Keller
Asked: 2016-04-29 19:21:36 +0800 CST2016-04-29 19:21:36 +0800 CST 2016-04-29 19:21:36 +0800 CST

如何在 16.04 中获得稳定的 IPv6 地址?

  • 772

我有一个指向我的家庭服务器的域名。在通过 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 地址,或者有没有其他方法可以得到一个可以在域名记录中使用的稳定地址?

16.04
  • 3 3 个回答
  • 15121 Views

3 个回答

  • Voted
  1. Best Answer
    saiarcot895
    2016-05-30T05:12:11+08:002016-05-30T05:12:11+08:00

    我只是想通了。对于 中的每个连接/etc/NetworkManager/system-connections/,您需要设置以下属性:

    [ipv6]
    addr-gen-mode=eui64
    

    16.04 中的 NetworkManager 似乎stable-privacy为该addr-gen-mode设置设置了默认值。

    • 7
  2. Josh Watzman
    2016-06-27T04:02:45+08:002016-06-27T04:02:45+08:00

    这里的其他答案有点不完整:如果您没有配置 NetworkManager 配置(这实际上是问题所在,请参见下文),则更改 NetworkManager 配置无济于事,并且禁用 IPv6 隐私扩展实际上有些不相关(再次,如果您所谓的稳定每次启动时 IPv6 地址都会更改,删除额外的隐私地址无济于事)。

    如该线程中所述,如果您使用有线连接,则默认的 16.04 新安装会稍有疏忽。NetworkManager 会自动生成一个“临时”配置,它工作得很好,但是,嗯,临时的。这意味着用于散列到假定一致的 IPv6 地址的 GUID 不会被存储,因此您每次启动都会获得一个新的。只需进入 NetworkManager,在有线连接上按“编辑”并保存它而不做任何更改,将生成一个带有保存 GUID 的实际 NM 配置,因此每次启动时您将获得相同的 IPv6 地址。

    该地址是一个 RFC7217 地址(GUID、您的前缀等的加密哈希)——因此,尽管每次启动它都是稳定的,但它并不是将您的 MAC 地址直接包含到地址中的那种。如果您想要其中一个 EUI64 地址,this other answer on this question详细说明了如何更改它。

    • 7
  3. user206966
    2016-05-07T02:25:54+08:002016-05-07T02:25:54+08:00

    Ubuntu 16.04 和以前的版本对我来说一直默认使用 EIU-64,所以对于服务器我必须禁用它。我很高兴在我的桌面上使用隐私地址。

    所以你需要类似的东西:

        sysctl -w net.ipv6.conf.all.use_tempaddr=0
        sysctl -w net.ipv6.conf.default.use_tempaddr=0
        sysctl -w net.ipv6.conf.default.use_tempaddr=0
        sysctl -w net.ipv6.conf.<devname>.use_tempaddr=0
    

    然后 ifdown/ifup。结果对我来说,注意 MAC/IPv6 关系:

    $ ifconfig enp3s0 | egrep 'HWaddr|Global'
    enp3s0    Link encap:Ethernet  HWaddr 74:d0:2b:90:8b:90  
              inet6 addr: 2501:300:d008:61c8:76d0:2bff:fe90:8b90/64 Scope:Global
    

    如果您需要在某些接口而不是其他接口上启用它,您可以命名特定接口。您可以通过以下方式查看列表:

    $ sysctl -a | grep tempaddr
    

    我不建议将网络管理器用于生产服务。例如,它不会在其他方面表现不佳,例如 /etc/sysctl.conf。如果您想这样做,您将需要在 /etc/networking/interfaces 中输入一个静态地址或自动配置的地址。我只是在使用:

    auto enp3s0 
    iface enp3s0 inet dhcp
    iface enp3s0 inet6 auto
    pre-up modprobe ipv6
    

    当然要根据口味调整。

    • 6

相关问题

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve