永久更改 /etc/network/interfaces 内的 Mac 地址

Web*_*eng 5 command-line interface

问题:

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


阐述:

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

文章中说:

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

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

资料来源:更改你的 MAC 地址/Linux -WikiBooks

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

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 个不同的接口:

  • 恩普3s0

  • wlp2s0

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

Tho*_*ard 5

首先,您链接到的指南。这是一个很好的指南。遗憾的是,它也给不同类型的连接带来了一些麻烦。通常情况下,/etc/network/interfaces除了环回接口之外,其他接口都保持独立,以便网络管理器管理您的连接。


造成这种情况的原因有几个,主要是如果/etc/network/interfaces您切换 wifi 网络,配置无线网络会很痛苦,因为您必须编辑配置并手动重新加载(有时直到重新启动后才会加载)。这也是非常痛苦的,因为您必须将连接数据硬编码到wpa2-supplicant- 无线网络名称、密码(纯文本),有时甚至是 wifi 频段和频道号。所有这些都是痛苦的,因为您必须更改它才能切换到不同的网络。

我确实提到过,使用/etc/network/interfaces将阻止网络管理器处理您的连接。网络管理器的工作方式是,它获取未定义的网络设备的“所有权” /etc/network/interfaces,并动态更新每个设备的配置或使用过去建立的旧连接中的预定义连接配置文件。如果您决定采用该/etc/network/interfaces路线,则必须调整连接互联网的方式,下面我将通过这种方式对 wifi 连接进行一些描述。还有一个更有用的链接。


以太网并没有那么糟糕。以太网实际上可以很好地工作,因为您可以简单地设置以太网以进行 DHCP 连接(动态分配的 IP 地址,而不是静态配置;注意,我在这里使用“eth0”而不是您的实际设备)更容易理解):

auto eth0
iface eth0 inet dhcp
    hwaddress ether 01:23:45:67:89:0A
Run Code Online (Sandbox Code Playgroud)

唯一令人头疼的是您是否拥有静态 IP 地址而不是 DHCP 处理的地址。但它仍然非常简单。


然而,在无线网络上,情况就没那么漂亮了。这是一堆混乱的步骤,通常涉及iwlist/etc/network/interfaces配置、高级配置wpa2_supplicant等等。完成后,对于标准住宅级共享密码网络,您最终会得到如下所示的结果,但这仅适用于您的一个无线网络:

auto wlan0
iface wlan0 inet dhcp
    hwaddress ether 00:11:22:33:44:55
    wpa-ssid WIFI_NAME
    wpa-psk HASHED_PASSWORD
Run Code Online (Sandbox Code Playgroud)

当您需要切换网络或使用带有身份验证后端的企业级连接(称为 WPA2-EAP 或 WPA2 802.1x Enterprise 或其他名称)时,情况会变得更加复杂,我不会在这里详细介绍。

您还会注意到,我没有复制如何获取散列密码的步骤。这是我的错,我上班时间很紧,但这一切都在下一段链接的 wiki 中(来自 Debian,但它有效)。

Debian Wiki on Wifi 以及如何在命令行上使用它是无线部分的大部分信息的来源,并且我个人必须在两个 Raspberry Pi 设备上手动设置它,因为它们是无头的,我可以证明这是设置无线网络最痛苦的方法。


这里还有第二个要素:网络设备 MAC 地址被硬编码到设备中。您永远无法“永久”更改设备拥有的 MAC 地址。MAC Changer/etc/network/interfaces和 Network Manager(通过“克隆 MAC 地址”功能)的作用是暂时更改通告的以太网地址,但不会更改核心硬件地址。您可以使其与网络管理器一起使用,但您必须为您使用的每个 WiFi 网络手动配置它。MAC Changer,类似的情况,它需要在启动时运行。 /etc/network/interfaces在启动时执行此操作,但您会失去网络管理器对设备的管理。


Jos*_*Jos 3

假设您不使用 NetworkManager 来配置连接,我认为这会起作用:

# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
  iface lo inet loopback

iface enp3s0
  hwaddress ether 02:01:02:03:04:08

iface wlp2s0
  hwaddress ether 02:01:02:03:04:09
Run Code Online (Sandbox Code Playgroud)

  • 请注意,这将覆盖 NetworkManager 处理 wifi 和以太网连接的能力,因此它们将无法再以“正常”GUI 方式连接任何地方。 (3认同)