Команда ifconfig: як використовувати

Команда ifconfig в Unix та подібних системах використовується для налаштування та виведення параметрів мережевого інтерфейсу для мережі за допомогою TCP/IP. Її можна використовувати, щоб призначити адресу мережевому інтерфейсу, налаштувати або переглянути інформацію про його конфігурацію. Як це зробити — розкажемо на прикладах.

Утиліта вважається застарілою, але все одно зустрічається в багатьох інструкціях для налаштування мережі. Ifconfig зручна: з простим синтаксисом і зрозумілим виведенням інформації.

Команда ifconfig не знайдена

Щоб використати команду, потрібно ввести sudo ifconfig. При цьому ви можете отримати помилку “ifconfig команда не знайдена”. У цього може бути декілька причин:

  1. Утиліта встановлена в системі, але інтерпретатор bash не знаходить її. Все тому, що вона може зберігатися в папці з утилітами, доступ до яких є тільки у користувача з правами root. Якщо виконати команду від імені суперкористувача, інтерпретатор її знайде.
  2. Якщо ви все одно отримуєте помилку — програма не встановлена.

Установка ifconfig

Ifconfig хоч і застаріла, але багато системних адміністраторів звикли працювати з нею. Утиліта була видалена з багатьох дистрибутивів після появи ip, тому може бути не встановлена ​​у вас за замовчуванням. Хоч в ip більше можливостей, у неї складніший синтаксис. 

* ip — утиліта командного рядка в Linux, яка дозволяє налаштовувати мережеву підсистему та замінює утиліти ifconfig, route та arp.

Щоб використовувати ifconfig, спочатку потрібно встановити пакет net-tools, до якого входять програми ifconfig, netstat, dig, hostname, route, arp та iptunnel. Ці програми є основою мереж Linux.

Встановити ifconfig в Ubuntu і Debian можна командою:

$ sudo apt install net-tools

В ArchLinux:

$ sudo pacman -S net-tools

У CentOS 7:

$ sudo yum install net-tools

У Fedora:

$ sudo dnf install net-tools

Після цього можна користуватися утилітою і жодної помилки не буде.

Синтаксис команди ifconfig

Синтаксис утиліти дуже простий. Якщо викликати її без параметрів, вона видасть список мережевих інтерфейсів, підключених до системи. Також ви побачите їх характеристики: IP-адресу, адресу шлюзу, розмір пакета, частоту для бездротових мереж та інші параметри. 

Налаштування інтерфейсу можна змінювати, якщо вказати потрібний інтерфейс та відповідні команди. 

Синтаксис виглядає так:

$ ifconfig опції інтерфейс команда параметри адреса

Інтерфейс — мережевий інтерфейс, параметри якого ви хочете змінити або подивитися про нього інформацію.

Які можуть бути команди:

  • up та down — вмикає або вимикає інтерфейс;
  • [-]arp — вмикає або вимикає використання протоколу ARP, який визначає MAC-адресу іншого комп’ютера за IP-адресою;
  • [-] promisc — вмикає або вимикає нерозбірливий режим для інтерфейсу, при якому мережева плата дозволяє приймати всі пакети незалежно від того, кому вони адресовані;
  • [-]allmulti — вмикає або вимикає режим multicast. Це режим широкомовлення, у якому мережевий пакет одночасно спрямовується певній кількості адресатів: не одному, як в unicast, але й не всім, як у broadcast;
  • metric — змінює параметр метрики мережі — спеціального значення, яке означає кількість переходів та впливає на вибір маршруту в мережі. У таблиці маршрутизації з двох однакових маршрутів більш оптимальним буде той, у якого краща метрика маршруту;
  • mtu — змінює максимальний розмір пакета;
  • netmask — встановлює маску мережі, що дозволяє визначати за IP-адресою адресу підмережі та хоста, комп’ютера, пристрою цієї підмережі;
  • add — додає IP-адресу для інтерфейсу;
  • del — видаляє IP-адресу інтерфейсу;
  • media — встановлює тип зовнішнього протоколу;
  • [-]broadcast — встановлює широкомовну адресу або відключає цю функцію;
  • hw — встановлює апаратну або MAC-адресу для інтерфейсу;
  • txqueuelen — встановлює розмір черги інтерфейсу.

Параметри та адреса потрібні не для кожної команди. Опції — більш глобальні аргументи. Їх дві:

  • -a — застосовує команду до всіх інтерфейсів. Стане в пригоді, якщо ви хочете відключити або включити всі мережеві інтерфейси;
  • -s — виведе список інтерфейсів без подробиць.

Приклади використання команди ifconfig

Розберемо найкорисніші команди для налаштування мережевих інтерфейсів у Linux. 

  • Переглянути всі налаштування мережі 

Для цього використаємо команду ifconfig без параметрів. Це виведе список активних інтерфейсів з усіма подробицями про них. Ще так можна перевірити призначену IP-адресу сервера: 

$ sudo ifconfig  

  • Подивитися інформацію про всі інтерфейси

Якщо використовувати команду нижче, то ми отримаємо інформацію про активні та неактивні мережеві інтерфейси на сервері: 

