Команда ifconfig — синтаксис и примеры
Для обмена данными между хостами от одного компьютера к другому используется технология, которая называется ethernet. Чтобы обмен данными стал возможен, как минимум необходимо настроить сеть между двумя устройствами.
В операционных системах linux для настройки сети есть сетевая утилита ifconfig, она позволяет смотреть сетевые настройки, а также изменять их, делать свою конфигурацию, назначать IP, шлюз, маску подсети и даже мак-адрес.
Установка
Сейчас все больше дистрибутивов linux отказываются от установки утилиты ifconfig по умолчанию. Поэтому чтобы ее использовать нужно предварительно установить. Это связано с тем что вышла более новая команда «ip» и ifconfig считается устаревшей утилитой, однако пользователи линукс уже привыкли использовать ее и выучили некоторые параметры этой команды.
Чтобы определить установлена ли сетевая утилита достаточно ввести ее название без аргументов.
Утилита не установлена, если оболочка командной строки выдаст одно из сообщений:
- команда не найдена;
- command not found;
- not found.
Сама утилита входит в пакет «net-tools», поэтому устанавливать нужно этот пакет.
ВАЖНО! Не надо писать apt «install ifconfig» программа не установится.
Установка на Centos:
yum install net-tools
На Ubuntu:
apt install net-tools
apt install net-tools
Синтаксис
ifconfig ключи interface параметры команда
- -a. Показать все интерфейсы, включая отключенные.
- -s. Краткий список interface.
- up — включить интерфейс.
- down — выключить интерфейс.
- hw — установить мак-адрес.
- netmask — назначить маску подсети.
- broadcast — установить широковещательный адрес
- del — удалить ip-адрес.
- mtu — назначить максимальный размер передаваемого пакета. Для Ethernet по умолчанию 1500.
- arp — включить протокол arp. По умолчанию включен.
- -arp — отключить arp.
- irq — назначить номер прерывания.
Под интерфейсом понимается его название. Например eth0, eth1, eth2, eth3.
Примеры
Запустим команду без параметров.
Как видно на скриншоте выше команда без ключей покажет информацию о всех включенных интерфейсах.
- Eth0 и l0 — название интерфейса.
- RX- cчетчик приема пакетов.
- TX — счетчик передачи пакетов.
- inet addr — IP-адрес четветой версии.
- inet6 addr — IP-адрес версии шесть.
- Bcast — широковещательный адрес.
- UP BROADCAST RUNNING MULTICAST — означает, что интерфейс включен.
- Mask — маска подсети.
- collisions:0 — коллизия.
- txqueuelen:1000 — длина очереди.
Выключим interface lo.
Чтобы включить обратно lo выполним:
Вывести информация о всех интерфейсах, включая отключенные, поможет ключ -a:
Покажем конфигурацию только интерфейса eth0.
Чтобы назначить сетевому адаптеру IP-адрес 192.168.20.2, необходимо написать название команды, interface и сам IP.
ifconfig: команда не найдена. Сообщество Linux расстаётся с Net-Tools
Тяжело расставаться с привычными инструментами в Linux, которыми пользовался годами. Так, при установке OpenMediaVault был озадачен отсутствием команд ifconfig, route и netstat. В результате, простейшая задача по смене ip-адреса неожиданно заиграла новыми красками.
Я как-то упустил тот момент, когда пакет Net-Tools признали устаревшим и ему на смену в Linux пришёл другой сетевой инструмент iproute2. По этой причине последние версии многих дистрибутивов Linux больше не содержат привычных команд ifconfig или route.
На самом деле и iproute2 нельзя назвать чем-то принципиально новым, ведь этот пакет известен ещё с начала 2000-х годов и основным его минусом всегда считалось отсутствие актуальной документации (отсылки типа «смотри исходный код» не считаются).
Что делать, придётся избавляться от старых наработанных привычек и заново изучать новые команды и синтаксис пакета iproute2. Из очевидных плюсов нам обещают больший контроль над сетевыми параметрами и функциями Linux.
Я нашёл неплохой мануал Task-centered iproute2 user guide о практическом использовании iproute2, правда на английском языке https://baturin.org/docs/iproute2/ .
Некоторые примеры использования ip
Самой востребованной функцией, без чего не обходится ни одна настройка сети, остаётся определение IP адреса, назначенного интерфейсу. Ранее это делалось командой ifconfig без каких-либо дополнительных аргументов. Теперь следует писать так:
Команда выведет список интерфейсов и связанную с ними сопутсвующую информацию:
Если требуется вывести информацию, связанную с конкретным интерфейсом, например по беспроводному соединению, командой приобретает следующий вид:
или ещё более конкретизированный запрос с информацией только о IPv4:
Поднятие сетевого интерфейса и изменение ip адреса
Пример включения сетевого интерфейса (как было и как стало):
Теперь давайте назначим адрес сетевому интерфейсу, пусть это будет eth0. Снова, для сравнения, первый вариант будет с использованием команды ifconfig, а второй с ip:
ip a add 192.168.11.101/24 dev eth0
Управление таблицами маршрутизации
Таблицы маршрутизации также управляются командой ip. Вот как можно посмотреть таблицу маршрутизации:
Добавляем новый маршрут (как и в предыдущих примерах по принципу «было-стало»):
route add -net 192.168.11.0/24 dev eth2
ip route add 192.168.11.0/24 dev eth2
или маршрут по умолчанию:
route add default gw 192.168.100.1
ip route add default via 192.168.100.1
Я не ставил целью рассказать о всех возможных вариантах использования iproute2, сам только начинаю привыкать к команде ip и её синтаксису. Кому-то хватит даже этих базовых команд, а дальнейшее изучение каждый желающий может продолжить самостоятельно.
Подписывайтесь на канал Яндекс.Дзен и узнавайте первыми о новых материалах, опубликованных на сайте.
ЕСЛИ СЧИТАЕТЕ СТАТЬЮ ПОЛЕЗНОЙ,
НЕ ЛЕНИТЕСЬ СТАВИТЬ ЛАЙКИ И ДЕЛИТЬСЯ С ДРУЗЬЯМИ.
Исправление ошибки «ifconfig: команда не найдена» в Debian 9
Команда ifconfig используется в операционных системах на Linux для настройки сети или просмотра информации о ней. В дистрибутиве Debian 9 она тоже раньше присутствовала, однако позже было принято решение заменить этот инструмент другими, более подходящими для этой процедуры утилитами. Впрочем, сейчас ничто не мешает вам вернуть эту команду в систему и продолжать использовать ее, нужно лишь провести процедуру обычной инсталляции этого компонента.
Исправляем ошибку «ifconfig: команда не найдена»
Если при попытке активировать команду в «Терминале» вы сталкиваетесь с ошибкой «ifconfig: команда не найдена», значит программное обеспечение, отвечающее за эту команду, отсутствует в системе. Сегодня мы бы хотели показать не только метод исправления этой неполадки, но и рассказать о более новом альтернативном варианте, заменяющим ifconfig. Давайте начнем с пошагового разбора первого способа.
Способ 1: Добавление утилиты ifconfig
Тем пользователям, которые привыкли задействовать именно эту команду, данный способ покажется оптимальным. Инструмент ifconfig не был удален вовсе, он просто отсутствует в стандартном наборе приложений системы, а добавить его можно, выполнив следующие инструкции:
- Для начала рекомендуем еще раз убедиться в том, что ifconfig недоступна. Запустите классический терминал любым удобным вариантом.
Присвойте постоянные права суперпользователя, написав su — .
Укажите пароль от рут-доступа и ожидайте появления новой строки ввода.
Если по-прежнему появляется уведомление об отсутствии команды в системе, установите набор компонентов net-tools, введя apt install net-tools .
Ожидайте завершения добавления и настройки новых библиотек.
По завершении инсталляции еще раз выполните ifconfig , чтобы убедиться в успешности операции.
Теперь вы знакомы с методом возвращения ранее стандартной утилиты в операционную систему Debian 9. Однако стоит понимать, что ей на замену пришел более удобный инструмент, из-за чего есть смысл разобраться в управлении с ним и оставить старые привычки.
Способ 2: Использование команды ip
Существует ряд причин, по которым команда ifconfig была заменена на ip в стандартной комплектации ОС на ядре Linux. Во-первых, она не разрешала настраивать систему контроля трафика, некорректно работала с некоторыми устройствами, не отображала их аппаратный адрес и не позволяла генерировать сетевые устройства TUN/TAP. Все эти недочеты были исправлены и доработаны, но уже внесены в функциональность ip. Например, просмотреть основную информацию по интерфейсу можно, введя ip a .
Выдача в «Терминале» после активации указанной выше команды будет соответствовать той, которая была бы показана при ifconfig , но с некоторыми дополнительными данными. Дополнительные сведения по протоколу IPv4 получаются через ip -4 a , а по IPv6 — ip -6 a . Еще присутствует возможность получить данные по конкретному интерфейсу, для этого вводится ip a show wlan0 , а список работающих интерфейсов отображается после ip link ls up .
Одной из главных задач при настройке сети всегда считалась процедура присвоения определенного локального адреса конкретному интерфейсу. При использовании старой утилиты выглядела строка ввода так: ifconfig eth0 192.168.1.101 , но в новом варианте пользователю потребуется ввести i p a add 192.168.1.101/255.255.255.0 dev eth0 , обязательно указав при этом маску подсети. Обратить внимание следует и на возможное сокращение до ip a add 192.168.1.101/24 dev eth0 .
Если надобность в присвоении интерфейса для IP-адреса отпала, такая цепь достаточно легко удаляется. Всего-то нужно указать ip a del 192.168.1.101/24 eth0 , а в случае необходимости очистки всего списка взаимосвязей лучше использовать сразу ip -s -s a f to 192.168.1.0/24 .
Команда ip также определяет управление таблицами маршрутизации. Таблицей маршрутизации называют список сетевых путей, которые предназначены для определения лучшего маршрута передачи сетевого пакета. Ознакомиться со всеми доступными таблицами позволяет строка ip r .
В ситуациях, когда требуется вручную перенаправить трафик, задействовать лучше тоже команду ip с определенными аргументами. Тогда строка обретет вид, например ip route add 192.168.5.0/24 dev eth0 . Установленный маршрут также легко удаляется через ip route del 192.168.5.0/24 dev eth0 .
Благодаря двум приведенным выше способам вы теперь знаете, как можно не только восстановить работу команды ifconfig в операционной системе Debian 9, но и какая есть достойная альтернатива этой устаревшей утилите. Использовать ли новый инструмент или вернуться к старому — решать только вам.