如何在 16.04 中每次启动时随机更改 MAC

如何在 16.04 中每次启动时随机更改 MAC

在之前的 Ubuntu 上,使用 macchanger 可以轻松实现这一点,但在 16.04 上似乎不起作用。一旦重新建立与互联网的连接,MAC 似乎就会重置为默认值。是的,现在可以在网络管理器 GIU 中完成此操作,但这消除了使用脚本执行此操作的自动化,也消除了 macchanger 的随机 MAC 生成功能。

我看到其他问题指出解决方案是使用 GUI 手动更改它,但我没有看到任何可以像启动脚本那样从命令行随机执行的解决方案。

答案1

怎么做

无需任何第三方应用程序,我们可以简单地使用 NetworkManager 的 cli 工具nmcli来更改终端、脚本等中的 MAC 地址。

nmcli connection modify enp3s0 802-3-ethernet.cloned-mac-address 02:7d:xx:xx:...
  • 将 enp3s0 更改为您想要的连接名称,例如:家庭、办公室 Wi-Fi 等。

如果您尝试克隆 Wi-Fi 连接,则使用802-11-wireless.cloned-mac-address而不是802-3-ethernet.cloned-mac-address

此外,我们需要一种方法来生成随机MAC,这里有一个简单的解决方案来创建一个完全地随机 MAC 地址(基础来源):

echo $RANDOM | md5sum | sed\
 's/^\(..\)\(..\)\(..\)\(..\)\(..\)\(..\).*$/\1:\2:\3:\4:\5:\6/'

最终解决方案

最后在你的脚本中使用类似这样的内容:

mac=$(echo $RANDOM | md5sum | sed 's/^\(..\)\(..\)\(..\)\(..\)\(..\)\(..\).*$/\1:\2:\3:\4:\5:\6/')
nmcli connection modify enp3s0 802-3-ethernet.cloned-mac-address $mac

可能还需要重新加载连接:

nmcli connection down enp3s0
nmcli connection up enp3s0

您可以将其放入.profile或放在您想要的任何其他地方。


创建具有有效 OUI 的随机 mac

如果你不想要完全随机的 mac 地址,那么下载来自 GNU MAC Changer GitHub 存储库。

然后使用此行生成 mac 地址:

shuf -n1 OUI.list | cut -f1-3 -d' ' | tr ' ' ':' | xargs -I company echo\
 company:`echo $RANDOM|md5sum|sed 's/^\(..\)\(..\)\(..\).*$/\1:\2:\3/'`
  • shuf -n1 OUI.list:从该文件中随机选择一行。
  • cut -f1-3 -d' '削减三个必要字段
  • tr ' ' ':'将其转换为我们想要的形式
  • xargs ...创建其他三个随机部分并连接结果。

相关内容