Команда 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. Например:

$ 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? Насколько удобной она вам показалась?

Добавить комментарий

Спасибо, что поделились