Ubuntu не работает ifconfig

Обновлено: 06.07.2024

Для обмена данными между хостами от одного компьютера к другому используется технология, которая называется ethernet. Чтобы обмен данными стал возможен, как минимум необходимо настроить сеть между двумя устройствами.

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

Установка

Сейчас все больше дистрибутивов linux отказываются от установки утилиты ifconfig по умолчанию. Поэтому чтобы ее использовать нужно предварительно установить. Это связано с тем что вышла более новая команда "ip" и ifconfig считается устаревшей утилитой, однако пользователи линукс уже привыкли использовать ее и выучили некоторые параметры этой команды.

Чтобы определить установлена ли сетевая утилита достаточно ввести ее название без аргументов.

  1. команда не найдена;
  2. command not found;
  3. 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.

Примеры

Запустим команду без параметров.

ifconfig без аргументов

Как видно на скриншоте выше команда без ключей покажет информацию о всех включенных интерфейсах.

  • Eth0 и l0 - название интерфейса.
  • RX- cчетчик приема пакетов.
  • TX - счетчик передачи пакетов.
  • inet addr - IP-адрес четветой версии.
  • inet6 addr - IP-адрес версии шесть.
  • Bcast - широковещательный адрес.
  • UP BROADCAST RUNNING MULTICAST - означает, что интерфейс включен.
  • Mask - маска подсети.
  • collisions:0 - коллизия.
  • txqueuelen:1000 - длина очереди.

Выключим interface lo.

ifconfig lo down

Чтобы включить обратно lo выполним:

Вывести информация о всех интерфейсах, включая отключенные, поможет ключ -a:

Покажем конфигурацию только интерфейса eth0.

Ifconfig eth0

Чтобы назначить сетевому адаптеру IP-адрес 192.168.20.2, необходимо написать название команды, interface и сам IP.

Вместо net-tools теперь iproute2, а вместо ifconfig теперь ip a

Если вы работаете с командной строкой в Linux, то почти наверняка используете команду ifconfig. Возможно, использовали её уже много лет. Она упоминается во многих инструкциях и книгах. И тем больше, я думаю, вы удивитесь, узнав, что пакет net-tools (которому принадлежит ifconfig) больше не устанавливается по умолчанию, поскольку теперь считается устаревшим.

Его место занял пакет iproute2, а вместо ifconfig нужно использовать команду ip. Запуск ifconfig без аргументов:

или в укороченной форме:


Почему заменили ifconfig

ifconfig – это программа из пакета net-tools, который на протяжении долгого времени не мог в полной мере поддерживать сетевой стек Linux. Он также по-прежнему использует ioctl для настройки сети, что является безобразным и менее продуктивным способом взаимодействия с ядром.

Множество изменений в сетевом коде Linux и множество новых возможностей недоступны при использовании net-tools: многолучеввая маршрутизация, политики маршрутизации (смотрите RPDB). route позволяет делать глупые вещи, такие как добавление множества маршрутов к одному месту назначения с той же метрикой.

  • ifconfig не сообщает должный аппаратный адрес для некоторых устройств.
  • Вы не можете настроить ipip, sit, gre, l2tp и т.д. во встроенных в ядро статичных туннелях.
  • Вы не можете создавать устройства tun или tap.
  • Способ добавления множества адресов данному интерфейсу также имеет бедную семантику.
  • Вы также не можете настраивать систему контроля трафика Linux используя net-tools.

Примеры использования ip. Аналоги ip для ifconfig

Сбор информации

Первое, что большинство людей изучает с командой ifconfig – это как узнать, какой IP адрес назначен интерфейсу. Это обычно делается командой ifconfig без флагов или аргументов. Чтобы сделать это же самое с командой ip, запустите её так:

Эта команда выведет список интерфейсов и связанную с ними информацию.


Допустим, вы хотите увидеть только информацию по IPv4 (для ясности). Чтобы сделать это, наберите команду:

Или вы хотите увидеть информацию только по IPv6:

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

