如何更改 MAC 地址(永久)或识别 3G USB 加密狗?

如何更改 MAC 地址(永久)或识别 3G USB 加密狗?

我买了两个 3G usb 适配器,它们都有相同的 mac 地址。经过一番研究,我发现成立这是一个常见问题,因此购买新产品可能无法解决问题。

我需要识别一个特定的设备,所以我的问题是,如果两个设备的 mac 相同,我该如何识别该设备?

是否可以为一个设备分配一个新的 MAC 地址(以某种方式永久分配,因为设备可能会时不时断电)或者是否有任何我可以使用的唯一标识符?

答案1

有几种方法可以设置网络接口的 MAC 地址。在 Windows 上,您可以在卡的高级视图中编辑设置。或者使用 powershell(请注意,Set-NetAdapter 可能在旧版本的 Windows 中不可用):

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

在 Linux 上,您需要找到适当的命令或以类似以下方式编辑 /etc/network/interfaces 文件:

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

答案2

似乎没有办法“永久”更改 mac。找到的所有解决方案都允许您在设备重新启动之前更改它。要永久更改它,您需要访问驱动程序,即使这样也可能无法实现(即制造商不提供此选项)。

答案3

我对 E3372h 也有同样的感受。可以在 HiLink 固件上更改 MAC 地址:您必须访问设备的 Android 控制台(这也不是一件容易的事)并更改文件,例如 /app/config/lan/config.xml

对于 Stick 固件,我还没有找到更改 MAC 的方法。我猜想可能是一些将 mac 写入某些 nvram 单元的命令AT^NVWREX=bla-bla,但我找不到它。

在 Linux 上,您可以使用的另一种方法是根据 USB 设备路径创建 udev 规则。因此,接口名称将与特定 USB 端口绑定(但不是设备本身,这当然是更好的选择)。创建名称如下的文件/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???"

将 ID_PATH、KERNELS 和地址的值更改为您自己的值。您还可以修改名称、符号链接和/或添加其他 udev 选项。

相关内容