Как изменить MAC-адрес wlan0?

11

Я купил Miniature WiFi Module у ADAFruit ( http://www.adafruit.com/products/814 ) и мне было интересно, можно ли изменить связанный с ним 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». В /etc/hostapd/hostapd.conf, driver=rtl1871xdrv. Я использую ISC DHCP-сервер.

Устройство работает иначе. Я просто хочу иметь возможность изменить MAC-адрес

Джозеф
источник
Этот вопрос не имеет абсолютно никакого отношения к Raspberry Pi, пожалуйста, выберите другой раздел StackExchange для этого типа запроса.
lenik
2
ах извини Использовал Raspbian, поэтому выглядел как хорошее место, чтобы положить его. Я найду другое место.
Иосиф
Некоторые драйверы требуют, чтобы устройство было готово для этого. Попробуйтеsudo ifconfig wlan0 up ; sudo macchanger -r wlan0
M Noit
К сожалению, это тоже не работает. Имеется ошибка «Не удается прочитать постоянный MAC: операция не поддерживается. Несмотря на то, что для НОВОГО MAC есть выход, ifconfig показывает старый MAC-адрес.
Джозеф

Ответы:

4

Для "Raspbian GNU / Linux 8 (jessie)" (cat / etc / os-release), "Raspberry Pi reference 2017-06-21" (cat / etc / rpi-issue) (возможно, также 2017-07-05) ( спасибо @Heinrich Ulbricht) и раньше смотрите мой ответ здесь .

Для "Raspbian GNU / Linux 9 (stretch)" (cat / etc / os-release), "Raspberry Pi reference 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. Слава, Фрэнк.
Джош Хабдас
1
Также подтверждается, что он работает с Raspbian GNU / Linux 9.
опечатка
1
Я только что сделал второй на Бастере, и это сработало. Дешевые китайские адаптеры Ethernet поставлялись с тем же MAC-адресом. ~ 1,20 доллара за 3x USB и Ethernet, хотя, не особо жалуюсь.
Ещё один случайный пользователь
2

У меня была та же проблема - большинство стандартных способов сделать это, похоже, не работали с малиной.

Моя ситуация была немного другой - у меня Raspberry PI B, где умер чип Ethernet, и поэтому я использовал adpater usb-ethernet. Адаптер, возможно, не самого высокого качества, поскольку у него не было уникального 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

spiderplant0
источник
Я бы предложил сохранить mac.sh в /etc/network/if-pre-up.d/. Это позволит избежать использования update-rc.d. Смотрите мой ответ ниже.
Фрэнк
Я столкнулся с этой же проблемой. Я попробую это. Но ссылка на форум, на которую вы ссылаетесь, больше не хороша.
Ещё один случайный пользователь
2

Для "Raspbian GNU / Linux 9 (stretch)" (cat / etc / os-release), "Raspberry Pi reference 2017-08-16" (cat / etc / rpi-issue) (возможно, также 2017-07-05) и позже см. мой ответ здесь .

Для "Raspbian GNU / Linux 8 (jessie)" (cat / etc / os-release), "Raspberry Pi reference 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 reference 2017-06-21" ( cat /etc/rpi-issue). (Я документирую это, чтобы сузить рамки релиза, для которых он работает, поскольку ваш второй ответ предполагает, что в какой-то момент он перестает работать.)
Генрих Ульбрихт,
1
Обратите внимание, что этот метод не будет работать на растяжке Raspian. К счастью, Фрэнк добавил второй ответ, и оба они технически верны.
Джош Хабдас
Я только что сделал связанный ответ на Бастере, и это сработало. Дешевые китайские адаптеры Ethernet поставлялись с тем же MAC-адресом. ~ 1,20 доллара за 3x USB и Ethernet, хотя, не особо жалуюсь.
Ещё один случайный пользователь
1

Вы можете изменить свой MAC-адрес, но это особенность аппаратного обеспечения и драйверов.

мне удалось использовать два адаптера Wi-Fi TL-WN722N и Alfa AWUS036H

однако вы должны знать, что Alfa AWUS036H должен получать питание через USB-концентратор. если вы попытаетесь запустить его непосредственно с пи, вы получите панику ядра.

service ifplugd stop

service wicd stop

ifconfig wlan0 down

macchanger -r wlan0 

ifconfig wlan0 up

удачи

jeremyforan
источник
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-адрес

Gypaetus
источник
1
У меня точно такая же модель RTL8188CUS, и это единственное решение, которое сработало. Спасибо!
Rucent88