Різниця між командами 'ifconfig' та 'ip'


19

Я читав деякі статті / підручники з команди "ifconfig", більшість з них містила загальну заяву -

"ifconfig застарілий командою ip"

і запропонував вивчити команду ip. Але жоден з них не пояснив, наскільки команда "ip" є більш потужною, ніж "ifconfig".

Яка різниця між ними обома?



Відповіді:


21

ifconfigє net-toolsкомпанією, яка давно не змогла повністю йти в ногу з мережевим стеком Linux. Він все ще використовується ioctlдля конфігурації мережі, що є некрасивим і менш потужним способом взаємодії з ядром.

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

Додатково:

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

Дивіться також ifconfigсмокче .

EDIT : Видалено твердження про net-toolsприпинення розвитку, що до цього часу я забув, де потрапив на цю посаду. net-tools"працював над тим, як iproute2вийшов, хоча це здебільшого виправлення помилок та незначні вдосконалення та функції, як, наприклад, інтернаціоналізація.


Мережеві інструменти NET-3 - не єдиний ifconfig. Наприклад, у GNU inetutils є, наприклад, інший. І це ще не все. unix.stackexchange.com/a/504084/5132
JdeBP

7

ifconfig- це традиційна команда для відображення інформації про мережеві інтерфейси та зміни деяких параметрів. Зокрема, це може приносити інтерфейси вгору та вниз. Він існує в більшості варіантів Unix.

В Linux ifconfigкоманда не розвивалася давно. Це все ще прекрасно для того, що він робить. Якщо ви використовуєте ifconfigдля чогось, немає причин зупинятися.

Linux також надає ipкоманду з набору інструментів iproute2 . ipКоманда об'єднує кілька класичних команд і багато інших, в тому числі ifconfig, routeі arp. ipможе зробити набагато більше, ніж ifconfig. З іншого боку, ipвін не завжди присутній, особливо у вбудованих системах (і ніколи в інших версіях Unix, крім Linux).

Синтаксичний ifconfigвихід «s свого роду смокче. Синтаксичний ipвихід «s свого роду смокче. Переможця немає.


Я завжди думав, що аналіз аналізу ipбуде досить простим, і, звичайно, набагато простішим, ніж ifconfig. Мені також подобається, що у багатьох випадках вихід ipкоманди може використовуватися як вхід до іншої ipкоманди з незначними або відсутніми модифікаціями (наприклад, кожен рядок ip route showможе використовуватися як аргументи до ip route add).
Патрік

1
@Patrick розбирає ip route, а ip ruleвихід досить чіткий і досить простий для розбору. Але ip link, або ip addrце біль. Я дійсно бажаю, щоб хтось подав патч або щось, щоб зробити ip addrдрук точних тверджень, можливо, за допомогою перемикача, щоб ви використовували налаштування поточної конфігурації, як і у вас ip route show.
Зоредаче

5

Просто щоб додати кілька біт до відповіді від pilona. Приблизно в 2005 році був введений новий механізм управління мережевим стеком - мережеві сокети .

Для налаштування мережевого інтерфейсу iproute2використовується цей повнодуплексний механізм роз'єму мережі, при цьому ifconfigпокладається на ioctlсистемний виклик. Ось 2 основні статті про мотивацію за мережевою посиланням та використання rtnetlink .

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.