如何更改wlan0 mac地址?


11

我从ADAFruit(http://www.adafruit.com/products/814)购买了微型WiFi模块,并且想知道是否可以更改与其关联的MAC地址。我尝试使用以下代码:

sudo ifdown wlan0

sudo ifconfig wlan0 hw ether 00:11:22:33:44:55

sudo ifup wlan0

要么

sudo ifdown wlan0

sudo macchanger -r wlan0

sudo ifup wlan0

或在其中添加一行 /etc/network/interfaces

hwaddress ether 00:11:22:33:44:55

使用lsusb该设备时,显示为“ Realtek Semiconductor Corp. RTL8188CUS 802.11n WLAN Adapter”。在/etc/hostapd/hostapd.confdriver=rtl1871xdrv。我正在运行ISC DHCP服务器。

设备将正常工作。我只想能够更改MAC地址


这个问题与Raspberry Pi完全无关,请针对这种类型的查询选择StackExchange的另一部分。
lenik

2
啊,对不起。正在使用Raspbian,因此看起来像是放置它的好地方。我会找到另一个位置。
约瑟夫

一些驱动程序要求设备能够做到这一点。试试sudo ifconfig wlan0 up ; sudo macchanger -r wlan0
M Noit

不幸的是,这也不起作用。它有错误“无法读取永久MAC:不支持操作即使有新的MAC输出,使用ifconfig显示旧的MAC地址。
约瑟夫

Answers:


4

对于“ Raspbian GNU / Linux 8(jessie)”(cat / etc / os-release),“ Raspberry Pi参考2017-06-21”(cat / etc / rpi-issue)(也许也是2017-07-05)(感谢@Heinrich Ulbricht),并在此之前看到我的答案

对于“ Raspbian GNU / Linux 9(stretch)”(cat / etc / os-release),“ Raspberry Pi参考2017-08-16”(cat / etc / rpi-issue)(可能也是2017-07-05)和后来事情变了。例如eth0,现在通过systemd的可预测网络接口名称列出 enxb827ebxxxxxx。所以我以前的方法通过if-pre-up.d停止工作。

相反,你可以使用systemd和创建文件/etc/systemd/network/00-mac.link的解释在这里

[Match]
OriginalName=wlan0

[Link]
MACAddress=b8:27:eb:xx:xx:xx
NamePolicy=kernel database onboard slot path

2
确认可以使用Raspian Stretch Lite。荣誉,弗兰克。
Josh Habdas

1
同样,它也可以与Raspbian GNU / Linux 9一起使用。–
错字

1
我刚刚在Buster上做了第二个,它奏效了。廉价的中文以太网适配器带有相同的MAC地址。3x USB和以太网的价格约为1.20美元,不能抱怨太多。
YetAnotherRandomUser19年

2

我遇到了同样的问题-这样做的大多数标准方法似乎在树莓派上不起作用。

我的情况略有不同-我有一个Raspberry PI B,其中以太网芯片已经失效,因此我使用了USB-以太网适配器。该适配器可能不是最高质量,因为它没有唯一的MAC地址。适配器已分配给eth1

我在这里找到了enzorik的答案... http://www.raspberrypi.org/forums/viewtopic.php?f=6&t=5486对我有用。实质上...

创建一个新脚本: sudo nano /etc/init.d/mac.sh

粘贴到此脚本中(根据需要设置您的MAC地址)...

#! /bin/sh
ifconfig eth1 down hw ether 00:00:00:00:00:00
ifconfig eth1 up 

使它可执行: sudo chmod +x /etc/init.d/mac.sh

然后运行: sudo update-rc.d /etc/init.d/mac.sh defaults


我建议宁愿将mac.sh保存在/etc/network/if-pre-up.d/中。这样可以避免使用update-rc.d。请参阅下面的答案。
Frank Breitling

我遇到了同样的问题。我要试试看 但是您引用的论坛链接不再有效。
YetAnotherRandomUser19年

2

对于“ Raspbian GNU / Linux 9(stretch)”(cat / etc / os-release),“ Raspberry Pi参考2017-08-16”(cat / etc / rpi-issue)(可能也是2017-07-05)和稍后在这里查看我的答案

对于“ Raspbian GNU / Linux 8(jessie)”(cat / etc / os-release),“ Raspberry Pi参考2017-06-21”(cat / etc / rpi-issue)(感谢@Heinrich Ulbricht)(也许也是2017年) -07-05)及更早版本

您可以将以下脚本添加到/etc/network/if-pre-up.d/mac

#!/bin/sh

if [ "$IFACE" = wlan0 ]; then
    ip link set dev "$IFACE" address b8:27:eb:xx:xx:xx
fi

并使其可执行

chmod +x /etc/network/if-pre-up.d/mac

这应该与systemd一起使用,并且比旧update-rc.d方法更可靠。


1
已成功通过“ Raspbian GNU / Linux 8(jessie)”(cat /etc/os-release),“ Raspberry Pi参考2017-06-21”(cat /etc/rpi-issue)成功进行了测试。(我正在记录此文件以缩小其适用的发布框架,因为您的第二个答案表明它在某些时候停止工作。)
Heinrich Ulbricht

1
请注意,此方法不适用于Raspian Stretch。值得庆幸的是,弗兰克添加了第二个答案,但从技术上来说,两者仍然是正确的。
Josh Habdas

我只是在Buster上做了链接的答案,它起作用了。廉价的中文以太网适配器带有相同的MAC地址。3x USB和以太网的价格约为1.20美元,不能抱怨太多。
YetAnotherRandomUser19年

1

可以更改您的mac地址,但这是硬件和驱动程序的功能。

我成功使用两个wifi适配器TL-WN722NAlfa AWUS036H

但是,您应该注意,Alfa AWUS036H必须通过有源USB集线器供电。如果您尝试直接在pi上运行它,则会出现内核崩溃。

service ifplugd stop

service wicd stop

ifconfig wlan0 down

macchanger -r wlan0 

ifconfig wlan0 up

祝好运


1

对于8192cu驱动程序,您可以通过创建文件/etc/modprobe.d/8192cu.conf (文件名无关紧要,但应具有.conf扩展名)并添加类似于以下内容的行来实现:

options 8192cu rtw_initmac="XX:XX:XX:XX:XX:XX"

其中“ XX:XX:XX:XX:XX:XX”是静态MAC地址


1
我有完全相同的Model RTL8188CUS,这是唯一有效的解决方案。谢谢!
Rucent88
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.