
我嘗試更改 ubuntu 虛擬機器(virtualbox)中的 MAC 位址,但之後在啟動過程中出現了很多錯誤,然後我就沒有網路連線了。
然後我看到該介面被重新命名為eth1,所以我編輯/etc/network/interfaces將eth0更改為eth1,重新啟動(不知道如何重新啟動網路),現在啟動速度更快並且互聯網工作正常。
但現在每次登入後,我都會收到 1 或 2 個錯誤訊息,但什麼也沒說,他們只是問我是否要報告它們。
所以我想知道,是否有正確的方法來更改MAC位址,以避免這些問題?
答案1
如果您在 VirtualBox 的進階網路設定中執行此操作,則您很可能會使用「正確」的方法來變更 MAC 位址。然而,Zuul 的另一個答案中的臨時更改可能最適合您的目的,因為它會更改 MAC,而不會導致太多其他問題 - 但它無法在重新啟動後倖存。
在 VirtualBox 中更改它當然可以在重新啟動後繼續存在,但您面臨的問題是udev
.這是查看硬體並設定該硬體/dev
(或任何其他可能需要完成的操作)的過程。它預設執行的操作之一是嘗試維護網路介面卡 [nics] 的持久名稱。這是因為當您有多個網路卡時,您希望它們始終具有相同的 ethX 名稱,以便您的/etc/network/interfaces
配置每次啟動時都針對正確的網路卡。作業系統不能依賴它們每次都在物理上位於同一位置 - 例如,您可以移動它們,或者某些系統在每次啟動時不會以相同的順序報告它們的物理連接。
因此udev
使用基於網卡MAC位址的持久性規則。如果它有一個已知 MAC 位址的 eth1 條目,並且出現具有不同 MAC 位址的卡,它將為該介面指派不同的 ethX 裝置名稱。
為了解決這個問題,您只需更新udev
規則即可。編輯:
vi /etc/udev/rules.d/70-persistent-net.rules
並尋找包含您目前 MAC 的行:
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="11:22:33:44:55:66", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
如果您將此處的 MAC 位址變更為您在 VirtualBox 設定中選擇的新位址,則下次啟動時它將保留相同的 ethX 開發號。
最好的順序可能是先在此處編輯它,然後關閉虛擬機,然後編輯 VB MAC 設置,然後啟動。
答案2
您可以透過 4 個簡單步驟變更 MAC 位址如果配置:
開啟終端機(鍵盤快速鍵:ctrl++ alt)t
尋找當前mac位址:
ifconfig | grep HWaddr
關閉介面(假設用於
eth0
後續步驟):ifconfig eth0 down
設定新的mac位址:
ifconfig eth0 hw ether 00:1E:68:35:FF:91
Flag 導致介面被啟動:
ifconfig eth0 up
現在您可以重新檢查您的介面 MAC 位址:
ifconfig eth0 |grep HWaddr
筆記:您可以選擇任何 48 位元十六進位位址作為您的 MAC 位址。
為了完整起見,您可以將步驟 2 和 3 合併為一行:
ifconfig eth0 down hw ether 00:00:00:00:00:01