Как найти MAC-адрес в Linux
Что такое MAC-адрес
MAC-адрес (физический или аппаратный адрес) — уникальный идентификатор сетевого интерфейса. Он работает на канальном уровне (уровень 2 модели OSI) и обычно занимает 48 бит: первые 24 бита — идентификатор производителя, последние 24 бита — уникальный идентификатор устройства.
Определение: MAC-адрес — 48‑битная строка в формате шестнадцатеричных байт, например 01:23:45:67:89:ab.
Важно: некоторые виртуальные интерфейсы и современные драйверы могут поддерживать смену MAC (spoofing) или использовать рандомизацию для приватности.
Когда нужен MAC-адрес
- Статическое сопоставление в DHCP (выдать фиксированный IP по MAC).
- Фильтрация доступа на уровне коммутатора или точки доступа (white/blacklist).
- Настройка Wake-on-LAN.
- Диагностика сетевых проблем и определение устройств в локальной сети.
Командная строка: быстрые способы найти MAC-адрес
Ниже — команды, которые чаще всего используются. Запускайте их в терминале. Некоторые команды требуют привилегий root или установки пакетов.
Использование ip
Команда ip показывает интерфейсы и их параметры:
ip link showВ выводе для каждого интерфейса есть метка link/ether и рядом MAC‑адрес. Чтобы посмотреть конкретный интерфейс:
ip link show dev interface_nameПример: ip link show dev ens33.

Использование ifconfig
ifconfig — классическая утилита из пакета net-tools. На современных системах может отсутствовать по умолчанию.
Показать все интерфейсы (включая выключенные):
ifconfig -aПоказать конкретный интерфейс:
ifconfig interface_nameВ выводе MAC обычно рядом с меткой ether.

Примечание: если ifconfig не установлен, установите пакет net-tools: sudo apt install net-tools или sudo yum install net-tools.
Использование ethtool
ethtool — утилита для управления драйверами сетевых адаптеров. Для получения MAC:
ethtool -P interface_nameОна выведет постоянный (permanent) MAC, если это поддерживается драйвером. Для установки ethtool: sudo apt install ethtool или sudo yum install ethtool.

Чтение /sys/class/net
В каталоге /sys/class/net для каждого интерфейса есть файл address с MAC‑адресом.
Список интерфейсов:
ls /sys/class/netПоказать MAC конкретного интерфейса:
cat /sys/class/net/interface_name/addressПример:
cat /sys/class/net/ens33/addressЭтот способ работает без дополнительных утилит и полезен в скриптах.

Графический интерфейс (GUI)
В популярных окружениях рабочего стола (например, GNOME) MAC‑адрес можно найти в настройках сети.
Шаги (пример для GNOME/Ubuntu):
- Откройте «Параметры» или «Settings».
- Перейдите в раздел «Сеть».
- Выберите нужный интерфейс и нажмите значок шестерёнки (Cog).
- В разделе деталей ищите «Hardware Address» или «Аппаратный адрес» — это и есть MAC.


Примечание: в других DE (KDE, XFCE, MATE) путь похож, но названия пунктов могут отличаться.
Найти MAC другого устройства в локальной сети
Если нужно узнать MAC удалённого хоста в той же подсети, используйте ARP или arping.
Использование arp
- Пропингуйте целевой IP, чтобы запись появилась в ARP-кеше:
ping -c1 - Посмотреть ARP‑таблицу:
arp -n | grep Вывод покажет MAC‑адрес, связанный с IP.
Ограничение: arp показывает результаты только для устройств в локальной сети и только если ARP-запись актуальна.
Использование arping
arping отправляет ARP-запросы напрямую на канальном уровне и полезен, если нужно получить ответ немедленно.
Установка:
Debian/Ubuntu:
sudo apt install arpingRHEL/CentOS/Fedora:
sudo yum install arpingПримеры использования:
sudo arping -c 1 Если у вас несколько интерфейсов, укажите интерфейс отправителя:
sudo arping -c 1 -I interface_name Пример:
sudo arping -c 1 -I ens33 192.168.42.133В ответе будет MAC‑адрес удалённого хоста.

