如何(或是否可以)在 /etc/network/interfaces 中运行代码?

如何(或是否可以)在 /etc/network/interfaces 中运行代码?

任务:当接口启动时生成随机 mac。

#this does work to generate a random mac
echo '00 60 2f'$(od -An -N3 -t xC /dev/urandom) | sed -e 's/ /:/g'

/etc/network/interfaces 内部:

auto eth0
iface eth0 inet dhcp
    #This works:
    hw-mac-address aa:bb:cc:dd:ee:ff
    #while this does not when I ifup eth0:
    hw-mac-address $(echo '00 60 2f'$(od -An -N3 -t xC /dev/urandom) | sed -e 's/ /:/g')

有什么想法或建议吗?

答案1

我找到了多个解决方案。其中 1 个是预先准备的,(谢谢 fkraiem)

这需要安装 macchanger。/etc/network/interfaces 如下所示:

auto eth0
iface eth0 inet dhcp
pre-up macchanger -m `echo '00 60 2f'$(od -An -N3 -t xC /dev/urandom) | sed -e 's/ /:/g'` $IFACE

第二个解决方案是对我原来错误的配置的修正。
这个解决方案没有需要安装 macchanger

auto eth0
iface eth0 inet dhcp
hwaddress ether `echo '00 60 2f'$(od -An -N3 -t xC /dev/urandom) | sed -e 's/ /:/g'`

相关内容