Якщо ви адмініструєте систему Linux, обов’язково будуть моменти, коли вам потрібно буде знати MAC-адресу вашої системи. Ця інформація може знадобитися з кількох причин. Можливо, ви хочете, щоб DHCP призначила вам фіксовану IP-адресу. Для цього вам знадобиться MAC-адреса, щоб ви могли додати зіставлення IP-адреси та MAC-адреси в конфігурації вашого DHCP-сервера.
Вам також може знадобитися ця інформація для фільтрації MAC-адрес, щоб дозволити або заблокувати певні пристрої у вашій мережі. Або, можливо, ви хочете налаштувати Wake-on-LAN. Яка б не була причина, ось кілька різних способів знайти MAC-адресу у вашій системі Linux.
Що таке MAC-адреса?
MAC-адреса, також відома як фізична або апаратна адреса, є унікальним ідентифікатором, пов’язаним з мережевою інтерфейсною картою¦майже кожного пристрою, підключеного до мережі.
MAC-адреса функціонує на другому рівні (рівень каналу передачі даних) моделі OSI і має довжину 48 біт, де перші 24 біти є ідентифікатор виробника, а останні 24 біти є унікальним ідентифікатором для цієї мережевої карти. Як і у випадку з IP-адресами, ви можете змінити MAC-адресу вашої мережної картки.
Знайдіть MAC-адресу в Linux у командному рядку
Ось кілька найшвидших і найпростіших способів знайти свою MAC-адресу в Linux:
Використання команди ip
Ви можете використовувати команду ip в Linux для перегляду та налаштування фізичних та віртуальних мережевих інтерфейсів, маршрутизації, політик маршрутизації та тунелів. Він може додавати або видаляти мережний інтерфейс, призначати/видаляти IP-адреси, відображати стан мережних інтерфейсів та виконувати набагато більше корисних завдань.
Ви можете дізнатися MAC-адресу вашої системи за допомогою наступної команди ip:
ip link <span class="hljs-keyword">show</span>
Ця команда показує відомості про всі мережеві інтерфейси, включаючи їх MAC-адреси, крім мітки link/ether, як показано нижче:
Щоб знайти MAC-адресу певного мережного інтерфейсу, використовуйте наступний синтаксис:
ip link <span class="hljs-keyword">show</span> dev
Використання команди ifconfig
Команда ifconfig в Linux дозволяє налаштовувати та відображати стан мережних інтерфейсів. Крім того, він також може активувати та деактивувати мережний інтерфейс.
Щоб дізнатися MAC-адреси всіх доступних мережевих інтерфейсів (навіть якщо вони деактивовані), використовуйте команду ifconfig з прапором -a таким чином:
ifconfig -a
Щоб дізнатися MAC-адресу конкретного мережного інтерфейсу, вкажіть його ім’я як аргумент:
ifconfig interface_name
Щоб дізнатися MAC-адреси всіх активних мережних інтерфейсів, використовуйте команду ifconfig без будь-яких прапорів:
ifconfig
У вихідних даних ви можете знайти MAC-адресу вашого інтерфейсу поруч із етикеткою, як показано нижче:
Використання утиліти ethtool
ethtool – це утиліта Linux, яка дозволяє запитувати та налаштовувати мережні драйвери та параметри мережної карти. За допомогою утиліти ethtool ви також можете запросити у мережевого інтерфейсу його MAC-адресу.
Ось команда для цього:
ethtool -P interface_name
Отримати MAC-адресу з каталогу /sys/class/net
Каталог /sys/class/net містить інформацію про мережні пристрої, підключені до системи. У цьому каталозі є окремий підкаталог кожного з мережевих інтерфейсів, наприклад /sys/class/net/ens33 і /sys/class/net/ens37.
Кожен підкаталог містить різні файли для кожного мережного атрибута, такого як MAC-адреса, робочий стан мережного пристрою, його дуплекс, MTU і т. д. Інформація про MAC-адресу зберігається у файлі address.
Щоб отримати список інтерфейсів, підключених до вашої системи, використовуйте таку команду:
ls /sys/<span class="hljs-class"><span class="hljs-keyword">class</span>/<span class="hljs-title">net</span></span>
Щоб знайти MAC-адресу певного мережного інтерфейсу, використовуйте наступний синтаксис команди:
cat /sys/<span class="hljs-class"><span class="hljs-keyword">class</span>/<span class="hljs-title">net</span>/<span class="hljs-title">interface_name</span>/<span class="hljs-title">address</span></span>
Наприклад, щоб знайти MAC-адресу мережного інтерфейсу, скажімо, ens33, команда виглядатиме так:
cat /sys/<span class="hljs-class"><span class="hljs-keyword">class</span>/<span class="hljs-title">net</span>/<span class="hljs-title">ens33</span>/<span class="hljs-title">address</span></span>
Як знайти MAC-адресу, використовуючи графічний інтерфейс
Ті, хто віддає перевагу графічному інтерфейсу для своїх повсякденних завдань, можуть знайти свою MAC-адресу графічно, використовуючи мережевий менеджер, що поставляється з їх дистрибутивом. Як і в Ubuntu, можна використовувати налаштування мережевих підключень.
Відкрийте Налаштування (Settings) у дистрибутиві Linux, клацнувши правою кнопкою миші на робочому столі або меню додатків. На лівій панелі перейдіть на вкладку Мережа (Network). Ви побачите всі мережеві інтерфейси, підключені до вашої системи.
Щоб дізнатися MAC-адресу мережного інтерфейсу, натисніть значок Cog (налаштування) перед ним.
Відкриється нове вікно з детальною інформацією про ваш мережний інтерфейс. Тут ви знайдете MAC-адресу поруч із міткою Апаратна адреса (Hardware Address).
У цьому посібнику ми використовували GNOME для зображень, але інші середовища робочого столу також будуть мати аналогічні налаштування тільки з іншими мітками.
Знайдіть MAC-адресу іншої системи в локальній мережі
Подібно до вашої власної MAC-адреси, ви також можете знайти MAC-адреси інших систем у локальній мережі.
Використання команди arp
Ви можете використовувати ARP (Address Resolution Protocol) або протокол дозволу адрес, щоб дізнатися MAC-адресу для даної IP-адреси. Щоб знайти MAC-адресу іншої системи в локальній мережі, пропінгуйте її IP-адресу за допомогою:
ping -c1 <span class="hljs-tag"><<span class="hljs-name">IP</span> <span class="hljs-attr">address</span>></span>
Команда ping використовуватиме ARP для отримання MAC-адреси віддаленої системи. Отримавши цю інформацію, вона зберігається в таблиці ARP, яку можна переглянути, використовуючи:
arp -n | grep <span class="hljs-tag"><<span class="hljs-name">IP</span> <span class="hljs-attr">address</span>></span>
Ця команда надрукує MAC-адресу для цієї IP-адреси.
Використання утиліти arping
Утиліта arping допомагає виявляти та перевіряти локальні системи в мережі. Він функціонує на другому рівні моделі OSI і відправляє запит ARP в систему, щоб визначити, чи він активний і чи відповідає він. Вона відрізняється від утиліти ping, що працює на третьому рівні.
Ви можете встановити arping, використовуючи такі команди:
У дистрибутивах на основі Debian:
sudo apt <span class="hljs-keyword">install</span> arping
У дистрибутивах на основі RHEL:
sudo yum <span class="hljs-keyword">install</span> arping
Після встановлення знайдіть MAC-адресу іншої системи в мережі, вказавши її IP-адресу як аргумент за допомогою наступної команди:
sudo arping -c 1 <span class="hljs-tag"><<span class="hljs-name">IP</span> <span class="hljs-attr">address</span>></span>
Якщо у вашій системі кілька мережевих адаптерів, ви можете вказати, з якого інтерфейсу повинен бути відправлений запит, використовуючи прапорець -I (заголовна “i”), за яким слідує ім’я інтерфейсу:
sudo arping -c 1 -I interface_name <span class="hljs-tag"><<span class="hljs-name">IP</span> <span class="hljs-attr">address</span>></span>
Наприклад, наступна команда надішле один запит ARP зі свого інтерфейсу ens33 на IP-адресу віддаленої системи 192.168.42.133.
<span class="hljs-selector-tag">sudo</span> <span class="hljs-selector-tag">arping</span> <span class="hljs-selector-tag">-c</span> 1 <span class="hljs-selector-tag">-I</span> <span class="hljs-selector-tag">ens33</span> 192<span class="hljs-selector-class">.168</span><span class="hljs-selector-class">.42</span><span class="hljs-selector-class">.133</span>
На виході ви отримаєте відповідь ARP від цільової системи, що містить її MAC-адресу.
Легко знайти свою MAC-адресу в Linux
Враховуючи різні методи пошуку MAC-адреси в Linux, ви можете вибрати будь-яку зручну для вас.
Як і в Linux, ви також можете знайти MAC-адресу у Windows та macOS; однак у них різні набори команд та графічний інтерфейс.