Вы можете задать ещё более конкретные условия этой командой. Если вы хотите увидеть IPv4 по интерфейсу wlan0, наберите команду:

Вы можете составить список только из работающих интерфейсов используя:

Изменение интерфейса

Теперь мы входим в сердце команды… использование её для изменения интерфейса. Допустим вы хотите назначить конкретный адрес первому ethernet интерфейсу eth0. С командой ifconfig это выглядело бы примерно так:

С командой ip это выглядит примерно так:

Вы можете немного сократить её:

Ясно, что вы должны знать маску подсети адреса, который вы назначаете.

Что насчёт того, чтобы удалить адрес из интерфейса? С командой ip вы также можете сделать это. Например, для удаления только что назначенного для eth0 адреса, наберите следующую команду:

Что если вы хотите просто очистить все адреса для всех интерфейсов? Командой ip это делается так:

Другой ключевой аспект команды ip – это возможность поднимать/отключать интерфейс. Чтобы отключить интерфейс eth0 наберите:

Чтобы обратно поднять eth0, используйте

С командой ip вы можете также добавлять и удалять шлюз по умолчанию. Работать с этим примерно так:

Добавление псевдонима (алиаса) интерфейса с ifconfig:

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

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

Вы также можете установить Maximum Transmission Unit (MTU) вышего сетевого интерфейса командой:

После сделанных изменений, используйте

для проверки, что изменения возымели эффект.

Управление таблицей маршрутизации

С командой ip вы также можете управлять системными таблицами маршрутизации. Это очень мощный элемент команды ip, и вам следует использовать его с осторожностью.

Допустим, вы хотите просмотреть все таблицы маршрутизации. Чтобы сделать это, наберите команду:

Вывод может выглядеть примерно так:

16

Теперь, допустим, вы хотите переправлять весь трафик через шлюз 192.168.5.0, подключённый через сетевой интерфейс eth0. Чтобы сделать это, наберите команду:

Для удаления этого же маршрута наберите:

18

ARP протокол

Добавьте любую запись в вашу ARP таблицу:

Отключите преобразование ARP на устройстве с ifconfig:

Цель этой заметки – дать начальное представление о команде ip. Конечно необязательно полностью отказываться от использования ifconfig, но теперь программа не предустановлена по умолчанию во многие дистрибутивы. И нужно быть готовым использовать команду ip.

При написании этой заметки использовались материалы:

Связанные статьи:

Рекомендуемые статьи:

11 Комментарии

Все прекрасно работает,

ifconfig в debiane прекрасно работает от рута.

И да, он таки от обычного пользавателя пишет, что команда не найдена, но под рутом все прекрасно работает.


За всю историю юзанья, никогlа не сталкивался с невозможностью чего либо соорудить при работе с ifconfig.

Нет чтобы сделать аналог без больших изнений, нет бли =н непонятно для чего все усложнили. Отправилил эту команду туда же куда и NetworkManager

sudo apt-get install net-tools

Есть "философия UNIX". Следуйте ей, если работаете в этой системе.

Как говорится, со своим уставом в чужой монастырь не ходят.

Не превращайтесь в Windows 🙁

«Unix прост. Но надо быть гением, чтобы понять его простоту» — Деннис Ритчи.

«Unix не предназначен для ограждения своих пользователей от глупостей, поскольку это оградило бы их и от умных вещей» — Дуг Гвин.

Это ни в коем случае не претензия. Вы меня не правильно поняли.

первое и самое важное, linux никогда не был unix, да и вообще linux - это не OS, это оболочка ядра(пакетный менеджер) и рассказывать что debian стал для домохозяек очень смешно, изначально для десктопа - ubuntu ( клон деба) а сам деб инетерсней использовать на серверах, и да , кто использует его на серверах - очень давно отказались от net-tools из-за дырявости данного пакета, + если ты уже так силь хочешь себе, скорее всего на десктоп unix - консервативный , тогда тебе нужно смотреть на FreeBSD и вообще на BSD системы, а насчет LFS какая разниза если ты влюбом варианте будетшь использовать одинаковое ядро ? и какая разница где ты будешь ставить пакеты в gentoo или в debian - хочешь позамарачивать, ставь в дебиане пакеты с исходного кода ))

