前言
我們都知道網路介面卡會有一個 MAC 位址,在正常情況下,DHCP Server 會透過這個 MAC 位址來決定發給你什麼 IP 位址。不過如果你今天想搞點事情,那我如何在 Linux 中做到這件事情呢?這邊文章就會來說說這個方式。
注意:只有方式三是永久生效的,方式一跟方式二都是單次操作而已。
方式一:ifconfig
我們要先使用 ifconfig 將特定網路介面卡關閉,這邊就用 ens18 為例。(注意:如果你正使用 SSH,這很有可能會斷線!)
ifconfig ens18 down
接著更新一個 MAC 位址成你喜歡的,下方命令中的位址是隨便打的,如果你需要一組亂數的,可以到 這個網站。
ifconfig ens18 hw ether BA:F5:C0:FC:04:BA
最後,重新讓這個網路介面卡回來。
ifconfig ens18 up
方式二:ip link
第二種方式是使用 ip link,邏輯大致是跟上面的方式相同,所以就不多著墨過程的說明了。
舉例將網卡 ens18 關閉。
sudo ip link set dev ens18 down
更新 ens18 的 MAC 位址。
sudo ip link set dev ens18 address BA:F5:C0:FC:04:BA
最後,將 ens18 開回來。
sudo ip link set dev ens18 up
方式三:設定檔
如果你要使設定永久生效,那你可能就需要將指定的 MAC 位址寫入設定檔中。這裡用 Debian 為例,我們需要編輯 /etc/network/interfaces 這個檔案。
sudo vim /etc/network/interfaces
而這裡也假定網路介面卡是用 DHCP 拿到 IP 位址的,那就會長這樣。
auto ens18
iface ens18 inet dhcp
hwaddress ether BA:F5:C0:FC:04:BA
其實就是在下面加上 hwaddress 來指定 MAC 位址,寫完就可以重啟機器試試看成效囉。