REDHAT LINUX修改MAC地址——(已经测试通过)

临时更改MAC地址:

ifconfig eth0 down
ifconfig eth0 hw ether 12:34:56:78:90
ifconfig eht0 up

长期更改MAC地址:
如果你是改的HWADDR=xxxxxxxxxx,那就肯能报错。
详细原因可看ifup脚本! 
里面有一段读取HWADDR并与get_hwaddr得到的真实MAC比较,如果不一致,会采用get_hwaddr得到的网卡真实MAC,并且报告一个信息。 
原脚本摘录(自RHEL4ifup): 
if [ -n "${HWADDR}" ]; then 
    FOUNDMACADDR=`get_hwaddr ${REALDEVICE}`
    if [ "${FOUNDMACADDR}" != "${HWADDR}" ]; then 
        curdev=`ip -o link | awk -F ':' -vIGNORECASE=1 "/$HWADDR/ { print //$2 }"`
        [ -n "$curdev" ] && rename_device "${REALDEVICE}" "${HWADDR}" "${curdev}" || {
            echo $"Device ${DEVICE} has different MAC address than expected, ignoring."
            exit 1 
        }       
    fi
fi 
而在这段之后还有一段 
if [ -n "${MACADDR}" ]; then
   ip link set dev ${DEVICE} address ${MACADDR}
fi

在RHEL3和4中测试通过 
编辑/etc/sysconfig/network-scripts/ifcfg-eth0 (或其他接口) 

RHEL4本来就有一句注释HWADDR=xxxxxxxxxx 那个没用注释掉。

显然由于这段在后面,就会晚执行! 
为了不让前面那段执行报错,就可以删掉或注释掉ifcfg-eth0里的HWADDR=xxxxxxxxxxxx那句话。然后再加上一句MACADDR=12:34:56:78:90

OK