前言:
將Mac地址隨機化並固化到本地可以有效避免同一個網絡內,mac地址沖突導致的網絡阻塞問題。
以下是有關的方法:
##
# Copyright By Schips, All Rights Reserved
# https://gitee.com/schips/
# File Name: setMac.sh
# Created : Mon Dec 23
##
#!/bin/sh
# 保存的配置文件
MACFILE=/etc/config/mac
ETHNAME=eth0
# 注: 如果不需要mac以88開頭,則刪除88,並將cut -cl-10 改為 cut -cl-12
makeMacByMd5() {
#使用$RANDOM和md5sum(嵌入式無需移植其他軟件的優秀可選方案)
echo 88`echo $RANDOM | md5sum | sed 's/\(..\)/&/g' | cut -c1-10`
}
makeMacBySSL() {
#使用openssl工具
echo 88`openssl rand -hex 6 |sed 's/\(..\)/&/g;s/:$//' | cut -c1-10`
}
makeMacByPerl() {
#使用perl命令
echo 88`perl -e 'print join("",map{sprintf "%0.2x",rand(256)}(1..6)), "\n"' | cut -c1-10`
}
# 檢查配置是否存在, 否則生成MAC地址
if [ ! -f "$MACFILE" ]; then
# Create HEX code to FILE (使其以88開頭)
echo `makeMacByMd5` > $MACFILE
#echo `makeMacBySSL` > $MACFILE
#echo `makeMacByPerl` > $MACFILE
fi
# Set mac
/sbin/ifconfig $ETHNAME down
/sbin/ifconfig $ETHNAME hw ether `cat $MACFILE`
/sbin/ifconfig $ETHNAME up