开机设置随机MAC地址

该博客介绍了如何在Linux系统中生成随机MAC地址并应用于网络接口。内容包括MAC地址的特殊位要求,如第47位必须为0以确保全球唯一性,以及在启动网络服务前设置MAC地址的方法。同时,指出了重复MAC地址可能导致的网络问题,如数据包丢失。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

按照国际标准,不管是电脑还是各类小产品的网口,都会有固定的MAC地址,所以设置随机的MAC地址,这是不合法的,只能做测试使用;

linux启动之后,一般会在/etc/init.d目录下的某个文件启动网络

如果网卡已经启动,设置MAC地址需要重启网卡,所以我直接在启动网卡前设置MAC地址,然后启动网卡即可;

生成随机数RANDOM,然后截取6位作为MAC的后3个字节

#!/bin/sh

#产生随机MAC地址
MACADDR=$(echo 0090e6`echo -n $RANDOM | md5sum | sed 's/\(..\)/&/g' | cut -c1-6`)

echo "Starting network..."	
ifconfig eth0 hw ether $MACADDR
/sbin/ifup -a

值得注意的是:MAC地址的第一个字节必须是偶数,因为第47bit,这一位表示MAC地址是全球唯一地址还是本地地址,0表示全球唯一地址,1表示本地唯一地址,这一位也叫G/L位;
对我们嵌入式开发板来说,网络设备上的是固化的MAC地址,因为它唯一标识这个设备,所以只能是单播地址,这一位必须是0,所以第一个字节得是偶数。

如果局域网内(可以是路由或交换机)存在两个相同MAC地址的两个客户机,则服务器与这两个客户机收发数据时,单个客户机会存在丢包现象。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值