DD-WRT Mac Clone 终端命令

DD-WRT Mac Clone 终端命令

我正在尝试找出一种方法来调用 DD-WRT v24SP2 中“setup”菜单下的“mac clone”命令。我可以在 GUI 中执行此操作(当然),但我想将其放在脚本中,以便我可以按 cron 进行随机化。

也许我最好解释一下我的困境?我想要创建一个可以运行的脚本,它将随机设置路由器的 MAC 地址以获取新的 IP 地址。我尝试了许多不同的脚本,但似乎没有一个适用于我的路由器型号(Buffalo WZR-HP-G300NH)。放弃脚本后,我决定尝试使用 GUI 中的内置“MAC 克隆”功能;它非常有效。不幸的是,我无法精确地定时 GUI,也无法让它从 GUI 中随机选择 MAC。

以下是我必须将 MAC 设置为随机值的步骤:

MAC=`(date; cat /proc/interrupts) | md5sum | sed -r 's/^(.{10}).*$/\1/; s/([0-9a-f]{2})/\1:/g; s/:$//;'`
echo "00:${MAC}"

回显的值是随机生成的 MAC 地址(它总是以 00 开头,我知道这不好。)。

所以(语法不好),我的问题是:如何使用上述脚本调用用于克隆 MAC 地址的内置函数?

提前致谢!

答案1

我认为您正在寻找一些命令行选项......如下所示:

mac_clone_enable=1

1 表示开启 MAC 克隆,0 表示关闭 MAC 克隆

wan_hwaddr=00:AA:BB:CC:DD:EE

def_hwaddr=00:AA:BB:CC:DD:EE

您想要的随机 MAC 地址同时出现在两者中...我不确定有什么区别,但在我的配置中,它们是相同的。

答案2

这是我的完整自定义脚本,它看起来运行良好:

MAC=`(date; cat /proc/interrupts) | md5sum | sed -r 's/^(.{10}).*$/\1/; s/([0-9a-f]{2})/\1:/g; s/:$//;'`
nvram set mac_clone_enable=1
nvram set wan_hwaddr="00:${MAC}"
nvram set def_hwaddr="00:${MAC}"
nvram commit
echo "00:${MAC}"
/bin/sleep 90
/sbin/reboot

通过 cron 调用它(在管理 --> 管理中),如下所示:

0 0 * * 1,5 root /bin/sh /tmp/custom.sh

确保在 GUI 中保存了 cronjob 后,检查它是否确实在文件系统中配置:

cat /etc/cron.d/cron_jobs

希望这对某些人有帮助。感谢随机 MAC 地址代码。

相关内容