18.04 - 如何禁用临时/隐私 IPv6 地址?

18.04 - 如何禁用临时/隐私 IPv6 地址?

我已经安装了 18.04 并且用它作为跳转框来实现其他功能。

我需要访问的一些东西只能通过 IPv6 访问,并且希望我从特定的 IPv6 地址连接,所以我的盒子配置了一个静态 IPv6 地址。

出于某种原因,我似乎无法阻止 Ubuntu 生成和优先使用隐私 IPv6 地址。这意味着当我尝试连接到其他设备时,我似乎来自错误的 IPv6 地址。

我已经使用静态 IPv6 地址配置了 Netplan(显示示例地址 - 我实际上并没有使用它)

# This file describes the network interfaces available on your system
# For more information, see netplan(5).
network:
  version: 2
  renderer: networkd
  ethernets:
    ens192:
      dhcp4: no
      dhcp6: no
      addresses: [192.168.212.152/25, '2001:0db8:85a3:0000::98/128']
      gateway4: 192.168.212.129
      nameservers:
        search: ['mydomain.local']
        addresses: [192.168.212.141, 192.168.212.142, '2001:0db8:85a3:0000::8d', '2001:0db8:85a3:0000::8e']

我已在 /etc/sysctl.d/10-ipv6-privacy.conf 中将 sysctl 配置为不使用 IPv6 隐私寻址:

# IPv6 Privacy Extensions (RFC 4941)
# ---
# IPv6 typically uses a device's MAC address when choosing an IPv6 address
# to use in autoconfiguration. Privacy extensions allow using a randomly
# generated IPv6 address, which increases privacy.
#
# Acceptable values:
#    0 - don’t use privacy extensions.
#    1 - generate privacy addresses
#    2 - prefer privacy addresses and use them over the normal addresses.
net.ipv6.conf.all.use_tempaddr = 0
net.ipv6.conf.default.use_tempaddr = 0



$ sysctl net.ipv6.conf.ens192.use_tempaddr
net.ipv6.conf.ens192.use_tempaddr = 0

我仍然获得临时的 IPv6 地址:

$ ip -6 addr
2: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 state UP qlen 1000
    inet6 2001:0db8:85a3:0000:20c:29ff:fede:fa42/64 scope global dynamic mngtmpaddr noprefixroute
       valid_lft 2591895sec preferred_lft 604695sec
    inet6 2001:0db8:85a3:0000::98/128 scope global
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fede:fa42/64 scope link
       valid_lft forever preferred_lft forever

我可以删除隐私地址或将其设置为已弃用,但每当我应用 netplan 或重新启动时它都会重新出现。

是我做错了什么还是这是一个错误?

答案1

我也遇到了同样的问题。我首先尝试在 sysctl.conf 中禁用 ipv6 autoconf 和 accept_ra

# sysctl -p
net.ipv6.conf.all.autoconf = 0
net.ipv6.conf.all.accept_ra = 0
net.ipv6.conf.lan.autoconf = 0
net.ipv6.conf.lan.accept_ra = 0
net.ipv6.conf.wan.autoconf = 0
net.ipv6.conf.wan.accept_ra = 0

但这并没有改变任何东西。由于 netplan 存在一些时间问题,我在 netplan yaml 文件中禁用了 accept_ra。

/etc/netplan/50-cloud-init.yaml

addresses:
- xxx.xxx.xxx.xxx/24
- xxxx:xxxx:xxxx::xx/64
dhcp4: false
dhcp6: false
accept-ra: false

答案2

在 .yaml 文件中的接口配置下放置“accept-ra: false”。

相关内容