Как я могу автоматически изменить свой MAC-адрес каждый раз, когда мое сетевое устройство возросло или вниз?

macchanger автоматический сценарий не работает.

Я искал здесь, прежде чем я спросил и все, что я нашел, должен был выполнить macchanger в/etc/rc.local с этим простым сценарием:

ifconfig enp2s0 down
macchanger -r enp2s0
ifconfig enp2s0 up

(Я просто изменяю eth0, потому что мое имя устройства является enp2s0),

Очевидно это только устанавливает случайный MAC-адрес при запуске, но если я повторно подключаю свое сетевое устройство, это всегда получает мой реальный MAC-адрес, таким образом, это не то, что я искал.

Я пытался, по крайней мере, оставить постоянный имитировавший адрес, но опция имитации Mac в менеджере по стандартной сети человечности ничего не делает, она всегда отправляла мой действительный адрес.

Я не могу помнить точно, где, но я считал где-нибудь, что это мог быть отказ systemd, но я не действительно уверен, как обработать ту вещь или если действительно ее отказ.

Что правильный путь состоит в том, чтобы получить случайный MAC-адрес каждый раз, когда я подключаю свое сетевое устройство в Ubuntu? У меня заканчиваются идеи.

2
задан 14 November 2017 в 21:21

2 ответа

Работа от сообщения в блоге Gnome. Эти настройки для для Ubuntu 17.10

Через CLI

Во-первых, получите название проводного интернет-соединения

nmcli connection show

Во-вторых, установите интернет-соединение для генерации или "стабильного" или "случайного" адреса

nmcli connection modify "wired_connection_name" ethernet.cloned-mac-address random

Для использования WiFi wifi.cloned-mac-address. На администраторе сети 1.2.6 необходимо будет установить MAC-адрес вместо random.

Наконец, проверьте свой MAC-адрес, снизьте соединение и и проверьте Ваш MAC-адрес снова

ifconfig | grep Ether
nmcli connection down "wired_connection_name"
nmcli connection up "wired_connection_name"
ifconfig | grep Ether

Через GUI

программа nm-connection-manager может также использоваться для доступа к этой установке, поднимая экран как один показанный ниже, где выпадающее поле для 'Клонированного MAC-адреса' может быть изменено на одну из нескольких настроек.

enter image description here

3
ответ дан 2 December 2019 в 02:45

Мы можем достигнуть этой цели простым сценарием, который использует ifconfig.

Создайте исполняемый файл сценария в каталоге /etc/network/if-up.d, таким образом сценарий будет выполняться каждый раз когда команда ifup выполняется, включая при системном запуске. Давайте назовем сценарий mac-changer:

sudo touch /etc/network/if-up.d/mac-changer
sudo chmod +x /etc/network/if-up.d/mac-changer
sudo nano /etc/network/if-up.d/mac-changer
  • Скопируйте ниже содержания сценария и используйте в nano: Shift+Insert для вставки; Ctrl+O и Вводят, сохраняют; Ctrl+X для выхода.

Содержание сценария mac-changer должен быть:

#!/bin/bash

change_mac(){
        # Prevent enless loop on error
        if (( COUNT >= 10 )); then exit 0; else COUNT=$(( COUNT + 1 )); echo "Attempt: $COUNT"; fi
        # Generate a new MAC address
        MAC="$(echo $RANDOM | md5sum | head -c 17 | sed -r 's/(..)./\1:/g')"
        # Change the MAC address of the target network interface
        /sbin/ifconfig "$1" hw ether "${MAC}"
        # Chech whether the MAC is successfully changed anf if is not call the function again
        if [ $? -ne 0 ]; then change_mac; fi
        # Log the change
        echo "Interface: $1 | MAC: $MAC"
}

# Call of the function; Change 'enp0s25' with the actual interface in use; Create a log file `/tmp/mac-changer-...`
change_mac 'enp0s25' > /tmp/mac-changer-enp0s25 2>&1

Примечания:

  • В большинстве случаев, если Вы хотите, Вы могли бы выполнить сценарий непосредственно sudo и MAC-адрес будет изменен:

    sudo /etc/network/if-up.d/mac-changer
    
  • Обратите внимание, что некоторые сетевые интерфейсы не поддерживают функцию изменения MAC.

Вот демонстрация этого, как сценарий работает:

enter image description here

Ссылки:

0
ответ дан 2 December 2019 в 02:45

Другие вопросы по тегам:

Похожие вопросы: