На предыдущем Ubuntus это было легко достигнуто с macchanger, но это, кажется, не работает над 16,04. MAC просто, кажется, сбрасывает к значению по умолчанию, как только соединение с Интернетом восстановлено. Да, теперь это может быть сделано в администраторе сети GIU, но это удалило автоматизацию наличия сценария, делают это и также удалил случайную установку генерации MAC macchanger.
Я вижу другие вопросы, которые указывают на решение как на использование GUI для изменения его вручную, но я не вижу никого, который может сделать это случайным образом из командной строки, как был бы необходим для сценария начальной загрузки.
Без какого-либо стороннего приложения мы можем просто использовать инструмент CliM NetworkManager nmcli
для изменения MAC-адреса в терминале, сценариях и т. Д.
nmcli connection modify enp3s0 802-3-ethernet.cloned-mac-address 02:7d:xx:xx:...
Если вы пытаетесь клонировать соединение 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
или в любое другое место.
Если вы не хотите использовать совершенно случайный 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 ...
создает три другие случайные части и объединяет результат.