- "lnux" не nix подобная ли ось?

- более конкретно, не ядро ли этой оси "lnuux"?

- точно ли ubuntu клон debiana? может быть он на нём основан?

- в чём "дырявость" пакета net-tools? только конкретно;

- кто эти мифические парни, "кто использует его на серверах - очень давно отказались от net-tools из-за дырявости данного пакета"? В моём понимании, представлении и по опыту "локальных войн", сервер настроил, запустил, и забыл его ковырять. На сервере "не играются" с пакетами. На нём вообще не играются. Контролируют его работу.

И ещё, LFS и ставить пакеты в Debian из исходного кода, это так же как угол в 100 градусов и температура кипения воды. Цифра одна, а остальное не очень 😉

И кстати, коллега, теперь не eth0, а epn3s0. И полноценный su теперь не su, а su - 😉

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

Но когда вы попытаетесь использовать эту команду, то иногда можете получить ошибку ifconfig команда не найдена. Здесь все понятно, команда не найдена, но это довольно популярная утилита, и странно, что она не поставляется по умолчанию. В этой статье мы рассмотрим что делать если вы сталкиваетесь с такой ошибкой и почему так происходит.

Ошибка ifconfig команда не найдена

Первая причина почему вы можете получать эту ошибку, очень проста. Скорее всего, утилита установлена в вашей системе, но интерпретатор bash не может ее найти. Дело в том, что в Linux существует несколько папок для хранения исполняемых файлов. Все утилиты, которые может выполнять только суперпользователь расположены в каталоге /sbin или /usr/sbin.


Соответственно, обычному пользователю не нужно давать доступ к этим файлам, поэтому эти каталоги доступны только root, а в переменную среды PATH, из которой bash берет каталоги для поиска программ для пользователя они даже не добавлены. Проще говоря, вам достаточно только запустить программу от имени суперпользователя:


Если даже после этого вы получаете эту ошибку, то это означает, что программа таки не установлена. Дело в том, что утилита довольно давняя, и некоторым разработчикам показалось, что нужно разработать что-то более совершенное, поэтому была разработана утилита ip. Она имеет больше возможностей и лучше. Но она непривычна и имеет сложный синтаксис. Теперь команда ip используется по умолчанию во многих дистрибутивах, а ifconfig удалена.

sudo apt install net-tools

sudo dnf install net-tools

sudo yum install net-tools

sudo pacman -S net-tools

После завершения установки пакета, а это будет выполнено очень быстро, вы можете пользоваться утилитой и ошибки ifconfig command not found больше не будет. Только запускайте ее с помощью sudo. Если вы решили больше не использовать ifconfig смотрите статью про утилиту ip linux.

Выводы

network-logo

Если при попытке активировать команду в «Терминале» вы сталкиваетесь с ошибкой «ifconfig: команда не найдена», значит программное обеспечение, отвечающее за эту команду, отсутствует в системе. Сегодня мы бы хотели показать не только метод исправления этой неполадки, но и рассказать о более новом альтернативном варианте, заменяющим ifconfig.

Способ 1: Добавление утилиты ifconfig

Тем пользователям, которые привыкли задействовать именно эту команду, данный способ покажется оптимальным. Инструмент ifconfig не был удален вовсе, он просто отсутствует в стандартном наборе приложений системы, а добавить его можно, выполнив следующие инструкции:

  1. Для начала рекомендуем еще раз убедиться в том, что ifconfig недоступна. Запустите классический терминал любым удобным вариантом.
  2. Присвойте постоянные права суперпользователя, написав su - .
  3. Укажите пароль от рут-доступа и ожидайте появления новой строки ввода.
  4. Здесь просто введите ifconfig и нажмите на клавишу Enter.
  5. Если по-прежнему появляется уведомление об отсутствии команды в системе, установите набор компонентов net-tools, введя apt install net-tools .
  6. Ожидайте завершения добавления и настройки новых библиотек.
  7. По завершении инсталляции еще раз выполните ifconfig , чтобы убедиться в успешности операции.
  8. Узнать больше информации о правилах используемой утилиты поможет строка ifconfig --help .

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

