Команда ifconfig в Linux - установка, синтаксис и примеры использования для настройки сетевых интерфейсов
В панель

Команда ifconfig в Linux: установка, синтаксис и примеры использования

В тексте рассказываем про команду ifconfig, ее синтаксис и компоненты. Разбираем установку и настройку команды ifconfig на Ubuntu и практические примеры по ее работе, а также сравниваем ifconfig с утилитой ip.

Изображение записи

Команда ifconfig в Linux

Команда ifconfig (Interface Configuration) — одна из наиболее распространенных и полезных команд в операционной системе Linux. Она помогает управлять сетевыми интерфейсами. С помощью ifconfig администраторы могут быстро и легко получать информацию о текущем состоянии сетевых интерфейсов и конфигурировать их параметры: IP-адрес, маску, широковещательный адрес, MTU (максимальный размер пакета данных) и другие. Команда также позволяет изменять состояние интерфейсов, включать или выключать их.

Установка ifconfig

ifconfig — стандартная утилита в большинстве дистрибутивов Linux. Обычно она устанавливается вместе с операционной системой, но в некоторых современных дистрибутивах Linux заменяется на более новую утилиту под названием ip.

Если ifconfig нет в вашей системе, можете ее установить. Для этого  откройте терминал и в зависимости от установленной ОС выполните команду с правами суперпользователя.

Для дистрибутивов, основанных на Debian, Ubuntu или их производных:


    sudo apt install net-tools

Fedora, CentOS или их производных:


    sudo yum install net-tools

Для дистрибутивов Arch Linux:


    sudo pacman -S net-tools

Далее введите пароль и подтвердите установку. Команда ifconfig будет установлена.

Синтаксис ifconfig

Рассмотрим синтаксис утилиты ifconfig — разберем основные опции и параметры, которые дают гибкий контроль над сетевыми интерфейсами. Разобравшись в деталях работы с ifconfig, вы сможете с легкостью управлять настройками сети. 

Синтаксис утилиты ifconfig выглядит так:


    ifconfig <option> <interface> <command | parameter | address>

Где:

  • option — опции, которые позволяют получить информацию в нужном виде;
  • interface — имя сетевого интерфейса;
  • command | parameter | addres — команды, параметр или адрес.

Посмотреть документацию по утилите ifconfig можно с помощью команды:


    man ifconfig

Основные опции

При работе с командой ifconfig важно знать основные опции утилиты: -a, -s и -v. Каждая из них обладает своей спецификой и полезна в различных сценариях использования.

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

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

Опция -v отображает расширенную информацию о каждом сетевом интерфейсе. Кроме основной информации, такой как IP-адрес и MAC-адрес, можно увидеть подробные сведения о конфигурации сетевого интерфейса, включая параметры MTU и сетевые флаги. Эта опция особенно полезна при диагностике сетевых проблем, а также для изучения дополнительной информации о конкретном интерфейсе.

Основные параметры для работы с утилитой ifconfig:

  • up — включить интерфейс;
  • down — выключить интерфейс;
  • (-)arp — включить или выключить использование протокола ARP для интерфейса;
  • (-)allmulti — включить или выключить режим multicast;
  • (-)promisc — включить или выключить неразборчивый режим для интерфейса;
  • metric <N> — изменить параметр metric;
  • mtu <N> — изменить максимальный размер пакета;
  • netmask <маска> —  установить маску сети;
  • add <адрес/длина префикса> — добавить IP-адрес для интерфейса;
  • del <адрес/длина префикса> — удалить IP-адрес интерфейса;
  • media —  установить тип внешнего протокола;
  • [-]broadcast <адрес> — установить широковещательный адрес или отключить эту функцию;
  • hw <класс> <адрес> — изменить MAC-адрес для интерфейса;
  • txqueuelen <длина> — размер очереди интерфейса.
Важно: команду ifconfig могут использовать только пользователи с правами root.

