Richtige Möglichkeit zum Ändern der MAC-Adresse in einer Linux-VM?


13

Ich habe versucht, die MAC-Adresse in einer Ubuntu-VM (Virtualbox) zu ändern, aber danach gab es beim Booten viele Fehler, und dann hatte ich keine Internetverbindung.

Dann sah ich, dass die Schnittstelle in eth1 umbenannt wurde, also bearbeitete ich / etc / network / interfaces, um eth0 in eth1 zu ändern, startete neu (wusste nicht, wie man das Netzwerk neu startet) und bootete jetzt schneller und das Internet funktionierte einwandfrei.

Aber jetzt bekomme ich nach jeder Anmeldung 1 oder 2 Fehlermeldungen, die nichts aussagen. Sie fragen mich nur, ob ich sie melden möchte.

Ich habe mich also gefragt, ob es einen geeigneten Weg gibt, die MAC-Adresse zu ändern, um diese Probleme zu vermeiden.


1
Es gibt eine Reihe von Faktoren, die beim Ändern einer Mac-Adresse in einer VM oder auf andere Weise eine Rolle spielen. Können Sie erklären, warum Sie den Mac ändern möchten, es könnte bei der Suche nach der besten Lösung helfen ( meta.stackexchange.com/questions/66377/what-is-the-xy-problem )
Paul

@Paul Ich versuche zu lernen, wie verschiedene Programme Ihre Aktivitäten verfolgen, wie Sie dies tun und wie Sie dies vermeiden. ZB: IP, Cookies, Browser-Fingerabdrücke usw. Nun möchte ich sehen, wie einige Programme auf eine Änderung der MAC-Adresse reagieren.
HappyDeveloper

Antworten:


15

Sie verwenden sehr wahrscheinlich die "richtige" Methode, um die MAC-Adresse zu ändern, wenn Sie dies in den erweiterten Netzwerkeinstellungen in VirtualBox tun. Eine vorübergehende Änderung wie in der anderen Antwort von Zuul ist jedoch für Ihre Zwecke am besten geeignet, da die MAC-Adresse geändert wird, ohne dass zu viele zusätzliche Probleme auftreten - sie überlebt jedoch einen Neustart nicht.

Das Ändern in VirtualBox wird natürlich einen Neustart überstehen, aber das Problem, mit dem Sie konfrontiert sind, ist mit udev. Dies ist der Prozess, der sich mit Hardware befasst und diese Hardware einrichtet /dev(oder was auch immer sonst getan werden muss). Standardmäßig wird versucht, dauerhafte Namen für Netzwerkschnittstellenkarten beizubehalten. Dies liegt daran, dass bei mehreren Nics immer derselbe ethX-Name verwendet werden soll, damit Ihre /etc/network/interfacesKonfiguration bei jedem Start die richtige NIC als Ziel hat. Das Betriebssystem kann sich nicht darauf verlassen, dass sie sich jedes Mal physisch an derselben Stelle befinden. Sie können sie beispielsweise verschieben, oder einige Systeme melden ihre physischen Verbindungen nicht bei jedem Start in derselben Reihenfolge.

So udevPersistenz Anwendungen auf der MAC - Adresse der Netzwerkkarte basierte Regeln. Wenn ein Eintrag für eth1 mit einer bekannten MAC-Adresse vorhanden ist und eine Karte mit einer anderen MAC-Adresse angezeigt wird, weist sie der Schnittstelle einen anderen ethX-Gerätenamen zu.

Um dem entgegenzuwirken, müssen Sie nur die udevRegeln aktualisieren . Bearbeiten:

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

und suche die Leitung mit deinem aktuellen MAC:

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

Wenn Sie die MAC-Adresse hier in die neue ändern, die Sie in den VirtualBox-Einstellungen ausgewählt haben, behält sie beim nächsten Start dieselbe ethX dev-Nummer bei.

Die beste Sequenz wäre wahrscheinlich, sie zuerst hier zu bearbeiten, dann die VM herunterzufahren, dann die VB MAC-Einstellung zu bearbeiten und dann hochzufahren.


Das manuelle Bearbeiten der Datei hat bei mir nicht funktioniert, aber ich habe gelesen, dass Sie diese Datei insgesamt entfernen können und sie nach dem Neustart automatisch generiert wird. Und das hat tatsächlich funktioniert :) +1 für die Anzeige des Speicherorts.
Eduard Luca

@Paul Warum kann ich dann ein Linux-System von einer physischen Maschine auf eine andere gleichen Typs (aber mit unterschiedlichen MAC-Adressen) klonen und habe keine derartigen Probleme?
Arney

1
@arney Ich denke das liegt daran, dass es sich insgesamt um eine andere Netzwerkkarte handelt, nicht nur die MAC-Adresse ändert. In der Datei , die von Paul erwähnt ist, können Sie sehen: ATTR{dev_id}=="0x0". Das muss anders sein.
MarioDS

@arney Ich denke, du hast Recht, Arney, wenn das NIC nicht existiert, wird die udev-Regel nicht angewendet. Dies ist das gleiche, als wäre es eine neue Maschine. Ohne die Fehler ist es schwer zu sagen. Das Löschen der Persistenzregeln hilft jedoch, wenn es sich um udev handelt.
Paul

8

Sie können die MAC-Adresse mit ifconfig in 4 einfachen Schritten ändern :

Öffne ein Terminal (Tastaturkürzel: ctrl+ alt+ t)

  1. Finde die aktuelle Mac-Adresse:

    ifconfig | grep HWaddr
    
  2. Fahren Sie die Schnittstelle herunter (vorausgesetzt, es handelt sich eth0um die nächsten Schritte) :

    ifconfig eth0 down
    
  3. Stellen Sie die neue Mac-Adresse ein:

    ifconfig eth0 hw ether 00:1E:68:35:FF:91
    
  4. Flag bewirkt, dass die Schnittstelle aktiviert wird:

    ifconfig eth0 up
    

Jetzt können Sie die MAC-Adresse Ihrer Benutzeroberfläche erneut überprüfen:

ifconfig eth0 |grep HWaddr

Hinweis: Sie können eine beliebige 48-Bit-Hexadezimaladresse als MAC-Adresse auswählen.


Der Vollständigkeit halber können Sie die Schritte 2 und 3 in einer Zeile zusammenfassen:

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

@DownVoter: Wenn es ein Problem mit meiner Antwort gibt, würde ein Kommentar viel dazu beitragen, es zu verbessern! Tks.
Zuul
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.