Должен ли я прекратить использование Ifconfig?

171

На серверах, которые монтируют карты Infiniband, когда я использую ifconfigкоманду, я получаю это предупреждение:

Ifconfig uses the ioctl access method to get the full address 
information, which limits hardware addresses to 8 bytes.
Because Infiniband address has 20 bytes, only the first 8 bytes 
are displayed correctly.
Ifconfig is obsolete! For replacement check ip.

Должен ли я прекратить использование ifconfig? Это не рекомендуется в пользу ipкоманды? Или он будет обновлен в ближайшее время?

Примечание. Этот вопрос и ответы относятся к «основным» дистрибутивам GNU / Linux . Не следует предполагать, что информация относится ко всем дистрибутивам, особенно к другим ОС.

Zhen
источник
23
Чем раньше вы переключитесь, тем лучше. Мне потребовались месяцы, чтобы заменить мышечную память ifconfig. Это делает операции на Windows еще более увлекательным. " ip add-Нет, подожди, это не так, ifcon-Нет, аааа ipconfig"
Чарльз
7
Может быть , это псевдоним поможет: alias ipconfig='echo ipconfig is deprecated, use ip instead'. Конечно, вы создали более осмысленные псевдонимы.
ot--
98
ifconfigне рекомендуется? Я должен был жить в пещере
WIM
26
Мне кажется любопытным, что команда с именем «ip» может выполнять операции на уровне канала.
Джеймс О'Горман
12
Это не рекомендуется только в определенных операционных системах. Если вы используете вещи вне Linux, я считаю, что ifconfig все еще используется. Например, я не вижу такого предупреждения во FreeBSD.
Стефан Ласевский

Ответы:

154

Цитирование Томас Pircher сайт «s ( CC-BY-SA ):

ifconfig против ip

Команда /bin/ipбыла вокруг в течение некоторого времени. Но люди продолжают использовать старую команду /sbin/ifconfig. Давайте проясним: ifconfigне скоро уйдет, но его более новая версия, ipболее мощная и в конечном итоге заменит его.

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

Показать сетевые устройства и конфигурацию

ifconfig

ip addr show
ip link show

Включить сетевой интерфейс

ifconfig eth0 up
ip link set eth0 up

Сетевой интерфейс отключен аналогичным образом:

ifconfig eth0 down
ip link set eth0 down
желчь
источник
50
Интересно, что в каждом случае использования вы упоминали, что команда ip длиннее и сложнее. Вероятно, это будет основной причиной, по которой люди до сих пор пользуютсяifconfig
TheLQ
22
@TheLQ: ipпредоставляет гораздо больше возможностей. Конечно, это сложнее. Во всяком случае, многие команды могут быть сокращены. например, ip addr showможет быть сокращено до ip a, ip link showдо ip l, ip link set eth0 upдо ip l set eth0 upи так далее. Это приносит ipнаравне с ifconfig.
BatchyX
16
Просто помните, что весь мир - это не машина Linux. Solaris, AIX, HP-UX, все BSD и SCO (не то, чтобы кто-то о них заботился ) все используют ifconfig. Если вы хотите быть администратором Unix (не просто администратором Linux ), вы должны убедиться, что вы хотя бы знакомы с ifconfig и его основным синтаксисом ...
voretaq7
9
Ваш первый пример отвечает на это. Зачем запускать 2 команды, когда 1 это делает?
ot--
6
@ott в ip addr showзначительной степени включает в себя вывод ip link show.
nyuszika7h
40

Да, ifconfigне рекомендуется в пользу iproute2 ( ipкоманда) в Linux .

Точно так же arp, routeи netstatтакже не рекомендуется команд.

Тем не менее, iproute2 специфичен для Linux, когда некоторые другие Unix используют ifconfig, поэтому он может помочь узнать / запомнить, как он работает, если вы когда-нибудь собираетесь использовать другой Unix ...

Чтобы освоить «новый путь», предлагаю вам взглянуть на эти 3 ссылки:

По последней ссылке, ifconfigне ведется +15 лет :

За исключением массы патчей, которую накопил Debian, пакет net-tools не видел какой-либо восходящей разработки после версии 1.60, выпущенной где-то около 15 апреля 2001 года.

Totor
источник
9
ifconfigбыл разработан BSD еще в тот же день. Linux по существу использовал стек IP BSD (как и Windows и другие в то время, почему ipconfigвсе еще похож на ifconfig). В версии 2.4 Kernel Linux, которая начала сильно расходиться со стеком BSD, это было в начале 2001 года. Не случайно ifconfigв Linux с тех пор не было хорошего обслуживания.
Крис С
3
10 лет!? Думаю, пришло время запустить проект сохранения ifconfig на GitHub.
Кенчилада
20

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

Свен
источник
1
Мне также нравится сокращение команды cisco-esque. "ip a" = "IP-адрес шоу"
Coops
5
Мех. Вокруг ifconfig достаточно сценариев и других инструментов, и я не чувствую необходимости переключаться, пока они не исчезнут ...
Джейсон Антман
10
Я никогда не слышал о ip. Я только что проверил это на сервере FreeBSD, и он говорит ip: Command not found.. Может быть, ifconfigне рекомендуется только в Linux.
ctype.h
2
@ ctype.h: Действительно, это не рекомендуется только в Linux. Линукс, предназначенный для выпуска ifconfig, датируется 1999 годом. Это ipбыл уже рекомендуемый вариант для ядер 2.4.
BatchyX
5

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

вспышка
источник
8
ip был заменой ifconfig в Linux , как выбор, сделанный некоторыми дистрибутивами.
Каз
кажется крайне маловероятным, что ifconfig может быть полностью совместим с Linux. Такие команды, как ifconfig eth0 192.168.0.7/24не имеют четкого значения: например. если на нем eth0уже есть 2 ip-адреса (два на нем, а не один, псевдоним как eth0: 1).
Джейсен