Wie ändere ich eine wlan0 Mac-Adresse?


11

Ich habe das Miniatur-WLAN-Modul von ADAFruit ( http://www.adafruit.com/products/814 ) gekauft und mich gefragt, ob es möglich ist, die damit verbundene MAC-Adresse zu ändern. Ich habe versucht, den folgenden Code zu verwenden:

sudo ifdown wlan0

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

sudo ifup wlan0

oder

sudo ifdown wlan0

sudo macchanger -r wlan0

sudo ifup wlan0

oder durch Hinzufügen einer Zeile in /etc/network/interfaces

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

Bei Verwendung wird lsusbdas Gerät als "Realtek Semiconductor Corp. RTL8188CUS 802.11n WLAN-Adapter" angezeigt. In /etc/hostapd/hostapd.conf, driver=rtl1871xdrv. Ich verwende ISC DHCP Server.

Das Gerät funktioniert anders. Ich möchte nur die MAC-Adresse ändern können


Diese Frage hat absolut nichts mit Raspberry Pi zu tun. Bitte wählen Sie einen anderen Abschnitt von StackExchange für diese Art von Anfrage.
Lenik

2
Oh, tut mir leid. Ich habe Raspbian benutzt, also sah es nach einem guten Ort aus, um es auszudrücken. Ich werde einen anderen Ort finden.
Joseph

Bei einigen Treibern muss das Gerät dafür bereit sein. Versuchen Siesudo ifconfig wlan0 up ; sudo macchanger -r wlan0
M Noit

Leider funktioniert das auch nicht. Es hat den Fehler "Permanenter MAC kann nicht gelesen werden: Vorgang wird nicht unterstützt. Obwohl für den NEUEN MAC eine Ausgabe vorhanden ist, zeigt ifconfig die alte MAC-Adresse an.
Joseph

Antworten:


4

Für "Raspbian GNU / Linux 8 (jessie)" (cat / etc / os-release) "Raspberry Pi reference 2017-06-21" (cat / etc / rpi-issue) (möglicherweise auch 2017-07-05) ( danke @Heinrich Ulbricht) und früher siehe meine Antwort hier .

Für "Raspbian GNU / Linux 9 (Stretch)" (cat / etc / os-release), "Raspberry Pi reference 2017-08-16" (cat / etc / rpi-issue) (möglicherweise auch 2017-07-05) und später änderten sich die Dinge. Zum Beispiel eth0wird jetzt der vorhersagbare Name der Netzwerkschnittstelle von systemd aufgelistet enxb827ebxxxxxx. Also hat meine vorherige Methode via if-pre-up.daufgehört zu arbeiten.

Stattdessen können Sie systemddie Datei /etc/systemd/network/00-mac.linkwie hier beschrieben verwenden und erstellen :

[Match]
OriginalName=wlan0

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

2
Bestätigte Arbeit mit Raspian Stretch Lite. Ein großes Lob, Frank.
Josh Habdas

1
Bestätigung auch, dass es mit Raspbian GNU / Linux 9 funktioniert.
Tippfehler

1
Ich habe gerade den zweiten auf Buster gemacht und es hat funktioniert. Günstige chinesische Ethernet-Adapter hatten dieselbe MAC-Adresse. ~ 1,20 $ für 3x USB und Ethernet, kann sich aber nicht allzu sehr beschweren.
YetAnotherRandomUser

2

Ich hatte das gleiche Problem - die meisten Standardmethoden schienen bei der Himbeere nicht zu funktionieren.

Meine Situation war etwas anders - ich habe einen Raspberry PI B, bei dem der Ethernet-Chip gestorben ist, und deshalb habe ich einen USB-Ethernet-Adpater verwendet. Der Adapter ist möglicherweise nicht von höchster Qualität, da er keine eindeutige MAC-Adresse hatte. Der Adapter ist zugeordneteth1

Ich habe die Antwort von enzorik hier gefunden ... http://www.raspberrypi.org/forums/viewtopic.php?f=6&t=5486 , hat für mich gearbeitet. Im Wesentlichen...

Erstellen Sie ein neues Skript: sudo nano /etc/init.d/mac.sh

In dieses Skript einfügen (MAC-Adresse nach Bedarf festlegen) ...

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

Machen Sie es ausführbar: sudo chmod +x /etc/init.d/mac.sh

Dann renne: sudo update-rc.d /etc/init.d/mac.sh defaults


Ich würde vorschlagen, mac.sh lieber in /etc/network/if-pre-up.d/ zu speichern. Dadurch wird die Verwendung von vermieden update-rc.d. Siehe meine Antwort unten.
Frank Breitling

Ich bin auf dasselbe Problem gestoßen. Ich werde es versuchen. Der Forum-Link, auf den Sie verweisen, ist jedoch nicht mehr gut.
YetAnotherRandomUser

2

Für "Raspbian GNU / Linux 9 (Stretch)" (cat / etc / os-release), "Raspberry Pi reference 2017-08-16" (cat / etc / rpi-issue) (möglicherweise auch 2017-07-05) und später meine Antwort hier .

Für "Raspbian GNU / Linux 8 (jessie)" (cat / etc / os-release), "Raspberry Pi reference 2017-06-21" (cat / etc / rpi-issue) (danke @Heinrich Ulbricht) (vielleicht auch 2017) -07-05) und früher

Sie können das folgende Skript hinzufügen /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

und machen es ausführbar mit

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

Dies sollte mit systemd funktionieren und robuster sein als die ältere update-rc.dMethode.


1
Erfolgreich getestet mit "Raspbian GNU / Linux 8 (jessie)" ( cat /etc/os-release), "Raspberry Pi reference 2017-06-21" ( cat /etc/rpi-issue). (Ich dokumentiere dies, um den Release-Frame einzugrenzen, für den es funktioniert, da Ihre zweite Antwort darauf hindeutet, dass es irgendwann nicht mehr funktioniert.)
Heinrich Ulbricht

1
Beachten Sie, dass diese Methode bei Raspian Stretch nicht funktioniert. Zum Glück fügte Frank eine zweite Antwort hinzu und beide sind technisch immer noch korrekt.
Josh Habdas

Ich habe gerade die verknüpfte Antwort auf Buster gemacht und es hat funktioniert. Günstige chinesische Ethernet-Adapter hatten dieselbe MAC-Adresse. ~ 1,20 $ für 3x USB und Ethernet, kann sich aber nicht allzu sehr beschweren.
YetAnotherRandomUser

1

Es ist möglich , Ihre Mac-Adresse zu ändern, dies ist jedoch eine Funktion der Hardware und der Treiber.

Ich war erfolgreich mit zwei WLAN-Adaptern TL-WN722N und dem Alfa AWUS036H

Sie sollten sich jedoch bewusst sein, dass der Alfa AWUS036H über einen USB-Hub mit Strom versorgt werden muss. Wenn Sie versuchen, es direkt vom Pi aus auszuführen, erhalten Sie Kernel-Panik.

service ifplugd stop

service wicd stop

ifconfig wlan0 down

macchanger -r wlan0 

ifconfig wlan0 up

Viel Glück


1

Für den 8192cu-Treiber können Sie dies tun, indem Sie die Datei erstellen /etc/modprobe.d/8192cu.conf (der Dateiname spielt keine Rolle, sollte aber eine .confErweiterung haben) und eine Zeile hinzufügen, die wie folgt aussieht:

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

Dabei ist "XX: XX: XX: XX: XX: XX" die statische MAC-Adresse


1
Ich habe genau das gleiche Modell RTL8188CUS und dies ist die einzige Lösung, die funktioniert hat. Vielen Dank!
Rucent88
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.