为什么连接后MAC地址会改变?

ing*_*oxd 2 debian mac-address

最近我注意到当我通过无线连接时,我的网卡更改了 MAC 地址...

这是我的连接ip addr

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: enp0s31f6: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000
    link/ether c8:5b:76:xx:xx:xx brd ff:ff:ff:ff:ff:ff
3: wlp4s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
    link/ether fe:96:23:xx:xx:xx brd ff:ff:ff:ff:ff:ff
Run Code Online (Sandbox Code Playgroud)

这里是我的ip addr 连接:

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: enp0s31f6: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000
    link/ether c8:5b:76:xx:xx:xx brd ff:ff:ff:ff:ff:ff
3: wlp4s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether f4:8c:50:yy:yy:yy brd ff:ff:ff:ff:ff:ff
    inet 192.168.9.100/24 brd 192.168.9.255 scope global dynamic wlp4s0
       valid_lft 86391sec preferred_lft 86391sec
    inet6 fe80::f68c:50ff:feyy:yyyy/64 scope link 
       valid_lft forever preferred_lft forever
Run Code Online (Sandbox Code Playgroud)

请注意,无线网卡会更改其所有 MAC 地址,而不仅仅是最后 3 个字节...

我安装了macchanger,但是当提示我拒绝为每个连接更改 MAC 地址时,所以我确定不是他!此外,我在连接时获得的 MAC 地址始终相同,前 3 个字节表明它是英特尔的 NIC,这是正确的。

那可能吗?如何?

我错过了什么吗?

use*_*686 5

出于隐私原因,各种操作系统已经开始分配随机 MAC 地址以避免客户端在网络之间进行跟踪。根据操作系统,您可能会在连接时获得随机 MAC (对于给定网络通常是稳定的),或在扫描网络获得随机 MAC (以掩饰探测请求),或两者兼而有之。

我猜你用的是 NetworkManager。可以通过/etc/NetworkManager/NetworkManager.conf以下方式禁用扫描时的地址随机化:

[device]
wifi.scan-rand-mac-address=no
Run Code Online (Sandbox Code Playgroud)

可以使用以下方法禁用连接的地址随机化:

[connection]
ethernet.cloned-mac-address=permanent
wifi.cloned-mac-address=permanent
Run Code Online (Sandbox Code Playgroud)

调整现有连接:

$ nmcli connection modify "My Wi-Fi" wifi.cloned-mac-address permanent
Run Code Online (Sandbox Code Playgroud)

开发人员的博客文章 中对此进行了进一步描述。