Частые ситуации и советы
- ifconfig отсутствует: установите пакет net-tools.
- ethtool может показывать permanent MAC (жёсткий адрес) и current MAC (если адрес сменён программно).
- Виртуальные интерфейсы (vmbr, veth, docker0) имеют собственные MAC‑адреса — учитывайте это при диагностике.
- Wi‑Fi интерфейсы иногда используют рандомизацию MAC при сканировании для приватности — это не тот же MAC, который используется для подключения.
- На некоторых ноутбуках/дистрибутивах есть UI‑опция «Randomize MAC» (Рандомизация MAC) — отключите её, если требуется постоянный MAC для DHCP.
Как изменить MAC-адрес (коротко)
Изменение MAC — полезно для тестов или обхода жестких фильтров. Делайте это только если понимаете риски и имеете право.
Пример смены (потребуются root‑права):
sudo ip link set dev interface_name down
sudo ip link set dev interface_name address 02:01:02:03:04:08
sudo ip link set dev interface_name upПроверить:
ip link show dev interface_nameВажное: некоторые драйверы или аппаратные ограничения могут предотвращать смену MAC.
Плейбук: найти MAC и добавить статическую привязку в DHCP (шаблон)
- Определите интерфейс на клиенте: ip link show.
- Получите MAC: cat /sys/class/net/IF/address или ip link show dev IF.
- На DHCP-сервере добавьте запись вида (пример ISC DHCPD):
host client-name {
hardware ethernet 01:23:45:67:89:ab;
fixed-address 192.168.1.50;
}- Перезапустите DHCP-сервер: sudo systemctl restart isc-dhcp-server.
- На клиенте освобождаете и запрашиваете адрес снова: sudo dhclient -r && sudo dhclient.
Критерии приёмки
- Клиент получил IP, совпадающий с записью на DHCP.
- ARP-параметры подтверждают соответствие MAC и IP.
- Логи DHCP показывают успешную выдачу с нужным MAC.
Чек-листы по ролям
Администратор сети:
- Проверить источник MAC (физический/виртуальный).
- Убедиться, что MAC не рандомизируется.
- Добавить статическую привязку в DHCP и документировать её.
Пользователь или домашний администратор:
- Выполнить ip link show или открыть настройки сети.
- Если используете Wi‑Fi, проверьте опции рандомизации в Network Manager.
Разработчик/DevOps:
- В скриптах используйте /sys/class/net/IF/address.
- Для контейнеров проверяйте veth и bridge‑интерфейсы.
Отладка и типичные ошибки
- Нет записи в /sys/class/net: возможно модуль драйвера не загружен или интерфейс отключён.
- Команда arp возвращает пусто: цель в другой подсети или ARP‑запись удалена.
- arping не получает ответ: целевой хост недоступен или ICMP/ARP фильтруется.
- MAC выглядит как ff:ff:ff:ff:ff:ff или 00:00:00:00:00:00 — это некорректно, проверьте драйвер и кабель.
Ментальные модели и подсказки
- MAC — как «серийный номер» сетевой платы; IP — как «почтовый адрес» в сети.
- Если проблема на локальном сегменте — используйте ARP/arping; если через роутер — MAC другого сегмента недоступен напрямую.
- Всегда отличайте постоянный аппаратный MAC (permanent) от текущего (current), который может быть подменён.
Decision flowchart (Mermaid)
flowchart TD
A[Нужно найти MAC?] --> B{Локальная машина или удалённая}
B --> |Локальная| C[Использовать ip link или /sys/class/net]
B --> |Удалённая в подсети| D[ping -> arp или arping]
C --> E{Доступен GUI?}
E --> |Да| F[Открыть настройки сети в DE]
E --> |Нет| G[Использовать ip/ifconfig/ethtool]
D --> H{Ответ от arping?}
H --> |Да| I[Записать MAC]
H --> |Нет| J[Проверить сетевое оборудование и маршрутизацию]Факт-бокс
- Формат MAC: 48 бит (обычно 6 байт) в виде 6 пар в hex, разделённых «:».
- Уровень модели OSI: 2 (канальный).
1‑строчная глоссарий
- MAC: аппаратный адрес интерфейса.
- IP: логический адрес уровня 3.
- ARP: протокол сопоставления IP → MAC в локальной сети.
- ethtool: утилита для управления параметрами NIC.
Совместимость и примечания для локали
- Команды одинаковы во всех дистрибутивах Linux, но пакеты (net-tools, ethtool, arping) могут требовать установки.
- В российских/европейских сетях правила те же — обратите внимание на политики безопасности и журналы оборудования.
Краткое резюме
Найти MAC‑адрес в Linux просто: для локального интерфейса используйте ip link или /sys/class/net, для удалённых устройств — arp или arping. Помните о виртуальных интерфейсах, рандомизации MAC и о том, что смена MAC возможна не на всех устройствах. В статье приведён плейбук и чек-листы для быстрых действий.
Важно: перед изменением MAC убедитесь, что у вас есть права и понимание последствий для сети.
Похожие материалы
Звук в Godot: эффекты и фоновая музыка
Отключение HDMI-CEC на PS5 — инструкция
Как добавить субтитры к фильмам и сериалам
Как выбрать TLD — руководство по верхнеуровневым доменам
Как фрилансеру выбирать выгодные проекты