Ubuntu技巧:Ubuntu上通過ethtool工具更改82580網卡MAC

如果想在Ubuntu下永久更改網卡MAC要如何實現,在網上搜了一些方法,單是大部分都是使用腳本配置;無意間搜到ethtool可以讀寫網卡eeprom的數據,我嘗試直接從網卡的EEPROM中做手腳,成功更改mac後,不管系統如何更換,網卡Mac都會永久更改。ethtool 工具有一個-E 指令, 可以通過此指令修改網卡的eeprom. 前提是此網卡驅動編寫了ethtool驅動接口,並具有eeprom。

參考網站:

https://blog.csdn.net/sdvch/article/details/48712555

https://m.jb51.net/article/141793.htm

https://www.jianshu.com/p/b515676409c8

 

具體實現方法步驟:

1,找到網卡的VenID:DevID

這個是ethtool可以通過設備號來索引到eeprom的具體位置,可以通過如下兩種方式獲取:

可以分別通過2種方式取得:

1) lspci 查看

lspci  -nn -v |grep "Ethernet Controller"

打印如下:

02:05.0 Ethernet controller [0200]: Intel Corporation 82545EM Gigabit Ethernet Controller (Copper) [8086:150e] (rev 01)

2)Intel 網卡eeprom已經包含了VenID:DevID, 具體可以查看每個網卡的芯片及開發手冊

ethtool -e eth0 | grep 0x0010 | awk '{print "0x"$13$12$15$14}'

打印如下:0x150e8086,此即爲magic 後需填的參數。

2,查看網卡eeprom的數據,確定mac的偏移地址

用ifconfig命令查看eth0網卡的mac如下:

eth0 Link encap:以太網  硬件地址 a0:00:00:c9:00:00

用如下命令查看eeprom的數據內容,確定Mac數據偏移量:

sudo ethtool -e eth0 offset 0x0000 length 512
A000 00C9 0000 0D20 FFFF 3029 FFFF FFFF
3029 0000 27EB 0000 8086 150E 8086 B3C2
FFFF FFFF 5C00 00C1 6AE2 0044 4C00 0698
3DBF 7000 1A0E 0000 0783 10A6 0000 0602
E384 2401 0000 0C00 0480 FFFF FFFF 0888
1C40 003C 0000 1404 0000 0000 1000 FFFF
0100 4000 1332 4003 0100 4000 FFFF 068C
0100 4000 0100 4000 FFFF 0140 FFFF FFFF
FFFF FFFF 021A 8000 FFFF FFFF FFFF FFFF
FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF
08A8 06AC FFFF FFFF 0800 FFFF FFFF 0839
FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF
FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF
FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF
FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF
FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF
A000 00C9 0100 FFFF FFFF FFFF FFFF FFFF

從以上數據可以看出這裏的mac數據在第一行的位置(不同網卡mac數據存放位置在eeprom不一樣,需謹慎更改

3,更改mac數據並重新上電,驗證mac和網絡是否正常
通過如下指令更改每個mac數據:

sudo ethtool -E eth0 magic 0x150e8086 offset 0x04 value 0xd0

更改後我的網卡重新上電後讀到的mac如下:

eth0 Link encap:以太網  硬件地址 a0:00:00:c9:d0:00

每次更改一個值,爲了確保改的位置是正確的(不正確極大可能將網卡eeprom寫亂,錯誤數據會導致系統復位後網卡無法加載,再無法找到網卡設備,這個後果比較嚴重,只能重新用DOS燒寫eeprom來回復網卡),使用步驟2的查看指令來校驗自己更改的位置和數據是否準確,單次寫錯不要緊,在不復位情況下將值重新寫回來即可,更改完後重啓系統,系統起來後如果一切正常,網卡可正常加載並聯網及證明修改成功。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章