• 方法1:

    # ifconfig ethX down

    # ifconfig ethX hw ether NEW_MAC_ADDR

    # ifconfig ethX up

    但是这样重启后就失效了,需要再敲一遍。当然也可以写入rc.local来解决
    例如:
    ifconfig eth0 down
    ifconfig eth0 hw ether 00:01:02:03:04:05  ##注意这里的mac地址用冒号分开,而非是"-",mac地址字母不区分大小写
    ifconfig eth0 up
    这样修改后,下面的地址也改变了:
    [root@elastix82 ~]# more /sys/class/net/eth0/address
    00:01:02:03:04:05
    [root@elastix82 ~]#

  • 方法2:

    与方法1类似,只是用ip命令代替ifconfig:

    # ip link set ethX address NEW_MAC_ADDR

    但是依旧重启后失效
    例如;
    [root@elastix82 ~]# ip link set eth0 address 02:04:06:08:AA:AA
    [root@elastix82 ~]#
    [root@elastix82 ~]# more /sys/class/net/eth0/address         
    02:04:06:08:aa:aa
    [root@elastix82 ~]#

  • 方法3:

    对于RedHat系统,

    # vi /etc/sysconfig/network-scripts/ifcfg-ethX

    注释掉HWADDR行,如果有的话,加入活修改:

    MACADDR=NEW_MAC_ADDR

    保存退出即可

    [root@elastix82 ~]# more /etc/sysconfig/network-scripts/ifcfg-eth0
    # Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+
    DEVICE=eth0
    BOOTPROTO=static
    BROADCAST=192.168.1.255
    DHCPCLASS=
    #HWADDR=0A:C9:F2:31:E5:4F
    MACADDR=02:03:05:07:0A:4F
    IPADDR=192.168.1.82
    NETMASK=255.255.255.0
    NETWORK=192.168.1.0
    ONBOOT=yes
    [root@elastix82 ~]#

关于HWADDR和MACADDR的区别(很容易把HWADDR误认为是控制MAC地址的,因为ifconfig输出时就显示HWaddr的嘛 -.-),可以参考如何修改mac地址让它一直生效?,以及redhat.com.cn上面的在一个以太网接口配置文件中,有那些可以配置的参数?这两篇,摘抄一段如下:

HWADDR=, 其中 以AA:BB:CC:DD:EE:FF形式的以太网设备的硬件地址.在有多个网卡设备的机器上,这个字段是非常有用的,它保证设备接口被分配了正确的设备名,而不考虑每个网卡模块被配置的加载顺序.这个字段不能和MACADDR一起使用.

MACADDR=, 其中 以AA:BB:CC:DD:EE:FF形式的以太网设备的硬件地址.在有多个网卡设备的机器上.这个字段用于给一个接口分配一个MAC地址,覆盖物理分配的MAC地址. 这个字段不能和HWADDR一起使用.

另外,还可以参考ifup脚本中关于HWADDR和MACADDR的处理:

# remap, if the device is bound with a MAC address and not the right device num

# bail out, if the MAC does not fit

if [ -n "${HWADDR}" ]; then

FOUNDMACADDR=`get_hwaddr ${REALDEVICE}`

if [ "${FOUNDMACADDR}" != "${HWADDR}" ]; then

curdev=`ip -o link | awk -F ':' -vIGNORECASE=1 '/$HWADDR/ { print $2 }'`

rename_device "${REALDEVICE}" "${HWADDR}" "${curdev}" || {

echo $"Device ${DEVICE} has different MAC address than expected, ignoring."

exit 1

}

fi

fi

# this isn't the same as the MAC in the configuration filename. It is

# available as a configuration option in the config file, forcing the kernel

# to think an ethernet card has a different MAC address than it really has.

if [ -n "${MACADDR}" ]; then

ip link set dev ${DEVICE} address ${MACADDR}

fi

再看下nameif的man文档:

nameif looks for the interface with the given MAC address and renames it to the name given.

就能知道HWADDR和MACADDR的不同之处了,前者是用来根据HWADDR绑定ethX名称的,后者才是真正用来修改MAC地址的

