免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123下一页
最近访问板块 发新帖
查看: 8948 | 回复: 27

如何修改mac地址让它一直生效? [复制链接]

论坛徽章:
0
发表于 2006-05-30 09:47 |显示全部楼层
在论坛上看到大家关于如何修改mac地址:
sbin/ifconfig eth0 down
sbin/ifconfig eth0 hw ether 00 11 22 33 44 55
sbin/ifconfig eth0 up
通过ifconfig可以看到修改已经生效,可是重启机器后又恢复成了原来得mac.
不知道大家有什么好的方法?

论坛徽章:
0
发表于 2006-05-30 10:32 |显示全部楼层
写个 script,在开机后自动初始化一些你想要开机后自动完成的东西
参考 /etc/rc.local

论坛徽章:
0
发表于 2006-05-30 10:56 |显示全部楼层
rc.local中是否可以调整其先后顺序让mac执行于应用程序之前?

论坛徽章:
0
发表于 2006-05-30 11:14 |显示全部楼层
可以,修改 /etc/rc.sysinit 即可,把你想要的东西插到里面

论坛徽章:
0
发表于 2006-05-30 13:29 |显示全部楼层
原帖由 sunmoonsea 于 2006-5-30 09:47 发表
在论坛上看到大家关于如何修改mac地址:
sbin/ifconfig eth0 down
sbin/ifconfig eth0 hw ether 00 11 22 33 44 55
sbin/ifconfig eth0 up
通过ifconfig可以看到修改已经生效,可是重启机器后又恢复成了原来得m ...


若是你是使用 RHEL 这类版本的话,请考虑先看一下 /etc/sysconfig/network-scripts/ifup 看一下:


  1. # this isn't the same as the MAC in the configuration filename.  It is
  2. # available as a configuration option in the config file, forcing the kernel
  3. # to think an ethernet card has a different MAC address than it really has.
  4. if [ -n "${MACADDR}" ]; then
  5.    ip link set dev ${DEVICE} address ${MACADDR}
  6. fi
  7. if [ -n "${MTU}" ]; then
  8.    ip link set dev ${DEVICE} mtu ${MTU}
  9. fi
复制代码


可以发现到目前都是流行使用 ip 程式,已经逐渐不使用 ifconfig 程式了。

而你网路卡配置 /etc/sysconfig/network-scripts/ifcfg-eth0 应该就会使用像是:


  1. DEVICE=eth0
  2. IPADDR=192.168.1.1
  3. NETMASK=255.255.255.0
  4. MACADDR=00:11:22:33:44:55
复制代码


其中 MACADDR 应该就是你预期要改的的项目。把预期的网路卡卡号放进去就可以。

改好执行 /etc/init.d/network stop ; /etc/init.d/network start

若是您是使用 SUSE Linux 的话,SuSE 本身就已经给您一个很明确清楚的样板档案,档案名称为 /etc/sysconfig/network/ifcfg.template,该档案里面有提到配置说明。

比方你目前使用中的网路卡的 mac addr 是  00:11:22:33:44:55,那您的系统应该就会有 /etc/sysconfig/network/ifcfg-eth-id-00:11:22:33:44:55 档案,该档案内容会像是:


  1. IPADDR=192.168.1.1
  2. NETMASK=255.255.255.0
复制代码


你要换网路卡卡号的话,就是多 LLADDR 该叙述。

  1. IPADDR=192.168.1.1
  2. NETMASK=255.255.255.0
  3. LLADDR=00:48:54:11:22:33
复制代码


改好后执行 rcnetwork stop ; rcnetwork start 应该就可以了 (用 ifup/ifdown 也可以)。

另外补充的是,使用 ip 程式配置网路介面 mac 组态的话,该配置设定实际底层会是:

  1. ip link set eth0 address 00:48:54:11:22:33
复制代码


提供给你参考。

==

论坛徽章:
0
发表于 2006-05-30 14:19 |显示全部楼层
顶一下,很专业

论坛徽章:
0
发表于 2006-05-30 15:43 |显示全部楼层
# 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
[root@mail1 network-scripts]# service network restart
Shutting down interface eth0:  Device eth0 has different MAC address than expected, ignoring.
                                                           [FAILED]
Shutting down interface eth1:                              [  OK  ]
Shutting down loopback interface:                          [  OK  ]
Setting network parameters:                                [  OK  ]
Bringing up loopback interface:                            [  OK  ]
Bringing up interface eth0:                                [  OK  ]
Bringing up interface eth1:                                [  OK  ]

论坛徽章:
0
发表于 2006-05-30 15:53 |显示全部楼层
To platinum :按照你说得,将脚本插入到/etc/rc.d/rc.sysinit中后,重启后脚本自动执行,mac实现了自动修改.
To kenduest  : 我按照你说得方法在/etc/sysconfig/network-scripts/脚本中更改了mac,重启network服务后生效了,可是reboot后网卡依然是原来得mac.
我直接使用ip程式进行mac得修改,效果还是一样.


刚才看kenduest说得ifup脚本中有一段关于脚本系统时与realdevice得mac得比较,让我觉得如果在这里是不是可以做一下修改.

每次重启时,系统在读mac得时候并不是取得etc/sysconfig/network-scripts/ifcfg-eth0脚本中得mac地址

[ 本帖最后由 sunmoonsea 于 2006-5-30 15:56 编辑 ]

论坛徽章:
0
发表于 2006-05-30 16:14 |显示全部楼层
1. 請貼出你的 ifcfg-eth0 檔案設定

2. 請貼出 ifconfig eth0 顯示結果

==

论坛徽章:
0
发表于 2006-05-30 16:34 |显示全部楼层
[root@mail1 network-scripts]# more ifcfg-eth0
# Advanced Micro Devices [AMD]|79c970 [PCnet32 LANCE]
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.16.4
NETMASK=255.255.255.0
GATEWAY=192.168.16.1
HWADDR=00:11:22:33:44:55
[root@mail1 network-scripts]#
[root@mail1 network-scripts]# ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 00:0C:29:3D:E2:28
          inet addr:192.168.16.4  Bcast:192.168.16.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1176 errors:0 dropped:0 overruns:0 frame:0
          TX packets:142 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:243888 (238.1 Kb)  TX bytes:17065 (16.6 Kb)
          Interrupt:10 Base address:0x1400

我想将mac改成:00:11:22:33:44:55,使用命令修改后,重启后有变回了原来得mac,计算机启动时,是从哪里读取得mac地址哪?

[ 本帖最后由 sunmoonsea 于 2006-5-30 16:44 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP