黑客/工具/网络/更改 MAC 地址/Linux
在 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
”以确认。
上述方法应该适用于 **Debian**、**Ubuntu** 和类似的发行版。或者,在 **RHEL**、**Fedora** 和可能的其他 GNU/Linux 发行版(包括 **CentOS** 和 **Scientific 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 enterprise desktop\server** 等)中,您可以通过在 /etc/sysconfig/network/ifcfg-ethN 文件中添加适当的条目,使更改在重启后保持“永久性”(ifcfg-eth0 用于第一个以太网接口配置文件,ifcfg-eth1 用于第二个,等等)。
LLADDR=12:34:56:78:90:ab
在 **Red Hat Enterprise Linux**(**RHEL**)和其他类似系统(**Fedora**、**CentOS** 等)中,在 /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 的地址。此指令不应与 HWADDR 同时使用。”
在指定 MAC 地址时,接受大写和小写字母,因为网络功能会将所有字母转换为大写。
您可以执行以下操作来测试更改,而无需重启系统
service network restart
(警告:执行此操作将断开所有现有网络连接!)
在 **Debian**、**Ubuntu** 和类似的系统上,将以下内容放在 /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