Raspberry Pi changes Wi-Fi MAC address on boot

This is a new security feature in Network Manager.

Disable the MAC address randomization by creating the file

/etc/NetworkManager/conf.d/100-disable-wifi-mac-randomization.conf

with the content:

[connection]
wifi.mac-address-randomization=1

[device]
wifi.scan-rand-mac-address=no

or:

mv /etc/NetworkManager/conf.d/100-disable-wifi-mac-randomization.conf /etc/NetworkManager/conf.d/100-disable-wifi-mac-randomization.conf.bak

echo "[connection]" >/etc/NetworkManager/conf.d/100-disable-wifi-mac-randomization.conf

echo "wifi.mac-address-randomization=1" >>/etc/NetworkManager/conf.d/100-disable-wifi-mac-randomization.conf

echo -e "\n[device]" >>/etc/NetworkManager/conf.d/100-disable-wifi-mac-randomization.conf

echo "wifi.scan-rand-mac-address=no\n" >>/etc/NetworkManager/conf.d/100-disable-wifi-mac-randomization.conf

Afterwards you may need to update your device’s MAC in your DHCP server.

Then reboot.