无法更改我的mac地址 – 无法分配请求的地址

我想知道,为什么我不能通过这样做来改变我的mac地址:

sudo ifconfig wlan0 down sudo ifconfig wlan0 hw ether 03:a0:04:d3:00:11 

错误是SIOCSIFHWADDR: Cannot assign requested address我用Google搜索的SIOCSIFHWADDR: Cannot assign requested address但没有找到任何有价值的信息。

PS像往常一样,我不能这样做。 什么都行不通。 我把新的mac地址从我当前的地址加1(老11:11:11:11:11:cf ,新11:11:11:11:11:d0

 sudo ifconfig wlan0 down sudo ifconfig wlan0 hw ether 11:11:11:11:11:d0 

没有错误,它甚至在我这样做之后自动连接到wifi(即使我没有做sudo ifconfig wlan0 up) 。 我虽然赢了。 但是,当我这样做的时候

 sudo ip addr 

我见过与之前相同的mac地址。 什么都没改变。

03:a0:04:d3:00:11不是单播地址,因为第一个八位字节需要均匀。 请查看下面的图像以更好地理解它。 此图片来自维基百科 – MAC地址页面

所以改为02:a0:04:d3:00:11

在此处输入图像描述

尝试这一点c实际上发生了什么事情有一个特定的mac地址模式,只注册一个,所以用随机的mac地址你不能改变地址。

 ifconfig | grep HWaddr ifconfig eth0 down ifconfig eth0 hw ether 00:1E:68:35:FF:91 ifconfig eth0 up ifconfig eth0 hw ether 00:1d:92:43:f1:29 

祝你好运

我认为,因为您正在尝试更改无线接口的HWaddr,您正在尝试进行无线测试并需要欺骗您的HWaddr。 那么有几种方法可以做到这一点,但我会给你我的方法,因为我没有看到它包括在这里。 以下bash shell代码是我创建的一个非常基本的随机HWaddr生成器。 它并不完美,并且确实存在一些错误(例如某些生成的MAC不允许进入设备)。

这是bash的随机HWaddr函数:

 #!/bin/bash RAND_MAC() { gen() { NUM="$(tr -dc '0-9a-f'  

现在我将解释这个函数发生了什么:

RAND_MAC()将成为函数声明。 这几乎让bash shell解释器知道“嘿,这里有一个函数。” 并寻找开放和紧密的大括号{} 。 在声明了RAND_MAC()函数之后,有一个{后跟一个名为gen()的嵌套新函数声明。 嵌套几乎只意味着函数内部的函数。 gen()函数将随机生成随机HWaddr的八位字节。 gen()是一个自包含的函数,只在它执行的for循环期间激活。 调用gen() ,会为名为NUM的变量分配命令输出的值。 NUM被分配的命令是$(tr -dc '0-9a-f' 。 这将in random order by pulling from / dev / urandom` in random order by pulling from使用数字0-9 and lower case letters af输出2个字符的字符串。

所以现在几乎解释了函数gen() ,主函数RAND_MAC()的其余部分将控制节目。 for循环将迭代6次。 在第6次迭代之后, for循环移动到done并完成。 结果是一个新生成的HWaddr,您现在可以使用wlan0接口或任何接口命名。 我们使用bash函数的原因是为了保持此脚本的数据不在全局范围内。 我们希望将这些脚本保持在本地,以消除我在此处不会遇到的错误。 将函数保存到文件后,例如/usr/bin/macgen ,赋予它执行权限。

 user@group:~# chmod +x /usr/bin/macgen 

现在,您可以随时从终端命令行使用新的HWaddr生成脚本。 您可以使用命令macgen调用该工具。

现在来了如何使用尚未给出的方法分配这个新的HWaddr。

许多人建议使用ifconfig甚至iwconfig来更改无线接口的HWaddr。 好吧, ifconfig甚至iwconfig都是折旧的工具,几乎被ipiw的工具所取代。 我将在这个答案中使用的工具是iw 。 以下命令将是您创建虚拟接口所需要遵循的,欺骗它的HWaddr,并防止必须更改您的真实物理硬件的HWaddr。 对我来说,这种方法更加理智和安全,因为我们可以简单地将我们真正的物理接口与ifconfig使用,并使用完全虚拟和虚假的接口来完成我们想要的所有操作:

首先,我们将生成要使用的新HWaddr。

 user@group:~# macgen 

然后我们将使用ifconfig来关闭真实设备。

 user@group:~# ifconfig wlan0 down 

现在我们可以用iw创建VNIC。

 user@group:~# iw dev wlan0 interface add mon0 type monitor addr (new mac here) 

最后,我们将界面打开。

 user@group:~# ifconfig mon0 up 

现在,您应该在监控模式下使用欺骗性无线接口以及该接口的欺骗性mac地址。 如果您需要将其模式从监视器更改为托管,以便您可以使用它来连接到访问点,请执行以下操作:

降低VNIC:

 user@group:~# ifconfig mon0 down 

改变模式:

 user@group:~# iwconfig mon0 mode managed 

[快速注释]在更改模式之前,请确保所有其他管理模式接口都已关闭,否则您将使用iwconfig切换错误标志。

界面备份:

 user@group:~# ifconfig mon0 up 

检查以确保配置正确:

 user@group:~# iw dev 

输出应该类似于:

 phy#0 Interface wlo1 ifindex 3 wdev 0x1 addr 00:11:22:33:44:55 type managed channel 161 (5805 MHz), width: 40 MHz, center1: 5795 MHz txpower 50.00 dBm 

当你准备摆脱VNIC时,只需删除它:

 user@group:~# iw mon0 del 

然后重新启动您的真实界面:

 user@group:~# ifconfig wlan0 up 

希望这些信息有所帮助 请随意询问您是否对此感到困惑。

如您所知,只有macchanger是一种在Linux中更改mac地址的工具。 用于更改wlan0接口类型ifconfig wlan0 down macchanger -r wlan0 ifconfig wlan0 up -r for random change(automatic)你可以从这里获取deatail列表

    Interesting Posts