¿Forma adecuada para cambiar la dirección MAC en una máquina virtual Linux?

13

Traté de cambiar la dirección MAC en una máquina virtual ubuntu (virtualbox), pero después de eso arrojó muchos errores durante el arranque, y luego no tuve conexión a Internet.

Luego vi que la interfaz se renombró a eth1, así que edité / etc / network / interfaces para cambiar eth0 a eth1, reinicié (no sabía cómo reiniciar la red), y el arranque ahora fue más rápido e Internet funcionó bien.

Pero ahora, cada vez que inicio sesión, recibo 1 o 2 mensajes de error que no dicen nada, solo me preguntan si quiero denunciarlos.

Entonces me preguntaba, ¿hay una manera adecuada de cambiar la dirección MAC para evitar estos problemas?

HappyDeveloper
fuente
1
Hay una serie de factores involucrados en el cambio de una dirección mac, en una máquina virtual o de otra manera. ¿Puede explicar por qué desea cambiar la Mac? Podría ayudarlo a encontrar la mejor solución ( meta.stackexchange.com/questions/66377/what-is-the-xy-problem )
Paul
@Paul Estoy tratando de aprender cómo los diferentes programas rastrean tu actividad, cómo hacerlo y cómo evitarla. Por ejemplo: IP, cookies, huellas digitales del navegador, etc. Ahora quiero ver cómo algunos programas responden a un cambio de dirección MAC.
HappyDeveloper

Respuestas:

15

Es muy probable que esté utilizando el método "correcto" para cambiar la dirección MAC, si lo está haciendo en la configuración avanzada de red en VirtualBox. Sin embargo, un cambio temporal como en la otra respuesta de Zuul puede ser mejor para sus propósitos, ya que cambiará el MAC sin causar demasiados problemas adicionales; sin embargo, no sobrevivirá a un reinicio.

Cambiarlo en VirtualBox, por supuesto, sobrevivirá a un reinicio, pero el problema que enfrenta es udev. Este es el proceso que se ve en el hardware y juegos de ese hardware en /dev(o cualquier otra cosa necesidad de poder por hacer). Una de las cosas que hace de forma predeterminada es tratar de mantener nombres persistentes para las tarjetas de interfaz de red [nics]. Esto se debe a que cuando tiene varias unidades de interfaz de red, desea que siempre tengan el mismo nombre de ethX, de modo que su /etc/network/interfacesconfiguración se oriente al nic correcto en cada arranque. El sistema operativo no puede confiar en que solo estén físicamente en el mismo lugar cada vez; puede moverlos, por ejemplo, o algunos sistemas no informan sus conexiones físicas en la misma secuencia en cada arranque.

Entonces udevusa reglas de persistencia basadas en la dirección MAC de la tarjeta de red. Si tiene una entrada para eth1 con una dirección MAC conocida y aparece una tarjeta con una dirección MAC diferente, asignará un nombre de dispositivo ethX diferente a la interfaz.

Para contrarrestar esto, solo necesita actualizar las udevreglas. Editar:

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

y busque la línea con su MAC actual:

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 cambia la dirección MAC aquí a la nueva que eligió en la configuración de VirtualBox, retendrá el mismo número de desarrollo de ethX el próximo arranque.

La mejor secuencia probablemente sería editarla aquí primero, luego apagar la VM, luego editar la configuración VB MAC, luego iniciar.

Pablo
fuente
Editar el archivo manualmente no funcionó para mí, pero recordé haber leído que puedes eliminar este archivo por completo y después de reiniciarlo, se genera automáticamente. Y eso realmente funcionó :) +1 para mostrar la ubicación del archivo.
Eduard Luca
@Paul ¿Por qué es entonces que puedo clonar un sistema Linux de una máquina física a otra del mismo tipo (pero con diferentes direcciones MAC) y no tener tantos problemas?
arney
1
@arney Creo que es porque es una NIC completamente diferente, no solo los cambios de la dirección MAC. En el archivo que se menciona por Pablo, se puede ver: ATTR{dev_id}=="0x0". Esto está destinado a ser diferente.
MarioDS
@arney Creo que tienes razón Arney, si el nic no existe, entonces la regla udev no se aplicará. Esto es lo mismo que si fuera una máquina nueva. Sin los errores es difícil de decir. Pero eliminar las reglas de persistencia ayudará si es udev.
Paul
8

Puede cambiar la dirección MAC con 4 pasos simples usando ifconfig :

Abrir una terminal (atajo de teclado: ctrl+ alt+ t)

  1. Encuentra la dirección mac actual:

    ifconfig | grep HWaddr
    
  2. Cierre la interfaz (suponiendo que sea eth0para los siguientes pasos) :

    ifconfig eth0 down
    
  3. Establezca la nueva dirección mac:

    ifconfig eth0 hw ether 00:1E:68:35:FF:91
    
  4. La marca hace que la interfaz se active:

    ifconfig eth0 up
    

Ahora puede volver a verificar la dirección mac de su interfaz:

ifconfig eth0 |grep HWaddr

Nota: Puede elegir cualquier dirección hexadecimal de 48 bits como su dirección MAC.


Para completar, puede combinar los pasos 2 y 3 en una línea:

ifconfig eth0 down hw ether 00:00:00:00:00:01
Zuul
fuente
@DownVoter: ¡Si hay un problema con mi respuesta, un comentario me ayudaría mucho a mejorarlo! Tks
Zuul