Proxmox VE 的默认网络设置不支持通过 DHCPv6/SLAAC 获取 IPv6 地址,写一个开启 IPv6 动态获取的教程


按下面的操作修改配置文件后即可正常获取 IPv6。
注意:本教程仅影响 PVE 宿主机 和 LXC 容器,不影响 KVM 和其他设备

  • 修改配置文件 nano /etc/sysctl.conf
  • 把文件内容替换为/在末尾加上下面的内容
1
2
3
4
5
6
net.ipv6.conf.all.accept_ra=2
net.ipv6.conf.default.accept_ra=2
net.ipv6.conf.vmbr0.accept_ra=2
net.ipv6.conf.all.autoconf=2
net.ipv6.conf.default.autoconf=2
net.ipv6.conf.vmbr0.autoconf=2
  • sysctl -p,或重启主机

下方划删除线内容已失效 (自从 Proxmox VE 8.0)

另外备注一下:LXC 容器 获取 IPv6 地址要设置成 SLAAC 才能获取地址(设置为 SLAAC 后既可以 DHCPv6 有状态,也可以 SLAAC 无状态,设置为 DHCP 只能拿到Link-Local 链路地址)
LXC 容器修改完网络设置重启对应容器即可

重启之后检查一下 PVE 主机和 LXC 容器有没有拿到地址

1
2
3
4
5
6
7
8
9
10
11
# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.20.6.9 netmask 255.224.0.0 broadcast 10.31.255.255
inet6 2408:8210::18a9:1eff:fee2:600c prefixlen 64 scopeid 0x0<global>
inet6 2408:8210::10:20:6:9 prefixlen 128 scopeid 0x0<global>
inet6 fe80::18a9:1eff:fee2:600c prefixlen 64 scopeid 0x20<link>
ether 1a:a9:1e:e2:60:0c txqueuelen 1000 (Ethernet)
RX packets 134 bytes 33534 (33.5 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 126 bytes 24570 (24.5 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

可以看到同时通过 DHCPv6 和 SLAAC 拿到了地址