¿Cómo cambiar la dirección mac (permanentemente) o identificar un dongle USB 3G?

¿Cómo cambiar la dirección mac (permanentemente) o identificar un dongle USB 3G?

Compré dos dongles USB 3G y ambos tienen la misma dirección Mac. Después de algunas investigaciones heencontróEste es un problema común, por lo que es posible que comprar unos nuevos no solucione el problema.

Necesito identificar un dispositivo específico, así que mi pregunta es ¿cómo puedo identificar el dispositivo si la Mac es la misma para ambos dispositivos?

¿Es posible asignar una nueva dirección Mac a un dispositivo (de forma permanente, ya que el dispositivo puede perder energía de vez en cuando) o hay algún identificador único que pueda usar?

Respuesta1

Hay dos formas de configurar la dirección MAC de una interfaz de red. En Windows puede editar la configuración en la vista avanzada de la tarjeta. O utilice PowerShell (tenga en cuenta que es posible que Set-NetAdapter no esté disponible en versiones anteriores de Windows):

Set-NetAdapter –Name "Ethernet 1" -MacAddress "00-10-18-57-1B-0D"

En Linux, necesita encontrar un comando adecuado o editar el archivo /etc/network/interfaces de manera similar a esto:

auto eth0
iface eth0 inet dhcp
hwaddress ether 01:02:03:04:05:06

Respuesta2

Parece que no hay forma de cambiar la Mac "permanentemente". Todas las soluciones encontradas le permiten cambiarlo solo hasta que se reinicie el dispositivo. Para cambiarlo permanentemente necesita tener acceso a los controladores e incluso entonces puede que no sea posible (es decir, el fabricante simplemente no ofrece esta opción).

Respuesta3

Estoy experimentando lo mismo con E3372h. La dirección MAC se puede cambiar en los firmwares HiLink: debe obtener acceso a la consola de Android (que tampoco es trivial) del dispositivo y cambiar el archivo como /app/config/lan/config.xml

Para los firmwares Stick no he encontrado la manera de cambiar MAC. Supongo que podría ser algún comando para escribir mac en alguna celda nvram como AT^NVWREX=bla-bla, pero no pude encontrarlo.

Otro enfoque que puede utilizar en Linux es crear una regla udev basada en la ruta del dispositivo USB. Por lo tanto, el nombre de la interfaz estará vinculado al puerto USB específico (pero no al dispositivo en sí, lo cual es preferible con seguridad). Crea el archivo con el nombre como/etc/udev/rules.d/99-wwan.rules

## Rules to setup fixed interface and port names for usb dongles with identical MAC addresses
# To get MAC address of interface use:
#     N=0; ip addr show wwan${N}
# To get ID_PATH of current interface use (N is interface number, e.g. N=0 for wwan0):
#     N=0; udevadm info -q all -p /sys/class/net/wwan${N} | grep -m1 ID_PATH=
# To get devpath of cdc-wdm${N} use (see first parent):
#     N=0; udevadm info -a -n /dev/cdc-wdm${N}
# To get KERNELS and bInterfaceProtocol for ttyUSB${N} use (see first parent):
#     N=0; udevadm info -a -n /dev/ttyUSB${N}
# Ports configuration related to AT^SETPORT="FF;12,16,5,A1,A2"

# wwan0 on 1.4.1
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:1e:10:1f:00:00", ENV{ID_PATH}=="platform-3f980000.usb-usb-0:1.4.1:1.1", KERNEL=="wwan*", NAME="wwan0"
SUBSYSTEM=="tty",     KERNELS=="1-1.4.1:1.0", ATTRS{bInterfaceProtocol}=="12", KERNEL=="ttyUSB*",  SYMLINK+="ttyUSB-wwan0"
SUBSYSTEM=="usbmisc", KERNELS=="1-1.4.1:1.1", ATTRS{bInterfaceProtocol}=="16", KERNEL=="cdc-wdm*", SYMLINK+="cdc-wdm-wwan0"
SUBSYSTEM=="tty",     KERNELS=="1-1.4.1:1.2", ATTRS{bInterfaceProtocol}=="05", KERNEL=="ttyUSB*",  SYMLINK+="ttyUSB-a_shell-wwan0"

# wwan1 on 1.4.3
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:1e:10:1f:00:00", ENV{ID_PATH}=="platform-3f980000.usb-usb-0:1.4.3:1.1", KERNEL=="wwan*", NAME="wwan1"
SUBSYSTEM=="tty",     KERNELS=="1-1.4.3:1.0", ATTRS{bInterfaceProtocol}=="12", KERNEL=="ttyUSB*",  SYMLINK+="ttyUSB-wwan1"
SUBSYSTEM=="usbmisc", KERNELS=="1-1.4.3:1.1", ATTRS{bInterfaceProtocol}=="16", KERNEL=="cdc-wdm*", SYMLINK+="cdc-wdm-wwan1"
SUBSYSTEM=="tty",     KERNELS=="1-1.4.3:1.2", ATTRS{bInterfaceProtocol}=="05", KERNEL=="ttyUSB*",  SYMLINK+="ttyUSB-a_shell-wwan1"

# # wwan on ???
# SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="???", ENV{ID_PATH}=="???", KERNEL=="wwan*", NAME="wwan???"
# SUBSYSTEM=="tty",     KERNELS=="???:1.0", ATTRS{bInterfaceProtocol}=="12", KERNEL=="ttyUSB*",  SYMLINK+="ttyUSB-wwan???"
# SUBSYSTEM=="usbmisc", KERNELS=="???:1.1", ATTRS{bInterfaceProtocol}=="16", KERNEL=="cdc-wdm*", SYMLINK+="cdc-wdm-wwan???"
# SUBSYSTEM=="tty",     KERNELS=="???:1.2", ATTRS{bInterfaceProtocol}=="05", KERNEL=="ttyUSB*",  SYMLINK+="ttyUSB-a_shell-wwan???"

Cambie los valores de ID_PATH, KERNELS y dirección a sus propios valores. También puede modificar el nombre, los enlaces simbólicos y/o agregar opciones de udev adicionales.

información relacionada