最近不少小伙伴都反馈说,部分OpenWrt 固件每次重启后,MAC 地点都会变化。这种情况在某些应用场景中真是让人抓狂:好比路由器绑定、网管设备识别等等,MAC 一变,全都得重新配置。
为相识决这个头痛的题目,本日给大家带来一个简朴的脚本方案,让你的 OpenWrt 重启后也能稳定保持同一个 MAC 地点。话不多说,下面就是完备的操作流程!
一、脚本方案
这个脚本会在每次启动时,将指定接口的 MAC 地点设为你想要的固定值。再也不消担心重启后 MAC 地点乱跳的题目啦~
代码示例
将以下脚本保存为 /etc/init.d/set_mac.sh:
- #!/bin/sh /etc/rc.common
- # 设置脚本启动优先级为最高
- START=00
- LOG_FILE="/root/set_mac.log" # 日志文件路径
- start() {
- # 定义接口和MAC地址
- local interface="eth0"
- local macaddr="d2:13:a1:46:74:4e" # 你想要的MAC地址
- # 清空之前的日志文件
- > $LOG_FILE
- # 输出开始执行的日志
- echo "开始执行设置MAC地址脚本..." >> $LOG_FILE
- # 检查接口是否存在
- if [ -n "$(ifconfig $interface)" ]; then
- # 输出接口存在的日志
- echo "接口${interface}存在,开始设置MAC地址..." >> $LOG_FILE
- # 关闭接口
- ifconfig $interface down
- echo "接口${interface}已关闭。" >> $LOG_FILE
- # 设置MAC地址
- ifconfig $interface hw ether $macaddr
- echo "已将接口${interface}的MAC地址设置为${macaddr}。" >> $LOG_FILE
- # 启动接口
- ifconfig $interface up
- echo "接口${interface}已启动。" >> $LOG_FILE
- # 输出设置成功的日志
- echo "已成功将接口${interface}的MAC地址设置为${macaddr}。" >> $LOG_FILE
- else
- # 输出接口不存在的日志
- echo "接口${interface}不存在,跳过设置MAC地址。" >> $LOG_FILE
- fi
- # 输出脚本执行完毕的日志
- echo "设置MAC地址脚本执行完毕。" >> $LOG_FILE
- }
复制代码 二、设置脚本权限与自启动
接下来,我们要让脚本可以执行并随设备开机时运行。
1、给脚本执行权限:
- chmod +x /etc/init.d/set_mac.sh
复制代码 2、启用开机自启动:
- /etc/init.d/set_mac.sh enable
复制代码 如许一来,每次启动设备时,OpenWrt 都会自动为 eth0 接口设置指定的 MAC 地点,确保它保持不变,稳定可靠!
三、日记记载
脚本每次运行的日记会保存在 /root/set_mac.log 中,可以随时查察执行状态,确保设置成功。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |