zoukankan      html  css  js  c++  java
  • 转载:VMware linux 虚拟机中修改MAC地址

     1、修改虚拟机的*.VMx文件.

      这种方法最值得推荐,因为这样就类似于重新“烧录”了VMware虚拟机的“物理网卡ROM”。方法是:

      分两种情况:

      a:

      ethernet0.addressType = "static"

      ethernet0.Address = "00:50:56:0A:0B:0C"

      "static"说明VM的"物理网卡"的Mac是静态设定的,你可以改成一个以005056开头的另外一个Mac即可。改完启动VM时如果问你SSID的话,选择“Keep Always”。

      b:

      ethernet0.addressType = "generated"

      uuid.location = "56 4d dc f1 ff aa 75 ea-f1 b9 ee 0d 68 9c 65 5c"

      uuid.bios = "56 4d ed 23 13 8c 96 91-7c 68 b2 09 8b aa bb cc"

      ethernet0.generatedAddress = "00:0c:29:aa:bb:cc"

      "generated"说明VM的"物理网卡"的Mac是系统随机动态设定的,你可以通过将uuid.bios后六位及ethernet0.generatedAddress后六位改成你想要改成的以000c29开头的Mac即可。

    2、修改Linux系统里相关 /etc/sysconfig/network-scripts/ifcfg-eth0文件Mac值.

      vi /etc/sysconfig/network-scripts/ifcfg-eth0

      MacADDR=xx:xx:xx:xx:xx:xx

      :wq 保存退出

      reboot

    3、修改Linux系统里相关rc.local文件Mac

      通过写脚本的方法即可

    4其它方法

    • 方法1:

      # ifconfig ethX down

      # ifconfig ethX hw ether NEW_MAC_ADDR

      # ifconfig ethX up

      但是这样重启后就失效了,需要再敲一遍。当然也可以写入rc.local来解决

    • 方法2:

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

      # ip link set ethX address NEW_MAC_ADDR

      但是依旧重启后失效

    • 方法3:

      对于RedHat系统,

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

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

      MACADDR {NEW_MAC_ADDR}

      保存退出即可

    关于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地址的


  • 相关阅读:
    快速幂 快速乘法
    扩展欧几里得学习笔记
    求逆序数数目(树状数组+离散化)
    隐式图的遍历
    随机数生成
    推倒重来
    动态规划初步
    子集生成
    东大oj1155 等凹函数
    P1278 单词游戏
  • 原文地址:https://www.cnblogs.com/moonson/p/1557162.html
Copyright © 2011-2022 走看看