Linux下修改网卡的mac地址的更多相关文章

  1. Linux 下修改网卡MAC地址

    Linux下修改网卡MAC地址 by:授客 QQ:1033553122 例子:修改网卡接口eth0的mac地址 #停用网卡接口,比如eth0 # ifconfig eth0 down #编辑对应的网卡 ...

  2. Linux:永久修改网卡的MAC地址

    比如:搭建一个虚拟机环境之后,需要N个一样的系统,可以本地复制虚拟机来实现.但是复制之后,网卡的MAC地址一样,无法使用,这时候需要修改网卡的MAC地址,且希望重启系统之后,仍生效的,步骤如下: 1. ...

  3. Linux 下修改网卡接口名

    Linux下修改网卡接口名 by:授客 QQ:1033553122 (测试环境:CentOS-6.0-x86_64-bin-DVD1.iso+Vmware) 作用 可以用于解决类似如下Device n ...

  4. Linux下修改网卡IP、DNS和网关

    Linux下修改网卡IP和网关 建议通过终端字符方式下来修改 一.修改IP地址 vi /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 BOO ...

  5. linux修改网卡的mac地址

    linux在安装一些软件的时候可能会用到修改主机的mac地址的问题,在网卡配置文件 /etc/network/interface 中添加mac地址的方式我在修改重启机器后没有生效,所以采用其他方式 在 ...

  6. CentOS下使用KVM克隆虚拟机自动修改网卡的MAC地址

    克隆完虚拟机之后Mac地址还保留着母机的配置,此时需要修改成新的Mac地址才能继续,网上一般都是这样的手动操作: 参考:http://blog.51cto.com/freedyong/1361907 ...

  7. Linux下修改Oracle监听地址

    如果你的服务器换了ip怎么办? 如果你的服务器换了名字怎么办? 以前的小伙伴怎么办? 以前的老客户怎么办? 没关系,简单教你修改监听地址,老朋友随便找! 想要修改监听地址首先要找到两个文件,确定两样东 ...

  8. linux下修改IP信息

    在Linux的系统下如何才能修改IP信息 以前总是用ifconfig修改,重启后总是得重做.如果修改配置文件,就不用那么麻烦了- A.修改ip地址 即时生效: # ifconfig eth0 192. ...

  9. ubuntu系统复制到其他地方或克隆后,如何正确修改IP及MAC地址的解决方案(图文详解)

    修改ip地址 永久修改MAC地址 方法一: 1)编辑“/etc/init.d/rc.local”文件(sudo gedit /etc/init.d/rc.local) 2)在此配置文件的最后面加上如( ...

随机推荐

  1. 在easyui datagrid中formatter数据后使用linkbutton

    http://ntzrj513.blog.163.com/blog/static/2794561220139245411997/ formatter:function(value,rowData,ro ...

  2. 005. C#发送邮件

    /// <summary> /// 发送邮件 /// </summary> /// <param name="toEmailS">邮件接收者列表 ...

  3. shell流程控制语句

    linux shell有一套自己的流程控制语句,其中包括条件语句(if),循环语句(for,while,until),选择语句(case/select).下面我将通过例子介绍下,各个语句使用方法. 1 ...

  4. OpenJudge计算概论-点和正方形的关系【判断点是否在正方形内部】

    /*======================================================== 点和正方形的关系 总时间限制: 1000ms 内存限制: 65536kB 描述 有 ...

  5. 64位python安装MySQL-python 1.2.5

    在64位的python直接安装MySQL-python 1.2.5有问题,参考http://www.linuxfly.org/windows_install_mysql_python_library/ ...

  6. 通过命令行安装Android app

    手动安装安卓app的命令为:adb install -r C:\Users\Lihao\workspace\Appium_Demo\apps\app_F_1.3.0.apk

  7. CSharp 如何通过拼接XML调用存储过程来查询数据

    每查询数据,需要访问一次数据库,这样会影响性能:如果把查询的数据拼接成XML形式,作为一个参数整体传给存储过程来处理,这只访问数据库一次,执行速度会快很多. 1.C#代码如下: /// <sum ...

  8. java中 == 与 equal区别 转

    java中的数据类型,可分为两类:1.基本数据类型,也称原始数据类型.byte,short,char,int,long,float,double,boolean   他们之间的比较,应用双等号(==) ...

  9. u-boot启动流程分析(1)_平台相关部分

    转自:http://www.wowotech.net/u-boot/boot_flow_1.html 1. 前言 本文将结合u-boot的“board—>machine—>arch—> ...

  10. 返回顶部(解决IE6固定定位)

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...