Способ 2: Использование команды ip

Существует ряд причин, по которым команда ifconfig была заменена на ip в стандартной комплектации ОС на ядре Linux. Во-первых, она не разрешала настраивать систему контроля трафика, некорректно работала с некоторыми устройствами, не отображала их аппаратный адрес и не позволяла генерировать сетевые устройства TUN/TAP. Все эти недочеты были исправлены и доработаны, но уже внесены в функциональность ip. Например, просмотреть основную информацию по интерфейсу можно, введя:

Выдача в «Терминале» после активации указанной выше команды будет соответствовать той, которая была бы показана при ifconfig , но с некоторыми дополнительными данными.

Дополнительные сведения по протоколу IPv4 смотрим командой:

Еще присутствует возможность получить данные по конкретному интерфейсу, для этого вводим

Отобразить список работающих интерфейсов:

Одной из главных задач при настройке сети всегда считалась процедура присвоения определенного локального адреса конкретному интерфейсу. с помощью команды ip это делается так:

Если надобность в присвоении интерфейса для IP-адреса отпала, такая цепь достаточно легко удаляется.

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

Установленный маршрут также легко удаляется через

Благодаря двум приведенным выше способам вы теперь знаете, как можно не только восстановить работу команды ifconfig в Debian подобных системах, но и какая есть достойная альтернатива этой устаревшей утилите. Использовать ли новый инструмент или вернуться к старому — решать только вам.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Я предполагаю, что вы цитируете эту статью OMG Ubuntu.

Ubuntu (18.04) «поддерживает цветные эмоции» означает, что вы сможете видеть цветные эмоции всей системы, а не только в некоторых конкретных приложениях.

В настоящее время в Ubuntu 17.10 или более старых версиях вы можете увидеть цветные эмуляторы без каких-либо дополнительных модификаций, например, Firefox:

Но те же emojis могут отображать как простые монохроматические чертежи линий в других приложениях, например gEdit:

Несмотря на то, что GNOME 3.26 (по умолчанию в Ubuntu 17.10) поддерживает цветной эмулятор, на самом деле это недостающая функция в Ubuntu 17.10 как некоторые необходимые пакеты, которые являются fontconfig v2. 12.5, cairo v1.15.7, а шрифт, поддерживающий цветные эмоции, отсутствует ( ).

Это будет исправлено в Ubuntu 18.04, и вы сможете увидеть цветную эмуляцию повсюду из коробки, а также иметь хорошее приложение для выбора системы для их выбора.

4 ответа

ifconfig устарел, и это было довольно много лет. Новый парень в городе - это команда ip, которая может настраивать IP-адреса, маршруты и все, что связано с сетями.

Вы можете установить ifconfig с sudo apt install net-tools, если вам это обязательно нужно , Если нет, начните обучение ip.

Короче говоря, он удаляется, потому что вы не должны его использовать. Он имеет посредственную поддержку IPv6, команда ip является лучшей заменой. Я нахожу источники, говоря, что ifconfig устарел в 2012 году, поэтому я не удивлен, что он наконец удален.

Возможно, вы сможете установить его на 18.04, но в будущих версиях он может полностью исчезнуть. Я считаю, что он не устанавливается по умолчанию в качестве предупредительного кадра: learn ip.

Таким образом, ifconfig, вероятно, находится в специальном классе. В предыдущих версиях Ubuntu он включался в минимальные установки. Теперь он постепенно прекращается, и вы явно должны его установить. Это невозможно сделать, чтобы указать, что отсутствуют какие-либо другие пакеты.

