如何在 Linux 中更改 MAC 地址

当您连接到公共 WiFi 热点时,您可能不想暴露真实的 MAC 地址。 在这种情况下,您可以简单地更改它或 假装 使用另一个 MAC 地址。 有时,网络管理员可能会阻止路由器或防火墙中的特定 MAC 地址。 在这种情况下,您可以使用此方法更改 MAC id。 更改 MAC 地址也称为 欺骗MAC地址 或者 伪造MAC地址. 在这个简短的教程中,我们将看到如何在 Linux 中更改 MAC 地址。

我在 CentOS 7 和 Ubuntu 18.04 LTS 服务器版本上测试了本指南。 它运作良好,如下所述。 让我们开始吧。

内容

  1. 在 Linux 中查找 MAC 地址
  2. 在 Linux 中更改 MAC 地址
    1. 方法一:使用 Macchanger
      1. 换片机使用
    2. 方法二:使用iproute2

在 Linux 中查找 MAC 地址

首先,让我们找出Linux中网络接口卡的MAC地址或硬件地址。

$ ifconfig | grep HWaddr

样本输出:

enp0s3    Link encap:Ethernet  HWaddr 08:xx:xx:xx:xx:x1

或者,

$ ip link show
enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000  link/ether 08:xx:xx:xx:xx:x1 brd ff:ff:ff:ff:ff:ff

或者

$ ifconfig | grep ether

样本输出:

ether 24:xx:xx:xx:xx:x9 txqueuelen 1000 (Ethernet) ether c0:xx:xx:xx:xx:xf txqueuelen 1000 (Ethernet)

您可以使用上述任一命令来查找网络接口卡的 MAC id。 这些命令应该适用于几乎所有的 Linux 发行版。

现在让我们看看如何更改 MAC 地址。

在 Linux 中更改 MAC 地址

我们可以通过两种方法做到这一点。 请注意,您不应在当前正在使用的实时网卡上执行此操作。 如果您这样做,您的网络连接可能会被终止。 使用附加卡尝试此方法。

方法一:使用 Macchanger

换档器 是查看、修改和操作网络接口卡 MAC 地址的简单实用程序。 它适用于几乎所有 GNU/Linux 操作系统。

在 Arch Linux 上:

要在 Arch Linux 及其衍生产品中安装 Macchanger,请运行:

$ sudo pacman -S macchanger

在 Fedora,CentOS,RHEL:

$ sudo yum install macchanger

或者

$ sudo dnf install macchanger

在 Debian / Ubuntu 上:

要在 Debian、Ubuntu 及其衍生产品中使用 macchanger,请运行:

$ sudo apt-get install macchanger

指定是否应将 macchanger 设置为每次启动或关闭网络设备时自动运行。 每当您连接以太网电缆或重新启用 wifi 时,这都会提供一个新的 MAC 地址。

我建议您不要自动运行它,除非您确实需要每次都更改 MAC id。 所以,选择 并按 ENTER 键继续。

已安装 Macchanger。

换片机使用

要分配任何随机 MAC 地址,请运行:

$ macchanger -r <interface-name>

要找出网络接口名称,请运行:

$ 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: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000  link/ether 08:xx:xx:xx:xx:x1 brd ff:ff:ff:ff:ff:ff  inet 192.168.1.105/24 brd 192.168.1.255 scope global enp0s3  valid_lft forever preferred_lft forever  inet6 fe80::a00:27ff:fe12:f8c1/64 scope link   valid_lft forever preferred_lft forever

正如您在上面的屏幕截图中看到的, enp0s3 是我的网络接口卡的名称。

更改 MAC 地址 enp0s3 网卡,运行:

$ sudo macchanger -r enp0s3

更改 MAC id 后,使用以下命令进行验证:

$ ip addr

样本输出:

更改mac地址3

您现在将看到 MAC 已被欺骗。

要将 MAC 地址更改为特定值,请使用以下命令指定任何自定义 MAC 地址:

$ macchanger --mac=XX:XX:XX:XX:XX:XX  

在哪里 XX:XX:XX:XX:XX:XX 是您希望更改为的新 MAC id。

最后,要将 MAC 地址恢复为其原始的永久硬件值,请运行以下命令:

$ macchanger -p enp0s3

更改mac地址 4

但是,您不必这样做。 重新启动系统后,更改将自动丢失,实际 MAC 地址将再次恢复。

有关更多详细信息,请查看手册页:

$ man macchanger

方法二:使用iproute2

首先,使用命令关闭网卡:

$ sudo ip link set dev enp0s3 down

接下来,使用命令设置新的 MAC:

$ sudo ip link set dev enp0s3 address XX:XX:XX:XX:XX:XX

最后,使用命令将其重新打开:

$ sudo ip link set dev enp0s3 up

现在,使用命令验证新的 MAC id:

$ ip link show enp0s3

样本输出:

link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff

或者,您可以使用 ‘ifconfig’ 命令 如下所述。

$ sudo ifconfig eth0 down 
$ sudo ifconfig eth0 hw ether 00:80:48:BA:d1:30 
$ sudo ifconfig eth0 up 
$ ifconfig eth0 | grep HWaddr

而已。

建议阅读:

  • 在 Linux 中为单个网卡分配多个 IP 地址

如您所见,这两种方法都非常简单。 选择任何适合您的。 要恢复到原始 MAC 地址,只需重新启动系统即可。

希望这可以帮助。 如果您知道任何其他更改 MAC 地址的方法,请在下面的评论中分享。

CentOS 7更改Linux中的MAC地址硬件地址LinuxLinux命令Linux联网MACMAC地址Ubuntu 16.04Ubuntu 18.04