linux手動(dòng)、自動(dòng)更改網(wǎng)卡MAC地址的方法
前言
一塊網(wǎng)卡的mac地址在出廠時(shí)已經(jīng)寫(xiě)入,有時(shí)候是寫(xiě)入可以擦寫(xiě)的rom中,但是要有相當(dāng)?shù)膶?zhuān)業(yè)技術(shù)或?qū)I(yè)的設(shè)備。
對(duì)于一些綁定了mac地址,更換了設(shè)備后又不想更換mac的,就需要修改mac地址了。
查看網(wǎng)卡MAC地址
使用ip命令就能查看MAC地址了:
ip link show ${interface}
2: enp0s25: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN mode DEFAULT group default qlen 1000 link/ether f0:de:f1:ad:1d:f0 brd ff:ff:ff:ff:ff:ff
其中 link/ether 后面那一串用 : 分割的6字節(jié)十六進(jìn)制數(shù)就是網(wǎng)卡的MAC地址了,也就是 f0:de:f1:ad:1d:f0
手工修改MAC地址
使用ip命令也能修改MAC地址,但是需要root權(quán)限:
1、禁用網(wǎng)卡
sudo ip link set dev ${interface} down
2、修改MAC地址
有的網(wǎng)絡(luò)運(yùn)營(yíng)商可能會(huì)拒絕為不正確的 MAC 分配 IP 地址,因此推薦前三個(gè)字節(jié)用真實(shí)的MAC地址前綴,后三個(gè)字節(jié)可以隨機(jī)更改。
sudo ip link set dev ${interface} address ${new_mac}
我們?cè)俨榭匆幌戮W(wǎng)卡的MAC地址
ip link show ${interface}
2: enp0s25: <BROADCAST,MULTICAST> mtu 1500 qdisc fq_codel state DOWN mode DEFAULT group default qlen 1000 link/ether f0:de:f1:ff:ff:ff brd ff:ff:ff:ff:ff:ff
你會(huì)發(fā)現(xiàn)網(wǎng)卡已經(jīng)被改成新的MAC地址了.
3、最后重啟網(wǎng)卡
sudo ip link set dev ${interface} up
自動(dòng)更改
systemd-networkd服務(wù)能通過(guò) link 文件(底層物理網(wǎng)絡(luò)設(shè)備配置)來(lái)設(shè)置MAC地址
我們通過(guò) [Match] 小節(jié)來(lái)匹配某個(gè)網(wǎng)卡,然后通過(guò) [Link] 小節(jié)來(lái)對(duì)網(wǎng)卡進(jìn)行配置
Match小節(jié)
如果 “[Match]” 小節(jié)中的每一項(xiàng)都與某個(gè)網(wǎng)卡匹配, 那么視為該Link文件與該網(wǎng)卡匹配。若 “[Match]” 小節(jié)為空則表示匹配任意網(wǎng)卡。
所有可用于匹配的選項(xiàng)如下:
MACAddress
匹配網(wǎng)卡的物理地址(MAC地址)
OriginalName
匹配網(wǎng)卡的”INTERFACE”屬性值(網(wǎng)卡的內(nèi)核名稱(chēng))。 接收一個(gè)空格分隔的匹配模式列表(使用shell風(fēng)格的通配符)。 不可用于匹配已經(jīng)被用戶空間改了名字的網(wǎng)卡。 應(yīng)該小心使用此選項(xiàng), 因?yàn)榫W(wǎng)卡的內(nèi)核名稱(chēng)有可能是不穩(wěn)定的。
Path
匹配網(wǎng)卡的 “ID_PATH” 屬性值(網(wǎng)卡的總線路徑)。 接收一個(gè)空格分隔的匹配模式列表(使用shell風(fēng)格的通配符)。
Driver
匹配網(wǎng)卡的 “DRIVER” 屬性值(網(wǎng)卡的驅(qū)動(dòng)名稱(chēng))。 接收一個(gè)空格分隔的匹配模式列表(使用shell風(fēng)格的通配符)。 注意,如果網(wǎng)卡的 “DRIVER” 屬性不存在, 那么將使用 “ethtool -i” 命令中輸出的驅(qū)動(dòng)名稱(chēng)。
Type
匹配網(wǎng)卡的 “DEVTYPE” 屬性值(網(wǎng)卡的設(shè)備類(lèi)型)。 接收一個(gè)空格分隔的匹配模式列表(使用shell風(fēng)格的通配符)。
Host
匹配主機(jī)的 hostname 或”machine ID”,參見(jiàn) systemd.unit(5) 中的 “ConditionHost=” 選項(xiàng)。
Virtualization
檢查是否運(yùn)行于特定的虛擬環(huán)境中, 參見(jiàn) systemd.unit(5) 中的 “ConditionVirtualization=” 選項(xiàng)。
KernelCommandLine
檢查是否設(shè)置了(或者以”!”開(kāi)頭表示未設(shè)置)特定的內(nèi)核引導(dǎo)選項(xiàng), 參見(jiàn) systemd.unit(5) 中的 “ConditionKernelCommandLine=” 選項(xiàng)。
Architecture
檢查是否運(yùn)行于特定的硬件平臺(tái), 參見(jiàn) systemd.unit(5) 中的 “ConditionArchitecture=” 選項(xiàng)。
Link小節(jié)
Link小節(jié)可以對(duì)網(wǎng)卡進(jìn)行多種配置,其中與修改MAC有關(guān)的選項(xiàng)有:
MACAddressPolicy
應(yīng)該如何設(shè)置網(wǎng)卡的MAC地址:
“persistent”
如果內(nèi)核使用了網(wǎng)卡硬件固有的MAC地址(絕大多數(shù)網(wǎng)卡都有), 那么啥也不做,直接使用內(nèi)核的MAC地址。 否則,將會(huì)隨機(jī)新生成一個(gè) 確保在多次啟動(dòng)之間保持固定不變的MAC地址(針對(duì)給定的主板與網(wǎng)卡)。 自動(dòng)生成MAC地址的特性 要求網(wǎng)卡必須存在 ID_NET_NAME_* 屬性, 否則無(wú)法自動(dòng)生成MAC地址。
“random”
如果內(nèi)核使用了隨機(jī)生成的MAC地址(而不是網(wǎng)卡硬件固有的MAC地址), 那么啥也不做,直接使用內(nèi)核的MAC地址。 否則,將在網(wǎng)卡每次出現(xiàn)的時(shí)候(一般在啟動(dòng)過(guò)程中)隨機(jī)新生成一個(gè)MAC地址。 無(wú)論使用上述哪種方式生成的MAC地址, 都將設(shè)置 “unicast” 與 “l(fā)ocally administered” 位。
“none”
無(wú)條件的直接使用內(nèi)核的MAC地址。
MACAddress
在未設(shè)置 “MACAddressPolicy=” 時(shí)所使用MAC地址。
另外,Link小節(jié)中,我們必須為某個(gè)網(wǎng)卡進(jìn)行命名,因此肯定會(huì)有 NamePolicy 或者 Name 選項(xiàng)
NamePolicy
應(yīng)該如何設(shè)置網(wǎng)卡的名稱(chēng), 僅在未使用 “net.ifnames=0″ 內(nèi)核引導(dǎo)選項(xiàng)時(shí)有意義。 接受一個(gè)空格分隔的策略列表, 順序嘗試每個(gè)策略,并以第一個(gè)成功的策略為準(zhǔn)。 所得的名字將被用于設(shè)置網(wǎng)卡的 “ID_NET_NAME” 屬性。 注意,默認(rèn)的udev規(guī)則會(huì)用 “ID_NET_NAME” 的值設(shè)置 “NAME” 屬性(也就是網(wǎng)卡的名稱(chēng))。 如果網(wǎng)卡已經(jīng)被空戶空間命名,那么將不會(huì)進(jìn)行任何重命名操作。 可用的策略如下:
“kernel”
如果內(nèi)核已經(jīng)為此網(wǎng)卡設(shè)置了固定的可預(yù)測(cè)名稱(chēng), 那么不進(jìn)行任何重命名操作。
“database”
基于網(wǎng)卡的 “ID_NET_NAME_FROM_DATABASE” 屬性值(來(lái)自于udev硬件數(shù)據(jù)庫(kù))設(shè)置網(wǎng)卡的名稱(chēng)。
“onboard”
基于網(wǎng)卡的 “ID_NET_NAME_ONBOARD” 屬性值(來(lái)自于板載網(wǎng)卡固件)設(shè)置網(wǎng)卡的名稱(chēng)。
“slot”
基于網(wǎng)卡的 “ID_NET_NAME_SLOT” 屬性值(來(lái)自于可插拔網(wǎng)卡固件)設(shè)置網(wǎng)卡的名稱(chēng)。
“path”
基于網(wǎng)卡的 “ID_NET_NAME_PATH” 屬性值(來(lái)自于網(wǎng)卡的總線位置)設(shè)置網(wǎng)卡的名稱(chēng)。
“mac”
基于網(wǎng)卡的 “ID_NET_NAME_MAC” 屬性值(來(lái)自于網(wǎng)卡的固定MAC地址)設(shè)置網(wǎng)卡的名稱(chēng)。
Name
在 NamePolicy= 無(wú)效時(shí)應(yīng)該使用的網(wǎng)卡名稱(chēng)。 無(wú)效的情況包括: (1)未設(shè)置 NamePolicy= ; (2)NamePolicy= 中的策略全失??; (3)使用了”net.ifnames=0″內(nèi)核引導(dǎo)選項(xiàng)
注意, 千萬(wàn)不要設(shè)置可能被內(nèi)核用于其他網(wǎng)口的名稱(chēng)(例如 “eth0″), 這可能會(huì)導(dǎo)致 udev 在分配名稱(chēng)時(shí)與內(nèi)核產(chǎn)生競(jìng)爭(zhēng), 從而導(dǎo)致不可預(yù)期的后果。 最好的做法是使用一些永遠(yuǎn)不會(huì)導(dǎo)致沖突名稱(chēng)或前綴,例如: “internal0″”external0″ 或 “l(fā)an0″”lan1″/”lan3″
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)腳本之家的支持。
相關(guān)文章
Ubuntu中Nginx的安裝與配置詳細(xì)說(shuō)明
本篇文章小編為大家介紹,Ubuntu中Nginx的安裝與配置詳細(xì)說(shuō)明。需要的朋友參考下2013-04-04
Apache Shiro 使用手冊(cè)(三) Shiro授權(quán)
授權(quán)即訪問(wèn)控制,它將判斷用戶在應(yīng)用程序中對(duì)資源是否擁有相應(yīng)的訪問(wèn)權(quán)限2014-06-06
Centos7配置與安裝DNS服務(wù)器全過(guò)程
這篇文章主要介紹了Centos7配置與安裝DNS服務(wù)器全過(guò)程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2025-09-09
CentOS7 LNMP+phpmyadmin環(huán)境搭建 第一篇虛擬機(jī)及centos7安裝
這篇文章主要介紹了CentOS7 LNMP+phpmyadmin環(huán)境搭建第一篇虛擬機(jī)及centos7安裝教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-07-07
Apache Kafka單節(jié)點(diǎn)極速部署指南及搭建開(kāi)發(fā)單節(jié)點(diǎn)環(huán)境的操作步驟
本文介紹了如何在10分鐘內(nèi)快速部署Apache Kafka單節(jié)點(diǎn)開(kāi)發(fā)環(huán)境,首先,簡(jiǎn)要介紹了Kafka的背景、特性和應(yīng)用場(chǎng)景,然后,詳細(xì)描述了環(huán)境準(zhǔn)備、安裝、配置文件詳解、配置為系統(tǒng)服務(wù)、驗(yàn)證服務(wù)和關(guān)鍵配置項(xiàng)深度解析等內(nèi)容,感興趣的朋友一起看看吧2025-03-03
如何實(shí)現(xiàn)為Ubuntu擴(kuò)容(添加新的硬盤(pán)空間)
這篇文章主要介紹了如何實(shí)現(xiàn)為Ubuntu擴(kuò)容(添加新的硬盤(pán)空間)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-03-03
Nginx虛擬主機(jī)多server_name的順序問(wèn)題
今天在配置Nginx + PHP + MediaWiki中,發(fā)現(xiàn)一個(gè)問(wèn)題:MediaWiki所在的Nginx虛擬主機(jī)綁定了多個(gè)域名,但是不管通過(guò)什么域名訪問(wèn)MediaWiki首頁(yè),都會(huì)被跳轉(zhuǎn)到其中的一個(gè)域名上。2008-12-12

