Linux

使用 udev 規則更改介面 mac (hw) 地址

  • August 8, 2020

我想使用 UDEV 規則為介面設置特定的乙太網 MAC 地址。我有以下規則: SUBSYSTEM=="net", ACTION=="add", ATTRS{serial}=="50B123", ATTR{address}="00:22:33:44:55:AA", NAME="yolo0"

規則匹配,介面重命名為“yolo0”,但硬體乙太地址與製造商預設的地址保持不變。我當然可以使用以下方法手動更改mac地址:

ifconfig yolo0 hw ether ..00:22:33:44:55:AA

您可以為此使用 udevPROGRAM規則,方法是對ip link set … address …. 像這樣:

/etc/udev/rules.d/10-network-persistent-custom-mac-address.rules

SUBSYSTEM=="net", ACTION=="add", ATTRS{serial}=="50B123", PROGRAM="/sbin/ip link set %k address 00:22:33:44:55:AA"

恕我直言 udev 是錯誤的地方,規則是設置介面名稱。

添加網卡時需要考慮兩件事:

  1. 用於引用該介面的名稱
  2. 您將為具有給定名稱的介面提供的網路屬性,即您在第 1 點中選擇的名稱。

這就是說,您可以在設置/啟動網路介面時設置您的 MAC 地址、IP、子網、autoneg 等,例如,在 RH /SuSE 上,您可以為(比方說)eth0 執行此操作:

/etc/sysconfig/network-scripts/ifcfg-eth0

對於 RedHat 添加:

MACADDR=YOUR_DESIRED_MAC_ADDRESS

對於 SuSE:

LLADDR=YOUR_DESIRED_MAC_ADDRESS

你可以走了。

引用自:https://serverfault.com/questions/813995