Чи варто кинути використання 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 . Не слід вважати, що інформація стосується всіх дистрибутивів, і особливо не для інших ОС.


23
Чим раніше ви перейдете, тим краще. Мені знадобилися місяці, щоб замінити м'язову пам’ять ifconfig. Однак це робить операції в Windows ще веселішими. " ip add-не, чекай, це не все, ifcon-NO, argh ipconfig"
Чарльз

7
Може бути , це псевдонім допоможе: alias ipconfig='echo ipconfig is deprecated, use ip instead'. Звичайно, ви створили більш розумні псевдоніми.
ott--

98
ifconfigзастаріло? Я, мабуть, жив у печері
Вім

26
Мені цікаво, що команда під назвою "ip" має можливість робити операції на рівні зв'язку.
Джеймс О'Горман

12
Це застаріло лише в певних операційних системах. Якщо ви використовуєте речі поза межами Linux, я вважаю, що ifconfig все ще використовується. Наприклад, я не бачу такого попередження щодо FreeBSD.
Стефан Ласєвський

Відповіді:


154

Цитуючи веб-сайт Томаса Пірхера ( cc-by-sa ):

ifconfig vs ip

Команда /bin/ipіснує вже деякий час. Але люди продовжують використовувати старішу команду /sbin/ifconfig. Будемо зрозумілими: ifconfigне швидко піде, але його нова версія ip, є більш потужною і з часом її замінить.

Сторінка "man" 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 це робить?
ott--

6
@ott ip addr showв значній мірі включає вихід ip link show.
nyuszika7h

40

Так, ifconfigзастаріла на користь iproute2 ( ipкоманда) в Linux .

Аналогічно, і команди arp, routeі netstatкоманди також застаріли.

Однак iproute2 є специфічним для Linux, коли використовуються деякі інші Unixes ifconfig, тому він може допомогти дізнатися / запам'ятати, як це працює, якщо ви коли-небудь будете використовувати інший Unix ...

Щоб дізнатися про "новий спосіб", пропоную вам переглянути ці 3 посилання:

За останньою посиланням, ifconfigне підтримується протягом +15 років :

За винятком маси виправлень, яку накопичила Debian, пакет net-tools не побачив жодної розробки вгору після версії 1.60, випущеної приблизно 15 квітня 2001 року.


9
ifconfigбула розроблена BSD ще в той же час. Linux по суті використовував стек IP BSD (як це робив Windows та інші, чому ipconfigвсе ще схожий на ifconfig). У версії 2.4 Kernel Linux, яка почала сильно розходитися зі стеком BSD, це був початок 2001 року. Це не випадково, що ifconfigв Linux з тих пір недостатньо підтримується.
Chris S

3
10 років!? Час запустити проект "save ifconfig" на GitHub, я думаю.
kenchilada

20

ifconfig вже багато років застаріло, час перемикатися, особливо у випадку, як ваш.


1
Мені також подобається скорочення команд cisco-esque. "ip a" = "ip address show"
Чашки

5
мех. Навколо є достатньо сценаріїв та інших інструментів, які побудовані над ifconfig, що я не відчуваю потреби перемикатися, поки вона не зникне ...
Jason Antman

10
Я ніколи не чув ip. Я тільки тестував його на сервері FreeBSD, і він говорить ip: Command not found.. Можливо ifconfig, застаріла лише в Linux.
ctype.h

2
@ ctype.h: Дійсно, це застаріло лише в Linux. ifconfig випуск націлювання на Linux датується з 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).
Ясен
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.