Modo corretto per modificare l'indirizzo MAC in una VM Linux?


13

Ho provato a cambiare l'indirizzo MAC in una macchina virtuale Ubuntu (virtualbox), ma dopo ciò ha generato molti errori durante l'avvio e quindi non ho avuto alcuna connessione a Internet.

Poi ho visto che l'interfaccia è stata rinominata in eth1, quindi ho modificato / etc / network / interfaces per cambiare eth0 in eth1, riavviato (non sapevo come riavviare la rete) e l'avvio ora è stato più veloce e Internet ha funzionato bene.

Ma ora dopo ogni accesso, ricevo 1 o 2 messaggi di errore che non dicono nulla, mi chiedono solo se voglio segnalarli.

Quindi mi chiedevo, c'era un modo corretto per cambiare l'indirizzo MAC, per evitare questi problemi?


1
Esistono numerosi fattori coinvolti nella modifica di un indirizzo mac, in una macchina virtuale o in altro modo. Puoi spiegare perché vuoi cambiare il mac, potrebbe aiutarti a trovare la soluzione migliore ( meta.stackexchange.com/questions/66377/what-is-the-xy-problem )
Paul

@Paul Sto cercando di imparare come diversi programmi tengono traccia della tua attività, come eseguirla e come evitarla. Ad esempio: IP, cookie, impronte digitali del browser, ecc. Ora voglio vedere come alcuni programmi rispondono a una modifica dell'indirizzo MAC.
HappyDeveloper,

Risposte:


15

Molto probabilmente stai usando il metodo "corretto" per cambiare l'indirizzo MAC, se lo stai facendo nelle impostazioni di rete avanzate in VirtualBox. Tuttavia, una modifica temporanea come nell'altra risposta di Zuul può essere la migliore per i tuoi scopi, poiché cambierà il MAC senza causare troppi problemi aggiuntivi, tuttavia non sopravviverà al riavvio.

La modifica in VirtualBox sopravviverà ovviamente al riavvio, ma il problema che stai affrontando è udev. Questo è il processo che esamina l'hardware e imposta l'hardware /dev(o qualsiasi altra cosa potrebbe essere necessario fare). Una delle cose che fa di default è cercare di mantenere nomi persistenti per le schede di interfaccia di rete [nics]. Questo perché quando hai più schede di rete, vuoi che abbiano sempre lo stesso nome ethX, in modo che la tua /etc/network/interfacesconfigurazione abbia come target la nicchia giusta ad ogni avvio. Il sistema operativo non può fare affidamento sul fatto che si trovano fisicamente sempre nello stesso punto ogni volta, ad esempio è possibile spostarli o alcuni sistemi non riportano le connessioni fisiche nella stessa sequenza ad ogni avvio.

Quindi udevutilizza le regole di persistenza basate sull'indirizzo MAC della scheda di rete. Se ha una voce per eth1 con un indirizzo MAC noto e appare una scheda con un indirizzo MAC diverso, assegnerà un nome di dispositivo ethX diverso all'interfaccia.

Per contrastare questo, devi solo aggiornare le udevregole. Modificare:

vi /etc/udev/rules.d/70-persistent-net.rules

e cerca la linea con il tuo MAC attuale:

SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="11:22:33:44:55:66", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

Se cambi l'indirizzo MAC qui con quello nuovo che hai scelto nelle impostazioni di VirtualBox, manterrà lo stesso numero di dev ethX al prossimo avvio.

La sequenza migliore sarebbe probabilmente quella di modificarla prima qui, quindi arrestare la VM, quindi modificare l'impostazione MAC VB, quindi eseguire l'avvio.


La modifica manuale del file non ha funzionato per me, ma mi sono ricordato di aver letto che è possibile rimuovere questo file in qualsiasi momento e dopo il riavvio, viene generato automaticamente. E quello effettivamente funzionava :) +1 per mostrare la posizione del file.
Eduard Luca,

@Paul Perché è allora che posso clonare un sistema Linux da una macchina fisica a un'altra dello stesso tipo (ma con diversi indirizzi MAC) e non incorrere in tali problemi?
arney,

1
@arney Penso che sia perché è una NIC completamente diversa, non solo le modifiche dell'indirizzo MAC. Nel file che viene citato da Paul, si può vedere: ATTR{dev_id}=="0x0". Questo è destinato ad essere diverso.
MarioDS,

@arney Penso che tu abbia ragione Arney, se il nic non esiste, allora la regola udev non verrà applicata. È come se fosse una nuova macchina. Senza errori è difficile dirlo. Ma l'eliminazione delle regole di persistenza aiuterà se è udev.
Paul,

8

Puoi modificare l'indirizzo MAC con 4 semplici passaggi usando ifconfig :

Apri un terminale (scorciatoia da tastiera: ctrl+ alt+ t)

  1. Trova l'indirizzo mac corrente:

    ifconfig | grep HWaddr
    
  2. Chiudi l'interfaccia (supponendo che sia eth0per i passaggi successivi) :

    ifconfig eth0 down
    
  3. Imposta il nuovo indirizzo mac:

    ifconfig eth0 hw ether 00:1E:68:35:FF:91
    
  4. Flag provoca l'attivazione dell'interfaccia:

    ifconfig eth0 up
    

Ora puoi ricontrollare il tuo indirizzo mac dell'interfaccia:

ifconfig eth0 |grep HWaddr

Nota: è possibile scegliere qualsiasi indirizzo esadecimale a 48 bit come indirizzo MAC.


Ai fini della completezza, è possibile combinare i passaggi 2 e 3 in una riga:

ifconfig eth0 down hw ether 00:00:00:00:00:01

@DownVoter: se c'è un problema con la mia risposta, un commento farebbe molto per permettermi di migliorarlo! Tks.
Zuul,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.