Конфигурации, созданные с помощью команды ifconfig в операционной системе Linux, не являются постоянными. Они удаляются после перезапуска системы, так как команда ifconfig служит для временной настройки сетевых интерфейсов во время работы системы.

Чтобы изменения в сетевой конфигурации сохранились и оставались после перезапуска, нужно изменить соответствующие файлы конфигурации сетевых интерфейсов. В большинстве современных дистрибутивов Linux основные файлы конфигурации сетевых интерфейсов — /etc/network/interfaces и /etc/netplan/[имяфайла].yaml. Однако они могут отличаться в зависимости от конкретного дистрибутива Linux.

Для изменения файла конфигурации сетевых интерфейсов вам может понадобиться текстовый редактор с правами администратора. В файле конфигурации вы можете определить статический IP-адрес, маску подсети, шлюз, DNS-серверы и другие параметры для каждого сетевого интерфейса. 

Чтобы изменения вступили в силу, сохраните измененный файл, а затем перезапустите сетевые сервисы или перезагрузите систему.

Просмотр всех настроек сети

Для просмотра информации обо всех активных сетевых интерфейсах на устройстве, включая IP-адрес, MAC-адрес, статусы и другие данные, введите команду:


    ifconfig

Вывод ifconfig:


    [root@trex ~]# ifconfig

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.0.2 netmask 255.255.255.248 broadcast 192.168.0.255
inet6 fe80::f816:3eff:fe4f:e3c9 prefixlen 64 scopeid 0x20<link>
ether fa:16:3e:4f:e3:c9 txqueuelen 1000 (Ethernet)
RX packets 162 bytes 7912 (7.9 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 16 bytes 1216 (1.2 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 0 bytes 0 ( 0KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

Отображение информации обо всех сетевых интерфейсах

Для просмотра информации обо всех интерфейсах, в том числе отключенных, воспользуйтесь опцией -a:


    ifconfig -a

Просмотр настроек сети для определенного интерфейса

Чтобы посмотреть информацию только об одном интерфейсе, передайте его имя в качестве аргумента:


    ifconfig <interface>

Как включить сетевой интерфейс?

С помощью параметра up можно активировать сетевой интерфейс, чтобы он начал принимать и отправлять сетевые пакеты:


    ifconfig <interface> up

или


    ifup <interface>

Как отключить сетевой интерфейс?

Чтобы выключить указанный сетевой интерфейс и прекратить передачу и прием сетевых пакетов через него, воспользуйтесь параметром down:


    ifconfig <interface> down

или


    ifdown <interface>

Как назначить IP-адрес сетевому интерфейсу?

Если в качестве аргументов указать конкретный интерфейс и IP-адрес, это назначит или сменит адрес интерфейса:


    ifconfig <interface> <IP-адрес>

Как назначить маску сети для сетевого интерфейса?

Можно изменить или назначить маску сети для выбранного интерфейса. Для этого используйте команду:


    ifconfig <interface> netmask <маска подсети>

Как назначить широковещательный адрес на сетевом интерфейсе?

С помощью утилиты ifconfig легко сменить широковещательный адрес. Для этого в качестве аргументов передайте параметр broadcast и укажите IP-адрес:


    ifconfig <interface> broadcast <широковещательный_адрес>

Как назначить IP-адрес, маску подсети и широковещательный адрес для сетевого интерфейса?

Используя утилиту ifconfig, можно настроить IP-адрес, маску и широковещательный адрес сети:


    ifconfig <interface> <IP-адрес> netmask <маска подсети> broadcast <широковещательный_адрес>

Как изменить MTU для сетевого интерфейса?

Установить максимальный размер пакета данных (<размер_MTU>) для указанного сетевого интерфейса можно так:


    ifconfig <interface> mtu <размер_MTU>

Как включить promiscuous-режим?

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

Чтобы включить promiscuous-режим, выполните команду:


    ifconfig <interface> promisc

Как отключить promiscuous-режим?

Режим promiscuous отключается с помощью ключа «»:


    ifconfig <interface> -promisc

Как добавить новый псевдоним в сетевой интерфейс?

Утилита ifconfig позволяет настроить виртуальный интерфейс сетевой карты и указать ему свой адрес. При этом нужно соблюдать условие: адреса должны быть из одной сети:


    ifconfig <interface>:<номер подинтерфейса> <IP-адрес>

В этой команде <interface>:<номер подинтерфейса> указывает на второй (виртуальный) подинтерфейс для физического интерфейса. Далее следует IP-адрес, который будет назначен виртуальному интерфейсу.

Это бывает полезно, например, когда требуется настроить несколько IP-адресов на одном физическом интерфейсе, чтобы разделить трафик или хостинг нескольких веб-сайтов на одном сервере.

Как удалить псевдоним для сетевого интерфейса?

Чтобы удалить созданный виртуальный интерфейс, воспользуйтесь аргументом down:


    ifconfig <interface>:<номер подинтерфейса> down

Как изменить MAC-адрес сетевого интерфейса?

MAC-адрес интерфейса меняется командой:


    ifconfig <interface> hw ether <новый_MAC-адрес>

Очистка настроек сетевого интерфейса

Удалить все назначенные IP-адреса и сбросить настройки указанного сетевого интерфейса можно так:


    ifconfig <interface> 0.0.0.0

Примеры использования команды ifconfig

Рассмотрим работу утилиты на примере нескольких команд. Для начала проверим информацию по всем активным интерфейсам. Для этого вводим ifconfig без аргументов.

Рассмотрим работу утилиты на примере нескольких команд. Для начала проверим информацию по всем активным интерфейсам. Для этого вводим ifconfig без аргументов.

Ввели команду ifconfig.
Таким будет вывод в консоли после того, как мы введем команду ifconfig.

Выведем краткую статистику по всем интерфейсам. Используем опцию -s.

Краткая статистика.
Таким будет вывод в консоли, если мы введем опцию -s.

Теперь изменим адрес, маску и широковещательный адрес интерфейса eth1:


    ifconfig eth1 192.168.0.10 netmask 255.255.224.0 broadcast 192.168.0.250

После чего выведем информацию только о нужно нам интерфейсе. Видим, что все данные были изменены.

Вывели информацию только о нужно нам интерфейсе.
Вывод в консоли, красным показаны изменения.

Также проверим выключение интерфейса с помощью параметра down. Используем команду ifconfig и видим, что eth1 больше не отображается — в выводе присутствует только eth0 и lo. Следовательно, интерфейс действительно выключен.

Использовали команду ifconfig с параметром down.
eth1 больше нет.

Включим интерфейс обратно с помощью команды ifconfig eth1 up. Мы увидим, что eth1 стал активным и в выводе ifconfig появилась информация о нем.

Теперь проверим создание виртуального интерфейса. В данном случае создается интерфейс eth1:2 с адресом 192.168.0.20.

Проверяем создание виртуального интерфейса.
Создали eth1:2 с адресом 192.168.0.20.

И в конце очистим все настройки адресации для интерфейса eth1. Для это вводим команду: ifconfig eth1 0.0.0.0.

Очищаем настройки.
Очистили настройки адресации.

Команда ip как альтернатива ifconfig

Вместо команды ifconfig все чаще используется утилита ip. Это более мощный и новый инструмент, он дает больше возможностей для работы с сетевыми интерфейсами, маршрутами и другими сетевыми параметрами. Однако синтаксис команды сложнее и требует больше времени на изучение.

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

Заключение

Команда ifconfig — мощный и при этом достаточно легкий в освоении инструмент для управления сетевыми интерфейсами в операционной системе Linux. Хотя утилита ifconfig частично уступает свое место новым инструментам, она до сих пор широко используется и признана стандартной утилитой во многих системах.

Читайте также: