临时更改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,并且报告一个信息。
原脚本摘录(自RHEL4的ifup):
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
在RHEL4中测试通过
编辑/etc/sysconfig/network-scripts/ifcfg-eth0 (或其他接口)
RHEL4本来就有一句注释HWADDR=xxxxxxxxxx 那个没用注释掉。
显然由于这段在后面,就会晚执行!
为了不让前面那段执行报错,就可以删掉或注释掉ifcfg-eth0里的HWADDR=xxxxxxxxxxxx那句话。然后再加上一句MACADDR=12:34:56:78:90
OK!