如何(永久)更改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 選項。

相關內容