5W site logo 5W - мой домашний сайт-блог с картинками, кино и плюшками.

mac-adres-change.txt

Как узнать MAC адрес сетевой карты: смена МАК адреса в Linux
virens начинающим, сети

Иногда может потребоваться узнать или изменить MAC адрес сетевой карты в Linux, например, если он используется для авторизации доступа в интернет. Изменить MAC-адрес очень просто, для этого существуют специальные системные файлы, которые нужно немного подправить. Это довольно простая, хотя по первому разу не очевидная, процедура.


Временная смена MAC-адреса в Linux
Для этого набираем

sudo ifconfig eth0 hw ether xx:xx:xx:xx

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


Постоянный изменённый MAC-адрес в Linux
Для этого идём в /etc/network/if-pre-up.d/ и создаём там от рута файл, например имени pre-up.

В этот файл пишем следующее:

#! /bin/sh
ifconfig eth0 hw ether 00:00:00:00

Нули замените своим мак-адресом. Чтобы изменения вступили сразу же, без перезагрузки, даём команду:

/etc/init.d/networking restart

При этом в первый раз (особенно при работающем интерфейсе) может вылезти такое:

# /etc/init.d/networking restart
Setting up IP spoofing protection: rp_filter.
Reconfiguring network interfaces...SIOCDELRT: No such process
ifup: interface lo already configured
SIOCSIFHWADDR: Device or resource busy
run-parts: /etc/network/if-pre-up.d/pre-up exited with return code 1
done.

Повторяем команду, на этот раз всё должно быть без шума и пыли:

notebeast:/home/beast# /etc/init.d/networking restart
Setting up IP spoofing protection: rp_filter.
Reconfiguring network interfaces...ifup: interface lo already configured
done.

Всё, MAC изменён и останется таковым и после перезагрузки.

Сменить MAC-адрес в Линукс можно разными способами - на то он и Линукс. Например, можно заменить содержимое /etc/network/interfaces на следующее:

# The primary network interface
allow-hotplug eth0
iface eth0 inet dhcp
hwaddress ether 00:00:00:00:00:00

Нули, как и ранее, заменяем на требуемый MAC-address. В Debian всё проще: в описание интерфейса в /etc/network/interfaces добавляем:

hwaddress ether XX:XX:XX:XX:XX:XX

Другие способы описаны в комментариях к этому посту ниже.


Узнать MAC-адрес сетевой карты в LinuxЧтобы узнать текущий MAC-адрес просто: набираем

sudo ifconfig

И видим нечто вроде:

eth0 Link encap:Ethernet HWaddr 00:0A:E4:53:AA:2D
inet addr:10.26.49.77 Bcast:10.26.63.255 Mask:255.255.240.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:208554 errors:0 dropped:0 overruns:0 frame:0
TX packets:125071 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:40664531 (38.7 MiB) TX bytes:45919980 (43.7 MiB)
Interrupt:21 Base address:0x4c00

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:18511 errors:0 dropped:0 overruns:0 frame:0
TX packets:18511 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:537155 (524.5 KiB) TX bytes:537155 (524.5 KiB)

Красное полужирное выделение и есть MAC-адрес (в данном случае, сетевой карты моего ноутбука).