Не могу изменить мой mac-адрес - не могу назначить запрошенный адрес

Интересно, почему я не могу изменить свой mac-адрес, выполнив следующее:

sudo ifconfig wlan0 down
sudo ifconfig wlan0 hw ether 03:a0:04:d3:00:11

Ошибка: SIOCSIFHWADDR: Cannot assign requested address Я погуглил, но не нашел ничего ценного.

П.С. Как обычно, я не могу этого сделать. Ничего не работает. Я взял новый MAC-адрес, который был увеличен на 1 от моего текущего (старый 11: 11: 11: 11: 11: cf , новый 11: 11: 11: 11: 11: d0 )

sudo ifconfig wlan0 down
sudo ifconfig wlan0 hw ether 11:11:11:11:11:d0

Не было никакой ошибки, он даже подключился к Wi-Fi автоматически после того, как я сделал это (даже если я не сделал sudo ifconfig wlan0 up). Я думал, что выиграл. Однако, когда я сделал

sudo ip addr

Я видел тот же Mac-адрес, что и раньше. Ничего не изменилось.

5
задан 3 May 2018 в 21:00

5 ответов

03:a0:04:d3:00:11 не является одноадресным адресом, поскольку первый октет должен быть четным. Посмотрите на изображение ниже, чтобы понять это лучше. Это изображение из Википедии - страница MAC-адреса

, поэтому вместо этого укажите 02:a0:04:d3:00:11, например

enter image description here

0
ответ дан 3 May 2018 в 21:00

попробуйте это с тем, что происходит на самом деле, существует определенный шаблон MAC-адреса, который зарегистрирован только один, поэтому со случайным Mac-адресом вы не можете изменить адрес.

ifconfig | grep HWaddr
ifconfig eth0 down
ifconfig eth0 hw ether 00:1E:68:35:FF:91
ifconfig eth0 up
ifconfig eth0 hw ether 00:1d:92:43:f1:29

Удачи

0
ответ дан 3 May 2018 в 21:00

Я предполагаю, что, поскольку вы пытаетесь изменить HWaddr вашего беспроводного интерфейса, вы пытаетесь провести некоторое беспроводное тестирование и вам необходимо подделать ваш HWaddr. Ну, есть несколько способов сделать это, но я дам вам мой метод, так как я не видел его здесь. Следующий код оболочки bash - это очень простой случайный генератор HWaddr, который я создал. Он не идеален и имеет некоторые ошибки (например, некоторые сгенерированные MAC не разрешены для устройства).

Вот случайная функция HWaddr для bash:

#!/bin/bash

RAND_MAC() {

gen() {
NUM="$(tr -dc '0-9a-f' </dev/urandom | head -c 2)"
echo -n "$NUM:"
}

for c in {1..6}; do

   if [ "$c" -lt "6" ]; then
      gen
   else
      gen | tr -d ':'
   fi

done
}

RAND_MAC

Теперь я объясню, что происходит с этой функцией:

RAND_MAC() будет объявлением функции. Это в значительной степени позволяет интерпретатору оболочки bash знать: «Эй, здесь есть функция». и для этого искать открытые и закрытые скобки {}. После объявления функции RAND_MAC() существует один {, за которым следует объявление новой вложенной функции, которое называется gen(). Вложенный в значительной степени просто означает функцию внутри функции. Функция gen() - это то, что будет случайным образом генерировать октеты случайного HWaddr. gen() является автономной функцией и активируется только во время цикла for под которым она выполняется. Когда вызывается gen(), переменной с именем NUM присваивается значение вывода команды. Команда, которой назначается NUM, является $(tr -dc '0-9a-f' </dev/urandom | head -c 2). Это выведет 2-символьную строку с использованием чисел 0-9 and lower case letters a-f in random order by pulling from / dev / urandom`.

Итак, теперь, когда функция gen() в значительной степени объяснена, остальная часть основной функции RAND_MAC() будет управлять шоу. Цикл for будет повторяться 6 раз. После 6-й итерации цикл for перемещается в done и завершается. В результате получается только что сгенерированный HWaddr, который вы теперь можете использовать с вашим интерфейсом wlan0 или любым другим именем вашего интерфейса. Причина, по которой мы используем функции bash для этого, заключается в том, чтобы не допустить попадания данных этого скрипта в глобальную область. Мы хотим, чтобы такие сценарии были локальными, чтобы избежать ошибок, о которых я не буду здесь говорить. Когда функция сохранена в файле, например, как /usr/bin/macgen, дайте ей разрешение на выполнение.

user@group:~# chmod +x /usr/bin/macgen

Теперь ваш новый скрипт, генерирующий HWaddr, готов к использованию в любое время из командной строки терминала. Вы можете вызвать инструмент с помощью команды macgen.

Теперь пришло время назначить этот новый HWaddr, используя метод, который не был дан.

Многие предлагали использовать ifconfig или, возможно, даже iwconfig для изменения HWaddr вашего беспроводного интерфейса. Ну, ifconfig и даже iwconfig являются устаревшими инструментами и в значительной степени были заменены инструментами, называемыми ip и iw. Инструмент, который я буду использовать в этом ответе - iw. Следующие команды помогут вам создать виртуальный интерфейс, подделать его HWaddr и избежать необходимости менять HWaddr вашего реального физического оборудования. Для меня этот метод гораздо более вменяемый и безопасный, поскольку мы можем просто отключить наш реальный физический интерфейс с помощью ifconfig и использовать полностью виртуальный и поддельный интерфейс, чтобы делать все, что мы хотим:

Во-первых, мы сгенерирует новый HWaddr для использования.

user@group:~# macgen

Затем мы будем использовать ifconfig, чтобы отключить реальное устройство.

user@group:~# ifconfig wlan0 down

Теперь мы можем создать VNIC с iw.

user@group:~# iw dev wlan0 interface add mon0 type monitor addr (new mac here)

И, наконец, мы поднимаем интерфейс.

user@group:~# ifconfig mon0 up

Теперь у вас должен быть поддельный беспроводной интерфейс в режиме монитора, а также поддельный mac-адрес для этого интерфейса. Если вам нужно изменить его режим с монитора на управляемый, чтобы вы могли использовать его для подключения к точке доступа, просто сделайте следующее:

Отключите VNIC:

user@group:~# ifconfig mon0 down

Измените mode:

user@group:~# iwconfig mon0 mode managed

[Quick note] Перед изменением режима убедитесь, что все остальные интерфейсы управляемого режима отключены, в противном случае вы установите флаг ошибки с помощью iwconfig.

Восстановить интерфейс:

user@group:~# ifconfig mon0 up

Проверьте, чтобы убедиться, что конфигурации правильны с:

user@group:~# iw dev

Выходные данные должны выглядеть примерно так:

phy#0
      Interface wlo1
           ifindex 3
           wdev 0x1
           addr 00:11:22:33:44:55
           type managed
           channel 161 (5805 MHz), width: 40 MHz, center1: 5795 MHz
           txpower 50.00 dBm

И когда вы будете готовы избавиться от VNIC, просто удалите его:

user@group:~# iw mon0 del

И затем восстановите ваш реальный интерфейс:

user@group:~# ifconfig wlan0 up

Надеюсь, эта информация поможет , Не стесняйтесь спрашивать, если вы не знаете, что-то из этого.

0
ответ дан 3 May 2018 в 21:00

Как вы знаете, только macchanger - это инструмент для изменения mac-адреса в Linux. Для изменения типа интерфейса wlan0 ifconfig wlan0 down macchanger -r wlan0 ifconfig wlan0 up -r для случайного изменения (автоматически) Вы можете получить здесь список подробностей из Здесь

0
ответ дан 3 May 2018 в 21:00

http://www.microhowto.info/howto/change_the_mac_address_of_an_ethernet_interface.html

ПОСМОТРЕТЬ ЭТО

в нем говорится, что первый номер должен быть четным номер у меня сработало

0
ответ дан 3 May 2018 в 21:00

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

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