Для дальнейшего уточнения команда ip включена в минимальную установку Ubuntu 18.04, нет необходимости устанавливать что-либо дополнительное. – 64pi0r 3 May 2018 в 20:37 Вы можете установить ifconfig, если вы установили один из различных пакетов, которые до сих пор не обновлялись, чтобы использовать ip, или если вы обновили версию более старой версии Ubuntu. Но вы должны знать, что ifconfig может отсутствовать в современных системах и не должны полагаться на него. И фактически ifconfig устарел в 2009 году . – Michael Hampton 4 May 2018 в 07:03 Для тех, кто слишком ленив, чтобы прочитать документацию, команда ip address или ip a - это новый способ перечислить интерфейсы и IP-адреса системы. – Hitechcomputergeek 4 May 2018 в 07:45 Используйте ip -c a, чтобы выделить IP-адреса с цветами. – jingyu9575 4 May 2018 в 17:16

ifconfig устарел, и это было довольно много лет. Новый парень в городе - это команда ip, которая может настраивать IP-адреса, маршруты и все, что связано с сетями.

Вы можете установить ifconfig с sudo apt install net-tools, если вам это обязательно нужно , Если нет, начните обучение ip.

Короче говоря, он удаляется, потому что вы не должны его использовать. Он имеет посредственную поддержку IPv6, команда ip является лучшей заменой. Я нахожу источники, говоря, что ifconfig устарел в 2012 году, поэтому я не удивлен, что он наконец удален.

Возможно, вы сможете установить его на 18.04, но в будущих версиях он может полностью исчезнуть. Я считаю, что он не устанавливается по умолчанию в качестве предупредительного кадра: learn ip.

Таким образом, ifconfig, вероятно, находится в специальном классе. В предыдущих версиях Ubuntu он включался в минимальные установки. Теперь он постепенно прекращается, и вы явно должны его установить. Это невозможно сделать, чтобы указать, что отсутствуют какие-либо другие пакеты.

ifconfig устарел, и это было довольно много лет. Новый парень в городе - это команда ip, которая может настраивать IP-адреса, маршруты и все, что связано с сетями.

Вы можете установить ifconfig с sudo apt install net-tools, если вам это обязательно нужно , Если нет, начните обучение ip.

Короче говоря, он удаляется, потому что вы не должны его использовать. Он имеет посредственную поддержку IPv6, команда ip является лучшей заменой. Я нахожу источники, говоря, что ifconfig устарел в 2012 году, поэтому я не удивлен, что он наконец удален.

Возможно, вы сможете установить его на 18.04, но в будущих версиях он может полностью исчезнуть. Я считаю, что он не устанавливается по умолчанию в качестве предупредительного кадра: learn ip.

Таким образом, ifconfig, вероятно, находится в специальном классе. В предыдущих версиях Ubuntu он включался в минимальные установки. Теперь он постепенно прекращается, и вы явно должны его установить. Это невозможно сделать, чтобы указать, что отсутствуют какие-либо другие пакеты.

ifconfig устарел, и это было довольно много лет. Новый парень в городе - это команда ip, которая может настраивать IP-адреса, маршруты и все, что связано с сетями.

Вы можете установить ifconfig с sudo apt install net-tools, если вам это обязательно нужно , Если нет, начните обучение ip.

Короче говоря, он удаляется, потому что вы не должны его использовать. Он имеет посредственную поддержку IPv6, команда ip является лучшей заменой. Я нахожу источники, говоря, что ifconfig устарел в 2012 году, поэтому я не удивлен, что он наконец удален.

Возможно, вы сможете установить его на 18.04, но в будущих версиях он может полностью исчезнуть. Я считаю, что он не устанавливается по умолчанию в качестве предупредительного кадра: learn ip.

Таким образом, ifconfig, вероятно, находится в специальном классе. В предыдущих версиях Ubuntu он включался в минимальные установки. Теперь он постепенно прекращается, и вы явно должны его установить. Это невозможно сделать, чтобы указать, что отсутствуют какие-либо другие пакеты.

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