Une bonne façon de changer l'adresse MAC dans une machine virtuelle Linux?

13

J'ai essayé de changer l'adresse MAC dans une machine virtuelle ubuntu (virtualbox), mais après cela, il y a eu beaucoup d'erreurs lors du démarrage, puis je n'ai pas eu de connexion Internet.

Ensuite, j'ai vu que l'interface a été renommée en eth1, j'ai donc modifié / etc / network / interfaces pour changer eth0 en eth1, redémarré (je ne savais pas comment redémarrer le réseau), et le démarrage était maintenant plus rapide et Internet fonctionnait bien.

Mais maintenant, après chaque connexion, je reçois 1 ou 2 messages d'erreur qui ne disent rien, ils me demandent seulement si je veux les signaler.

Je me demandais donc s'il y avait un moyen approprié de changer l'adresse MAC pour éviter ces problèmes?

HappyDeveloper
la source
1
Il existe un certain nombre de facteurs impliqués dans le changement d'une adresse mac, dans une machine virtuelle ou autre. Pouvez-vous expliquer pourquoi vous souhaitez changer de mac, cela pourrait aider à trouver la meilleure solution ( meta.stackexchange.com/questions/66377/what-is-the-xy-problem )
Paul
@Paul J'essaie d'apprendre comment différents programmes suivent votre activité, comment le faire et comment l'éviter. Par exemple: IP, cookies, empreintes digitales du navigateur, etc. Maintenant, je veux voir comment certains programmes répondent à un changement d'adresse MAC.
HappyDeveloper

Réponses:

15

Vous utilisez très probablement la méthode "correcte" pour modifier l'adresse MAC, si vous le faites dans les paramètres réseau avancés de VirtualBox. Cependant, un changement temporaire comme dans l'autre réponse de Zuul peut être le mieux adapté à vos besoins, car il changera le MAC sans causer trop de problèmes supplémentaires - mais il ne survivra pas à un redémarrage.

Le changer dans VirtualBox survivra bien sûr à un redémarrage, mais le problème auquel vous êtes confronté est udev. Il s'agit du processus qui examine le matériel et définit ce matériel /dev(ou quoi que ce soit d'autre à faire). Par défaut, il essaie de conserver les noms persistants des cartes d'interface réseau [nics]. En effet, lorsque vous avez plusieurs cartes réseau, vous souhaitez qu'elles aient toujours le même nom ethX, afin que votre /etc/network/interfacesconfiguration cible le bon nic à chaque démarrage. Le système d'exploitation ne peut pas compter sur le fait qu'ils se trouvent physiquement au même endroit à chaque fois - vous pouvez les déplacer par exemple, ou certains systèmes ne signalent pas leurs connexions physiques dans la même séquence à chaque démarrage.

udevUtilise donc des règles de persistance basées sur l'adresse MAC de la carte réseau. S'il a une entrée pour eth1 avec une adresse MAC connue et qu'une carte apparaît avec une adresse MAC différente, il attribuera un nom de périphérique ethX différent à l'interface.

Pour contrer cela, il vous suffit de mettre à jour les udevrègles. Éditer:

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

et recherchez la ligne avec votre MAC actuel:

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

Si vous changez l'adresse MAC ici en la nouvelle que vous avez choisie dans les paramètres VirtualBox, alors elle conservera le même numéro de développement ethX au prochain démarrage.

La meilleure séquence serait probablement de la modifier ici d'abord, puis d'arrêter la machine virtuelle, puis de modifier le paramètre MAC VB, puis de démarrer.

Paul
la source
La modification manuelle du fichier n'a pas fonctionné pour moi, mais je me souviens avoir lu que vous pouvez supprimer ce fichier en totalité et après le redémarrage, il est généré automatiquement. Et cela a réellement fonctionné :) +1 pour afficher l'emplacement du fichier.
Eduard Luca
@Paul Pourquoi est-il alors possible de cloner un système Linux d'une machine physique à une autre du même type (mais avec des adresses MAC différentes) et de ne pas rencontrer de tels problèmes?
arney
1
@arney Je pense que c'est parce que c'est une carte réseau différente, pas seulement les changements d'adresse MAC. Dans le fichier qui est mentionné par Paul, vous pouvez voir ATTR{dev_id}=="0x0". Ce sera forcément différent.
MarioDS
@arney Je pense que vous avez raison Arney, si le nic n'existe pas, alors la règle udev ne sera pas appliquée. C'est la même chose que s'il s'agissait d'une nouvelle machine. Sans les erreurs, c'est difficile à dire. Mais la suppression des règles de persistance sera utile si c'est udev.
Paul
8

Vous pouvez changer l'adresse MAC en 4 étapes simples en utilisant ifconfig :

Ouvrir un terminal (raccourci clavier: ctrl+ alt+ t)

  1. Trouvez l'adresse mac actuelle:

    ifconfig | grep HWaddr
    
  2. Arrêtez l'interface (en supposant que ce soit eth0pour les prochaines étapes) :

    ifconfig eth0 down
    
  3. Définissez la nouvelle adresse mac:

    ifconfig eth0 hw ether 00:1E:68:35:FF:91
    
  4. Le drapeau provoque l'activation de l'interface:

    ifconfig eth0 up
    

Vous pouvez maintenant revérifier l'adresse mac de votre interface:

ifconfig eth0 |grep HWaddr

Remarque: vous pouvez choisir n'importe quelle adresse hexadécimale de 48 bits comme adresse MAC.


Dans un souci d'exhaustivité, vous pouvez combiner les étapes 2 et 3 en une seule ligne:

ifconfig eth0 down hw ether 00:00:00:00:00:01
Zuul
la source
@DownVoter: S'il y a un problème avec ma réponse, un commentaire irait un long chemin pour me permettre de l'améliorer! Tks.
Zuul