如何在 Linux 上更改 MAC 地址
与其他复杂的网络相关任务不同,在 Linux 上更改设备的 MAC 地址相当容易。
修改系统的 MAC 地址允许您模拟同一网络上的其他设备。这样,您就可以接收原本发送给其他设备的数据包。此过程称为 MAC 欺骗。
在 Linux 上,您可以找到无数工具来更改设备的 MAC 地址。但考虑到用户可用的选择数量,找到一个可靠、稳定、能很好地完成工作的实用程序确实很复杂。
最后,您将简要了解 MAC 地址以及如何在 Linux 上欺骗您的 MAC 地址。
什么是 MAC 地址?
MAC 地址或媒体访问控制地址是用于识别网络上设备的唯一十六进制标识符。它也称为机器的“物理地址”,因为它嵌入设备的网络接口卡 (NIC) 中。
MAC 地址如下所示:
55:de:bc:7d:45:df
每个设备在制造过程中都会被分配一个唯一的 MAC 地址。正是由于 MAC 地址,您才能够唯一地识别数百万台连接到互联网的设备。
在 OSI 网络模型中,MAC 地址负责将数据发送到数据链路层中的正确设备。
在 Linux 上更改您的 MAC 地址
您想要更改设备 MAC 地址的原因有很多。也许您想绕过网络上的安全限制,或者您想模仿网络上的另一个设备来捕获数据包。
无论是什么原因,Linux 工具都能满足您的需求。下面介绍了如何在 Linux 上欺骗您的 MAC 地址。
使用Macchanger
Macchanger 是一个基于终端的 Linux 实用程序,允许用户更改其设备的默认 MAC 地址。
要在 Debian/Ubuntu 上安装它:
sudo apt install macchanger
在 Fedora、CentOS 或其他基于 RHEL 的发行版上:
sudo dnf install macchanger
sudo yum install macchanger
要在 Arch Linux 上安装 macchanger:
sudo pacman -S macchanger
每次重新启动网络设备(包括以太网和 Wi-Fi)时,您都会看到一条提示,询问您是否要更改系统的 MAC 地址。选择否并按Enter继续。
在开始实践之前,首先,您需要检查设备上的网络接口名称。为此,请输入:
ip addr
输出 :
在输出中,以太网的网络接口名称是 eth0。同样,对于 Wi-Fi,接口名称将为 wlan0 或 wlp3s0。
如果您的系统的标签不同,您可以轻松识别网络接口名称。以“w”开头的接口名称将与 Wi-Fi 关联,而以太网的接口名称将始终以“e”开头。
要检查计算机的当前物理地址,请键入:
macchanger -s interface
...其中 interface 是您想要获取其信息的网络接口的名称。
输出 :
要使用 macchanger 为您的计算机分配随机 MAC 地址,请使用 -r 标志:
macchanger -r interface
例如,要更改 eth0 接口的物理地址:
sudo macchanger -r eth0
Macchanger 将在输出中显示原始地址和当前(修改后的)地址。
除了分配随机地址之外,您还可以为设备设置自定义 MAC 地址。只需将 -m 标志与默认命令一起使用,如下所示:
sudo macchanger -m custom-address interface
...其中 custom-address 是您要分配的新 MAC 地址,interface 是网络接口的名称。
要将自定义 MAC 地址分配给 eth0 接口:
sudo macchanger -m 44:ee:bc:6c:76:ba eth0
使用 macchanger,您无需记住设备的原始 MAC 地址以供将来参考。您可以使用 -p 标志轻松地将更改重置回默认值:
sudo macchanger -p eth0
使用 ip 和 ifconfig 命令
虽然 macchanger 易于使用并且非常适合初学者,但想要更多地控制操作的高级 Linux 用户可能更喜欢使用 ip 命令。
但首先,请确保在修改之前记下接口的原始 MAC 地址。使用以下命令更改 MAC 地址后,将无法选择自动恢复为原始地址。您必须手动将修改后的地址更改为原始 MAC。
在使用 ip 更改设备的 MAC 地址之前,您必须关闭网络接口。
sudo ip link set dev eth0 down
然后将原来的MAC改为自定义地址,如下:
sudo ip link set dev eth0 address 44:ee:bc:6c:76:ba
使用 ip 重新启动网络接口:
sudo ip link set dev eth0 up
通过在终端中输入 ip addr 来检查上述命令是否有效。
MAC 欺骗的另一种方法是使用 ifconfig 命令。 Ifconfig 代表Interface Config,是一个用于管理网络接口的标准 Linux 实用程序。
与 ip 命令一样,在使用 ifconfig 更改计算机的物理地址之前,您必须关闭接口。
sudo ifconfig eth0 down
然后为接口分配自定义 MAC 地址。
sudo ifconfig eth0 hw ether 44:ee:bc:6c:76:ba
使用 ifconfig 重新启动网络接口,如下所示:
sudo ifconfig eth0 up
要更改无线接口(例如 wlan0)的 MAC 地址,只需将命令中出现的 eth0 替换为无线接口名称即可。
sudo ifconfig wlan0 hw ether 44:ee:bc:6c:76:ba
MAC 欺骗合法吗?
与网络安全领域的其他技术一样,MAC 欺骗的合法与非法之间只有一线之隔。这在很大程度上取决于您要更改 MAC 地址的用例。
出于教育目的和学习?绝对合法(但前提是您在自己的网络上尝试)。用于捕获数据包并绕过其他网络上的安全协议?不建议。
与 Linux 一样,Windows 和 Mac 用户也可以查看和修改其设备的 MAC 地址。主要区别在于用于执行任务的界面。 Linux 用户通常更喜欢命令行方法。相反,大多数 Windows 和 Mac 用户会对易于使用的图形界面感到宾至如归。