Como alterar um endereço mac wlan0?


11

Comprei o Miniature WiFi Module da ADAFruit ( http://www.adafruit.com/products/814 ) e fiquei pensando se é possível alterar o endereço MAC associado a ele. Eu tentei usar o seguinte código:

sudo ifdown wlan0

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

sudo ifup wlan0

ou

sudo ifdown wlan0

sudo macchanger -r wlan0

sudo ifup wlan0

ou adicionando uma linha /etc/network/interfaces

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

Ao usar lsusbo dispositivo, aparece como "Adaptador WLAN Realtek Semiconductor Corp. RTL8188CUS 802.11n". No /etc/hostapd/hostapd.conf, driver=rtl1871xdrv. Estou executando o servidor DHCP do ISC.

O dispositivo funciona de outra forma. Eu só quero poder mudar o endereço MAC


Esta pergunta não tem absolutamente nada a ver com o Raspberry Pi. Escolha outra seção do StackExchange para esse tipo de consulta.
lenik

2
ah desculpa Estava usando Raspbian, então parecia um bom lugar para colocá-lo. Vou encontrar outro local.
Joseph

Alguns drivers exigem que o dispositivo esteja preparado para fazer isso. Tentesudo ifconfig wlan0 up ; sudo macchanger -r wlan0
M Noit

Infelizmente, isso também não funciona. Ele tem o erro "Não é possível ler MAC permanente: Operação não suportada Mesmo que não há saída para o novo MAC, ifconfig mostra o endereço MAC de idade..
Joseph

Respostas:


4

Para "Raspbian GNU / Linux 8 (jessie)" (cat / etc / os-release), "Referência do Raspberry Pi 2017-06-21" (cat / etc / rpi-issue) (talvez também 05/07/2017) ( obrigado @Heinrich Ulbricht) e antes, veja minha resposta aqui .

Para "Raspbian GNU / Linux 9 (stretch)" (cat / etc / os-release), "Raspberry Pi reference 2017-08-16" (cat / etc / rpi-issue) (talvez também 05/07/2017) e depois as coisas mudaram. Por exemplo, eth0agora é listado pelo nome previsível da interface de rede do systemd enxb827ebxxxxxx . Então, meu método anterior if-pre-up.dparou de funcionar.

Em vez disso, você pode usar systemde criar o arquivo /etc/systemd/network/00-mac.linkconforme explicado aqui :

[Match]
OriginalName=wlan0

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

2
Trabalho confirmado com Raspian Stretch Lite. Parabéns, Frank.
Josh Habdas

11
Confirmando também que ele funciona com o Raspbian GNU / Linux 9. #
typo

11
Acabei de fazer o segundo no Buster e funcionou. Os adaptadores Ethernet chineses baratos vieram com o mesmo endereço MAC. ~ US $ 1,20 para 3x USB e Ethernet, porém, não posso reclamar muito.
YetAnotherRandomUser

2

Eu tive o mesmo problema - a maioria das maneiras padrão de fazer isso não parecia funcionar na framboesa.

Minha situação era um pouco diferente - eu tenho um Raspberry PI B onde o chip ethernet morreu e, portanto, usei um adaptador usb-ethernet. O adaptador talvez não seja da mais alta qualidade, pois não possui um endereço MAC exclusivo. O adaptador está atribuído aeth1

Encontrei a resposta da enzorik aqui ... http://www.raspberrypi.org/forums/viewtopic.php?f=6&t=5486 , funcionou para mim. Essencialmente...

Crie um novo script: sudo nano /etc/init.d/mac.sh

Cole neste script (defina seu endereço MAC conforme necessário) ...

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

Torne executável: sudo chmod +x /etc/init.d/mac.sh

Então corra: sudo update-rc.d /etc/init.d/mac.sh defaults


Sugiro que você salve o mac.sh em /etc/network/if-pre-up.d/. Isso evitará o uso de update-rc.d. Veja minha resposta abaixo.
Frank Breitling

Eu encontrei esse mesmo problema. Eu vou tentar isso. Mas o link do fórum ao qual você se refere não é mais bom.
YetAnotherRandomUser

2

Para "Raspbian GNU / Linux 9 (stretch)" (cat / etc / os-release), "Raspberry Pi reference 2017-08-16" (cat / etc / rpi-issue) (talvez também 05/07/2017) e depois veja minha resposta aqui .

Para "Raspbian GNU / Linux 8 (jessie)" (cat / etc / os-release), "Referência do Raspberry Pi 2017-06-21" (cat / etc / rpi-issue) (obrigado @Heinrich Ulbricht) (talvez também 2017 -07-05) e anteriores

você pode adicionar o seguinte script a /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

e torná-lo executável com

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

Isso deve funcionar com o systemd e ser mais robusto que o update-rc.dmétodo mais antigo .


11
Testado com sucesso com "Raspbian GNU / Linux 8 (jessie)" ( cat /etc/os-release), "Raspberry Pi reference 2017-06-21" ( cat /etc/rpi-issue). (Eu estou documentando isso para diminuir a moldura liberação trabalha para desde a sua segunda resposta sugere ele pára de funcionar em algum momento.)
Heinrich Ulbricht

11
Observe que este método não funcionará no Raspian Stretch. Felizmente, Frank adicionou uma segunda resposta e ambos ainda estão tecnicamente corretos.
Josh Habdas

Eu apenas fiz a resposta vinculada no Buster e funcionou. Os adaptadores Ethernet chineses baratos vieram com o mesmo endereço MAC. ~ US $ 1,20 para 3x USB e Ethernet, porém, não posso reclamar muito.
YetAnotherRandomUser

1

é possível alterar o endereço mac, mas esse é um recurso do hardware e dos drivers.

obtive sucesso usando dois adaptadores wifi TL-WN722N e o Alfa AWUS036H

no entanto, você deve estar ciente de que o Alfa AWUS036H deve ser alimentado por um hub usb alimentado. se você tentar executá-lo diretamente do pi, terá pânico do kernel.

service ifplugd stop

service wicd stop

ifconfig wlan0 down

macchanger -r wlan0 

ifconfig wlan0 up

boa sorte


1

Para o driver 8192cu, você pode fazer isso criando o arquivo /etc/modprobe.d/8192cu.conf (o nome do arquivo não importa, mas deve ter .confextensão) e adicionando uma linha parecida com:

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

onde "XX: XX: XX: XX: XX: XX" é o endereço MAC estático


11
Eu tenho exatamente o mesmo modelo RTL8188CUS e esta é a única solução que funcionou. Obrigado!
Rucent88
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.