1

Когда я установил Oracle VirtualBox, он создал сетевой адаптер в моей хост- системе под названием «VirtualBox Host-Only Network». Согласно ipconfig /all , этот виртуальный сетевой адаптер имеет MAC-адрес 0A-00-27-00-00-10 . Как я могу изменить этот MAC-адрес?

Поскольку я ожидаю некоторой путаницы по этому поводу, короткое пояснение: я не хочу менять MAC-адрес сетевой карты виртуальной машины, мне нужно изменить MAC-адрес виртуального сетевого адаптера, созданного в моей хост-системе.

Что я пробовал

В VirtualBox: Файл -> Настройки -> Сеть -> Хост-сети. Свойства сетевого адаптера не включают MAC-адрес. Добавление нового адаптера также не позволяет указывать MAC-адрес.

Я нашел и попробовал это решение, которое предлагает найти в реестре MAC-адрес и изменить его там. Однако ни поиск 0A0027000010 , ни поиск 0A-00-27-00-00-10 никаких результатов.

Я также попытался изменить MAC-адрес с помощью диспетчера устройств, но в списке "Адаптер Ethernet для виртуального хоста VirtualBox", перечисленном там, нет вкладки "Дополнительно" или каких-либо свойств, таких как "Сетевой адрес".

Некоторое копание в реестре привело меня к HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}\0018 котором есть такие ключи, как «VirtualBox Host-Only Ethernet Adapter». Но ни один из ключей не похож на мой текущий MAC-адрес.

Среда

Моя хост-система - Windows 7 Professional. Я использую VirtualBox 5.0.18.

Фон

Зачем мне это нужно? Вчера я обновил VirtualBox. Это изменило MAC-адрес с 0A-00-27-00-00-00 на 0A-00-27-00-00-10 . Я использую программу, которая использует лицензии для каждой машины, и машина идентифицируется по одному из ее MAC-адресов. К сожалению, лицензия была привязана к MAC виртуального сетевого адаптера.

2 ответа2

1

Я заметил, что при обновлении до VirtualBox 5.x он продолжал назначать случайный MAC-адрес и не соблюдал настройки реестра MAC, которые я установил в VirtualBox 4.x. Когда я удалил VirtualBox 5.x, раздел реестра для адаптера Host Only исчез. После переустановки я не увидел новую запись MAC.

Когда я откатился до VirtualBox 4.3.38 и добавил параметр реестра MAC, VirtualBox использовал указанное мной значение. Кажется, поведение изменилось для VirtualBox 5.x.

Также обратите внимание, что Microsoft Loopback Adapter может позволить вам указать свой собственный MAC, но обратите внимание, что MAC вступит в силу только в том случае, если он находится в диапазоне "локально управляемых адресов".

1

Простая и понятная правда в том, что это невозможно в текущих версиях VirtualBox. Причину легко понять, посмотрев на исходный код драйвера:

pAdapter->MacAddr.au8[0] = 0x08 | 2; // DB: computes to 10 == 0x0A
pAdapter->MacAddr.au8[1] = 0x00;
pAdapter->MacAddr.au8[2] = 0x27;

pAdapter->MacAddr.au8[3] = (uIfIndex >> 16) & 0xFF;
pAdapter->MacAddr.au8[4] = (uIfIndex >> 8) & 0xFF;
pAdapter->MacAddr.au8[5] = uIfIndex & 0xFF;

Он просто использует индекс интерфейса для создания MAC-адреса. Этот индекс управляется Windows и предоставляется драйверу при инициализации в структуре NDIS_MINIPORT_INIT_PARAMETERS .

Вы можете легко проверить индекс в команде route print :

===========================================================================
Interface List
 10...c0 7c d1 c0 37 71 ......Realtek PCIe GBE Family Controller
 13...0a 00 27 00 00 0d ......VirtualBox Host-Only Ethernet Adapter
...

13 равно 0x0D, и это MAC-адрес.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .