I have managed to set IPv6 privacy in Proxmox PVE, in LXC and in VM.
Here is how I did that.
##################################
--------     Privacy extension in Proxmox PVE      ---------
##################################
Open a terminal in Proxmox PVE
Run this command to check if you have it already, it should show 0 if you don't have privacy temp address
	
	
		
		
			sysctl net.ipv6.conf.vmbr0.use_tempaddr
		
		
	 
#Open this file
	
	
#Add these setting that will set the IPv6 temporary addresses (ipv6-privacy) and enable Accept RA
	
	
	
		Bash:
	
	
		net.ipv6.conf.all.use_tempaddr = 2
net.ipv6.conf.default.use_tempaddr = 2
net.ipv6.conf.vmbr0.use_tempaddr = 2
net.ipv6.conf.all.accept_ra = 2
net.ipv6.conf.default.accept_ra = 2
net.ipv6.conf.vmbr0.accept_ra = 2
	 
 
#Run this command, it should output all to 2 now
	
	
#Make the interface down and up again in one command
	
	
		
		
			sudo ifdown vmbr0 && sudo ifup vmbr0
		
		
	 
or
	
	
		
		
			sudo ip link set vmbr0 down && sudo ip link set vmbr0 up
		
		
	 
#Check the temporary ipv6 address, you will see now two ipv6 address, one which is identified as temporary.
	
	
#My Output
	
	
	
		Bash:
	
	
		4: vmbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    inet6 2a01:x:x:x:x:x:x:x/64 scope global temporary dynamic
       valid_lft 86317sec preferred_lft 14317sec
    inet6 2a01:e0a:x:x:x:x:x:x/64 scope global dynamic mngtmpaddr
       valid_lft 86317sec preferred_lft 14317sec
    inet6 fe80::x:x:x:x/64 scope link
       valid_lft forever preferred_lft forever
	 
 
################################
------ --  Privacy extension in LXC Containers  -------
################################
Open a terminal in your LXC
Open the network Eth0 config
	
	
		
		
			vi /etc/systemd/network/eth0.network
		
		
	 
#add IPv6Privacy after IPv6AcceptRA (here is my config)
	
	
	
		Bash:
	
	
		[Match]
Name = eth0
[Network]
Description = Interface eth0 autoconfigured by PVE
DHCP = ipv4
IPv6AcceptRA = true
IPv6PrivacyExtensions = true
	 
 
#add a new file (this file blocks the PVE host from changing the configuration)
	
	
		
		
			touch /etc/systemd/network/.pve-ignore.eth0.network
		
		
	 
#restart network or reboot the lxc
	
	
		
		
			systemctl restart systemd-networkd.service
		
		
	 
or
	
	
#check if you have the temporary ipv6 address
	
	
##############################
------ Privacy extension in VM Machine  ----------
##############################
Open a terminal in your VM
For a VM that was not managed by a cloud-init and the network config is managed by NetworkManager  or networkd
#Open the netplan config file (you have may have a different filename, go in /etc/netplan/ and list element).
	
	
		
		
			sudo vi /etc/netplan/00-installer-config.yaml
		
		
	 
#Add ipv6-privacy: yes
#Here is my config
	
	
	
		Bash:
	
	
		# This is the network config written by 'subiquity'
network:
  version: 2
  renderer: NetworkManager
  ethernets:
    ens18:
      dhcp4: true
      dhcp6: true
      ipv6-privacy: yes
	 
 
#Restart
	
	
#check if you have the temporary ipv6 address
	
	
For a VM managed by Cloud-Init, it configures the system on the first boot using provided settings (e.g., networking, SSH keys). After that, Cloud-Init usually doesn't reapply these settings on reboot unless explicitly configured to do so. Therefore, changes can be made with the understanding that they will not be overwritten by Cloud-Init.
#open the cloud init network file (you have may have a different filename, go in /etc/netplan/ and list element).
	
	
		
		
			sudo vi /etc/netplan/50-cloud-init.yaml
		
		
	 
#add ipv6-privacy: true
#Here is my config
	
	
	
		Bash:
	
	
		# This file is generated from information provided by the datasource.  Changes
# to it will not persist across an instance reboot.  To disable cloud-init's
# network configuration capabilities, write a file
# /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:
# network: {config: disabled}
network:
    version: 2
    ethernets:
        eth0:
            dhcp4: true
            dhcp6: true
            ipv6-privacy: true
            match:
                macaddress: xx:xx:xx:xx:xx:xx
            set-name: eth0
	 
 
#Restart
	
	
#check if you have the temporary ipv6 address