跳轉到內容

駭客/工具/網路/更改MAC地址/Linux

來自Wikibooks,開放世界中的開放書籍

在GNU/Linux下,可以透過以下步驟更改網路介面卡(NIC)的MAC地址。

注意:本文中使用的MAC地址僅供示例。請根據您的需求進行替換。
注意:為了使命令生效,以下命令必須以root許可權執行(例如,在命令前新增“sudo”)。

/etc/init.d/networking stop
ifconfig eth0 hw ether 02:01:02:03:04:08
/etc/init.d/networking start

執行“ifconfig eth0”進行確認。

以上方法適用於DebianUbuntu和類似的發行版。或者,在RHEL/Fedora以及可能的其他GNU/Linux發行版(包括CentOSScientific Linux)中,要停用和重啟網路,必須停止和啟動/etc/init.d/network,而不是/etc/init.d/networking

如果您安裝了iproute2實用程式,您可能更喜歡使用“ip”命令,如下所示

/etc/init.d/network stop
ip link set eth0 address 02:01:02:03:04:08
/etc/init.d/network start

要確認您的設定,您可能更喜歡執行“ip link ls eth0”或“ip addr ls eth0”,而不是“ifconfig eth0”。

注意:如果您使用DSL調變解調器,則可能無法執行此操作(取決於調變解調器供應商或ISP)。

使更改永久生效 - 在重啟後保持更改

[編輯 | 編輯原始碼]

openSUSE和其他基於SUSE的系統(SUSE企業桌面\伺服器等)中,您可以透過在/etc/sysconfig/network/ifcfg-ethN檔案中新增相應的條目來使更改在重啟後“永久生效”(對於第一個乙太網介面配置檔案,ifcfg-eth0,對於第二個,ifcfg-eth1,依此類推)。

LLADDR=12:34:56:78:90:ab

Red Hat Enterprise LinuxRHEL)和其他類似的系統(FedoraCentOS等)中,一種使更改在重啟後“永久生效”的簡單方法是,在/etc/sysconfig/network-scripts/ifcfg-ethN檔案中新增相應的條目(對於第一個乙太網介面配置檔案,ifcfg-eth0,對於第二個,ifcfg-eth1,依此類推)。

MACADDR=12:34:56:78:90:ab

注意:在檔案中有一個值HWADDR - 這與MACADDR不是一回事。要進行永久更改,請使用MACADDR。

來自 http://www.centos.org/docs/5/html/Deployment_Guide-en-US/s1-networkscripts-interfaces.html

HWADDR“指令對於具有多個NIC的機器很有用,可以確保無論每個NIC模組的配置載入順序如何,介面都分配了正確的裝置名稱。此指令不應與MACADDR一起使用。”...MACADDR“指令用於將MAC地址分配給介面,覆蓋分配給物理NIC的MAC地址。此指令不應與HWADDR一起使用。”

指定MAC地址時,接受大寫和小寫字母,因為網路功能會將所有字母轉換為大寫。

您可以透過執行以下命令來測試更改,而無需重啟系統

service network restart

(警告:執行此操作將斷開所有現有的網路連線!)

DebianUbuntu和類似的系統上,將以下內容放在/etc/network/interfaces的相應部分(在iface語句內,例如,閘道器行之後),以便在網路裝置啟動時設定MAC地址

hwaddress ether 02:01:02:03:04:08

Gentoo上,您可以透過為每個乙太網卡在全域性配置檔案/etc/conf.d/net中新增一個條目來獲得相同的結果。eth0裝置的示例

mac_eth0="12:34:56:78:90:ab"

您還可以使用工具“GNU MACChanger”在GNU/Linux下更改MAC地址。

要在啟動時使用MACChanger更改MAC地址,請將以下行新增到您的/etc/network/interfaces(eth0介面的示例)

pre-up macchanger -m 12:34:56:78:90:AB eth0
華夏公益教科書