$ sudo ifconfig -a

  • Подивитися інформацію про певний інтерфейс

Для прикладу візьмемо інтерфейс eth0, тоді команда виглядатиме так:

$ sudo ifconfig eth0

  • Подивитися перелік інтерфейсів з мінімальною інформацією про них

Вводимо в ifconfig опцію -s:

$ sudo ifconfig -s

  • Ввімкнути чи вимкнути інтерфейс

Використовуємо команду up та вказуємо інтерфейс, щоб увімкнути його:

$ sudo ifconfig eth0 up

Або команду down, щоб його вимкнути:

$ sudo ifconfig eth0 down

  • Призначити IP-адресу мережевому інтерфейсу

У команді ifconfig прописуємо ім’я інтерфейсу eth0 та IP-адресу, яку хочемо встановити. Наприклад: sudo ifconfig eth0 172.16.25.126 

  • Призначити маску мережі 

Додаємо в ifconfig команду netmask та ім’я інтерфейсу — eth0: 

$ sudo ifconfig eth0 netmask 255.255.224.0

  • Призначити на мережевому інтерфейсі широкомовну адресу

Якщо додати до ifconfig команду broadcast, то ми встановимо широкомовну адресу для даного інтерфейсу:

$ sudo ifconfig eth0 broadcast 192.168.0.255

  • Змінити MTU для мережевого інтерфейсу

mtu встановить максимальну одиницю передачі для інтерфейсу. Це дозволить встановити ліміт розмірів пакетів, що передаються інтерфейсом. Щоб встановити 1000 як максимальний об’єм для інтерфейсу, використовуємо sudo ifconfig eth0 mtu 1000

  • Увімкнути або вимкнути Promiscuous режим

Promiscuous або нерозбірливий режим дозволяє приймати абсолютно всі пакети, що проходять через інтерфейс.

Багато мережевих інструментів використовують такий режим, щоб отримувати та аналізувати пакети, що проходять через мережевий інтерфейс. Ввімкнути його можна командою:

$ sudo ifconfig eth0 promisc

І ось так вимкнути:

$ sudo ifconfig eth0 -promisc

  • Призначити відразу кілька параметрів

Щоб одночасно призначити інтерфейсу, наприклад, IP-адресу, адресу підмережі та широкомовну адресу, виконайте команду ifconfig у такому вигляді:

$ sudo ifconfig eth0 172.16.25.125 netmask 255.255.254.0 broadcast 172.16.25.63

  • Додати новий псевдонім до мережевого інтерфейсу

За допомогою функції alias в ifconfig можна налаштувати додаткові мережеві інтерфейси. Щоб додати псевдонім для eth0, виконайте:

$ sudo ifconfig eth0:0 172.16.25.127

Важливо: псевдонім адреси знаходиться в тій же масці підмережі. Якщо IP-адреса мережі eth0 — 172.16.25.125, то адреса псевдоніма має бути 172.16.25.127.

Видалити псевдонім можна так:

$ sudo ifconfig eth0:0 down

  • Змінити MAC-адресу

Щоб це зробити, додайте до ifconfig параметр hw. Ще треба вказати тип мережі: ether для дротового підключення Ethernet, ax25, ARCnet та netrom. Наприклад:

$ sudo ifconfig eth0 hw ether AA:BB:CC:DD:EE:FF

  • Отримати інформацію про помилки

Для цього додамо опцію -v:  sudo ifconfig -v

  • Ввімкнути та вимкнути підтримку протоколу ARP

Щоб увімкнути: sudo ifconfig eth0 arp 

Щоб вимкнути: sudo ifconfig eth0 -arp

Це основні приклади використання ifconfig. Вона не дає всіх можливостей для повноцінного налаштування мережевих інтерфейсів, як це робить ip. Працюючи з ifconfig, доведеться використовувати ще такі утиліти, як route або arp.

По суті, налаштування за допомогою ifconfig виглядатиме так:

$ sudo ifconfig eth0 up

$ sudo ifconfig eth0 add 192.168.1.10

$ sudo ifconfig eth0 netmask 255.255.254.0

$ sudo ifconfig eth0 broadcast 192.168.1.255

$ sudo route add default gw 192.168.1.1

У прикладі ми налаштували інтерфейс eth0, де використали IP-адресу для комп’ютера 192.168.1.10, мережну маску 255.255.254.0 і шлюз для виходу в мережу 192.168.1.1. Залишилося вказати DNS-сервер і інтернет має працювати.

Підсумок

Тепер ви знаєте, що таке команда ifconfig, що вона робить та як її використовувати. Ви можете спробувати працювати з нею або розібратися з новішою утилітою ip, щоб вибрати для себе комфортний варіант.

Якщо ви вирішите зупинитися на ifconfig, то вам може знадобитися повна інструкція для цієї команди. Щоб її отримати, можете викликати man ifconfig через термінал.

Чи стикалися ви до цього з командою ifconfig? Наскільки зручною вона вам здалася?

Залишити відповідь

Дякуємо, що поділились