在 /etc/network/interfaces 中永久更改 Mac 地址

Web*_*eng 12 linux mac-address interface network-interface

题:

我如何才能通过/etc/network/interfaces文件专门更改enp3s0wlp2s0接口的 Mac 地址?我必须在里面包含什么代码?我已经尝试了一段时间,但遗憾的是没有成功。


详细说明:

所以我在网上找到了这篇很棒的文章,解释了如何通过我的 Ubuntu 上的/etc/network/interfaces文件永久更改 Mac 地址。

在文章中,它说:

在 Debian、Ubuntu 和类似系统上,将以下内容放在 /etc/network/interfaces 的适当部分(在 iface 节中,例如,就在网关行之后),以便在启动网络设备时设置 MAC 地址:

hwaddress 以太 02:01:02:03:04:08

来源:https : //en.wikibooks.org/wiki/Changing_Your_MAC_Address/Linux

现在,当我使用以下代码时:

cat /etc/network/interfaces
Run Code Online (Sandbox Code Playgroud)

我得到以下输出

# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback
Run Code Online (Sandbox Code Playgroud)

当我在 ubuntu 上执行 ifconfig 时,我会返回 3 个不同的界面:

  • enp3s0

  • wlp2s0

我想更改我所有接口(enp3s0、wlp2s0)的 mac 地址(lo 是环回,所以不需要那里),但我不熟悉/etc/network/interfaces文件中的命令。我一直在网上看教程,虽然我似乎无法把东西弄好,而且我的电脑甚至在几次之后开始表现得很奇怪。

小智 16

使用hwaddress ether内部接口配置块。例子:

auto enp3s0
iface enp3s0 inet static
    address 192.0.2.7
    netmask 255.255.255.0
    gateway 192.0.2.254
    hwaddress ether 00:11:22:33:44:55
Run Code Online (Sandbox Code Playgroud)

或者,如果 dhcp:

allow-hotplug enp3s0
iface enp3s0 inet dhcp
    hwaddress ether 00:11:22:33:44:55
Run Code Online (Sandbox Code Playgroud)

我错过的一个细节:hwaddress如果您要设置静态 IP 地址,则配置项需要在网关节之后。

相关内容: /etc/network/interfaces 语法的详细解释?

但是,如果您在更改 mac 时遇到问题,network/interfaces您可以通过udev

udev 方法 -创建etc/udev/rules.d/75-mac-spoof.rules包含以下内容的文件:

ACTION=="add", SUBSYSTEM=="net", ATTR{address}=="XX:XX:XX:XX:XX:XX", RUN+="/usr/bin/ip link set dev %k address YY:YY:YY:YY:YY:YY"
Run Code Online (Sandbox Code Playgroud)

您也可以使用 systemd 单位进行操作,如下所述:Changing mac using systemd units。但归根结底,它们也只是执行ip link set和 的包装器macchanger


GAD*_*D3R 3

要永久更改您的 MAC 地址,请将以下行附加到您的/etc/network/interfaces

pre-up ifconfig <interface> hw ether xx:xx:xx:yy:yy:yy
Run Code Online (Sandbox Code Playgroud)

NetworkManager 将在 Wi-Fi 扫描期间重置您的 MAC 地址。要禁用此功能,您可以/etc/NetworkManager/NetworkManager.conf按如下方式编辑:

[main]
plugins=ifupdown,keyfile

[ifupdown]
managed=false

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

[keyfile]
Run Code Online (Sandbox Code Playgroud)

然后重新启动。

ArchWiki上有一些有关 Wi-Fi 扫描期间 MAC 地址随机化的有用信息:

配置 MAC 地址随机化

从版本 1.4.0 开始,NetworkManager 支持两种类型的 MAC 地址随机化:扫描过程中的随机化和稳定随机化。两种模式都可以通过修改来配置/etc/NetworkManager/NetworkManager.conf

从版本 1.2.0 开始,Wi-Fi 扫描过程中的随机化默认启用,可以通过添加以下行来禁用它/etc/NetworkManager/NetworkManager.conf

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