如何在 Linux 上永久更改您的 MAC 地址
已发表: 2023-04-02每个网络接口都有一个唯一的 MAC 地址,由制造商设置。 这就是网络连接识别连接端点的方式。 在 Linux 上,您可以根据需要永久更改 MAC 地址。
什么是 MAC 地址?
查找您的 MAC 地址
使用 macchanger 更改您的 Linux MAC 地址
安装 macchanger
使用 macchanger 临时更改 MAC 地址
如何永久更改 MAC 地址
使用 GNOME 永久更改 MAC 地址
当心!
什么是 MAC 地址?
MAC 地址是网络用来标识设备作为连接端点的唯一代码。 它回答了网络接口中“谁是谁”的关键问题。
每一台网络设备都至少内置了一个网络接口。 台式计算机或服务器中可能安装有多个网卡。 许多笔记本电脑都配备了一个 CAT5 网络插座和一个 Wi-Fi 卡,开箱即用,为您提供两个网络接口。
每个网络接口都有一个唯一的内置标识符。 无论用于与该设备通信的网络协议如何,在最低级别,连接由其媒体访问控制或 MAC 地址标识。 这就是为什么它们必须是独一无二的。 让您的网络接口使用不同的 MAC 地址称为欺骗。
MAC 地址由六个十六进制数组成。 它们在六个数字中的每一个之间用冒号“:”或连字符“-”书写。 这是我们其中一台测试计算机的 MAC 地址。
b0:c0:90:58:b0:72
大多数情况下,前三个数字是组织上唯一的标识符,代表硬件制造商。 您可以使用 Wireshark 制造商查找页面解码 OUI。 请注意,这可能是您计算机主板、网卡或 Wi-Fi 卡的制造商。 制造商购买他们计算机的许多组件并将它们组装成成品,因此如果它与您的计算机制造商不同,请不要感到惊讶。
因为 MAC 地址是内置的,所以您无法真正更改它们。 你可以做的是配置你的 Linux 系统,让它假装有一个不同的 MAC 地址。 对于网络上的任何其他设备而言,您计算机的 MAC 地址就是它广播的地址,因此最终结果是相同的。
查找您的 MAC 地址
要找出您当前的 MAC 地址,您可以使用带有link
对象的ip
命令。 这将列出您的网络接口,无论它们是在使用中还是断开网络连接。
ip链接
这台计算机是一台笔记本电脑,具有活动的 Wi-Fi 连接wlan0
和有线以太网连接enp3s0
。 有线连接未插入,因此处于非活动状态。 笔记本电脑还配置了默认环回连接lo
。
相关:如何在 Linux 上使用 ip 命令
使用 macchanger 更改您的 Linux MAC 地址
macchanger
实用程序允许您使用灵活的选项更改网络接口的 MAC 地址。 您可以设置特定的 MAC 地址或使用随机 MAC 地址。 您还可以获得一个新的 MAC 地址,该地址使用与您的硬件相同的三个 OUI 字节,以便网络接口制造商保持不变。
安装 macchanger
要在 Ubuntu 上安装macchanger
,请使用以下命令:
sudo apt 安装 macchanger
要在 Fedora 上安装macchanger
,您需要输入:
sudo dnf 安装 macchanger
在 Manjaro 上,命令是:
sudo pacman -S macchanger
根据您的发行版存储库中的macchanger
版本,您可能会看到一个屏幕,询问您是否要在每次网络连接联机时创建一个新的 MAC 地址。 也就是说,当您连接以太网电缆或启用 Wi-Fi 时。
使用箭头键将突出显示移动到您要使用的选项,然后按“Enter”。
这种方法有一些方便,但我们将选择“否”。 我们希望对我们使用的 MAC 地址有一些控制。 此外,您可能不想更改计算机具有的每个网络接口上的 MAC 地址。 例如,您可能只想在 Wi-Fi 卡上更改它。
使用 macchanger 临时更改 MAC 地址
您无法重置正在使用的网络接口上的 MAC 地址。 我们可以更改以太网连接的 MAC 地址,因为它未连接,因此处于非活动状态。
-r
(随机)选项生成一个完全随机的 MAC 地址。 我们需要传递要设置 MAC 地址的网络接口的名称。
sudo macchanger -r enp3s0
正在使用的 MAC 地址与底层硬件 MAC 地址或永久 MAC 地址相同。 新的 MAC 地址显示在底部。
我们也可以更改 Wi-Fi 卡的 MAC 地址,如果我们关闭 Wi-Fi 适配器,更改 MAC 地址,然后启用 Wi-Fi 适配器。
sudo networkctl down wlan0
sudo macchanger -r wlan0
sudo networkctl up wlan0
如果您不想要随机 MAC 地址,可以使用-m
(MAC 地址选项)并以冒号“:”格式指定 MAC 地址,以小写十六进制表示。
sudo macchanger -m ae:f9:9b:31:40:c0 enp3s0
相关:如何在 Ubuntu 中设置静态 IP 地址
如何永久更改 MAC 地址
这一切都很好也很简单,但它无法在重启后继续存在。
然而,我们可以通过使用systemd
单元文件来实现这一点。 我们将让macchanger
在每次启动时为我们的笔记本电脑的以太网和 Wi-Fi 接口提供新的 MAC 地址。
我们将使用-e
(结尾)选项,以便更改 MAC 地址但三个 OUI 字节保持不变。
这意味着我们的欺骗性 MAC 地址似乎属于制造我们实际以太网和 Wi-Fi 硬件的同一家公司制造的硬件。 这将避免任何路由器、防火墙或交换机出现问题,这些路由器、防火墙或交换机会拒绝来自非公认制造商的硬件的数据包。
我们将创建两个服务。 一个用于以太网连接,一个用于 Wi-Fi 连接。 单个单元文件将充当每个服务的模板。
要创建我们的单元文件,我们需要使用sudo
并使用我们希望我们的服务具有的基本名称编辑一个文件。 正如我们将看到的,当服务启动时,文件名中的 at 符号“@”将替换为网络连接的名称。
我们称我们的单元文件为“[email protected]”,因为它会欺骗 MAC 地址。
sudo gedit /etc/systemd/system/[email protected]
将此文本复制到单元文件中,保存文件,然后关闭编辑器。
[单元] 描述=%I 上的欺骗 MAC 地址 想要=网络-pre.target 之前=网络-pre.target BindsTo=sys-subsystem-net-devices-%i.device After=sys-subsystem-net-devices-%i.device [服务] ExecStart=/usr/bin/macchanger -e %I 类型=oneshot [安装] WantedBy=多用户.target
我们需要为每个连接创建一个服务。 我们通过在单元名称中的 at 符号“@”后面添加网络接口的名称来实现这一点。 我们将首先进行以太网连接:
sudo systemctl 启用 [email protected]
我们将为 Wi-Fi 连接做同样的事情。
sudo systemctl 启用 [email protected]
重启我们的笔记本电脑后,我们可以使用macchanger
查看我们当前的 MAC 地址是什么。 请注意,我们不需要使用sudo
,因为我们只是使用macchanger
来报告 MAC 地址设置,而不是更改它们。
macchanger enp3s0
macchanger wlan0
这向我们展示了我们两个网络接口上当前活动的、欺骗性的 MAC 地址,以及它们的原始 MAC 地址。
因为我们在单元文件中使用了-e
(结尾)选项,所以伪造地址的前三个字节与原始 MAC 地址的前三个字节相同。
使用 GNOME 永久更改 MAC 地址
大多数桌面环境允许您设置新的 MAC 地址。 在 GNOME 中,您可以通过打开“设置”并从边栏中选择“Wi-Fi”或“网络”来执行此操作。
单击要为其设置 MAC 地址的连接旁边的齿轮图标,然后选择“身份”选项卡。
您可以在“MAC 地址”字段中输入新的 MAC 地址,或从下拉菜单中选择真实的 MAC 地址。
“克隆地址”下拉菜单可让您选择:
- 保留:在启动时保留 MAC 地址。 不要更改设置的 MAC 地址。
- 永久:使用真正的硬件 MAC 地址。
- 随机:生成一个随机 MAC 地址。
- 稳定:生成稳定的散列 MAC 地址。 每次连接激活时,都会使用相同的假 MAC 地址。 这在您想隐藏硬件 MAC 地址但又需要从 DHCP 路由器获取相同 IP 地址的情况下很有用。
您的更改将在您重新启动或关闭并重新打开连接时生效。
当心!
更改您的 MAC 地址并不违法,只要您这样做不是为了冒充他人的网络设备。 您所在的司法管辖区可能已经制定了处理非法接收网络流量的法律。 例如,英国有《计算机滥用法》,美国有《计算机欺诈和滥用法》。
一定要匿名,但不要冒充别人。
相关:如何在 Linux 上使用 bmon 监控网络带宽