当您连接到公共 WiFi 热点时,您可能不想暴露真实的 MAC 地址。 在这种情况下,您可以简单地更改它或 假装 使用另一个 MAC 地址。 有时,网络管理员可能会阻止路由器或防火墙中的特定 MAC 地址。 在这种情况下,您可以使用此方法更改 MAC id。 更改 MAC 地址也称为 欺骗MAC地址 或者 伪造MAC地址. 在这个简短的教程中,我们将看到如何在 Linux 中更改 MAC 地址。
我在 CentOS 7 和 Ubuntu 18.04 LTS 服务器版本上测试了本指南。 它运作良好,如下所述。 让我们开始吧。
内容
在 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 已被欺骗。
要将 MAC 地址更改为特定值,请使用以下命令指定任何自定义 MAC 地址:
$ macchanger --mac=XX:XX:XX:XX:XX:XX
在哪里 XX:XX:XX:XX:XX:XX 是您希望更改为的新 MAC id。
最后,要将 MAC 地址恢复为其原始的永久硬件值,请运行以下命令:
$ macchanger -p enp0s3
但是,您不必这样做。 重新启动系统后,更改将自动丢失,实际 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