Как изменить 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


Я бы предложил сохранить 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

удачи


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
У меня точно такая же модель RTL8188CUS, и это единственное решение, которое сработало. Спасибо!
Rucent88
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.