Devrais-je arrêter d'utiliser Ifconfig?

171

Avec les serveurs qui montent des cartes Infiniband, lorsque j'utilise la ifconfigcommande, je reçois cet avertissement:

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.

Devrais-je cesser d'utiliser ifconfig? Est-ce obsolète en faveur de la ipcommande? Ou sera-t-il mis à jour dans un proche avenir?

Remarque: Cette question et les réponses concernent les principales distributions de GNU / Linux . Il ne faut pas présumer que les informations s'appliquent à toutes les distributions, et en particulier aux autres systèmes d'exploitation.

Zhen
la source
23
Plus vite vous basculez, mieux c'est. Il m'a fallu des mois pour remplacer la mémoire musculaire de ifconfig. Cela rend les opérations sur Windows encore plus amusantes. " ip add-Non, attends, ce n'est pas ça, ifcon-NO, argh ipconfig"
Charles
7
Peut - être un alias aidera: alias ipconfig='echo ipconfig is deprecated, use ip instead'. Bien sûr, vous créez des alias plus sensés.
ott--
98
ifconfigest obsolète? Je vivais dans une grotte
wim
26
Je trouve curieux qu'une commande appelée "ip" puisse effectuer des opérations au niveau des liens.
James O'Gorman
12
Il est uniquement obsolète sur certains systèmes d'exploitation. Si vous utilisez des éléments en dehors de Linux, j'estime que ifconfig est toujours utilisé. Je ne vois pas un tel avertissement sur FreeBSD, par exemple.
Stefan Lasiewski

Réponses:

154

Citant le site Web de Thomas Pircher ( cc-by-sa ):

ifconfig vs ip

La commande /bin/ipexiste depuis un certain temps maintenant. Mais les gens continuent à utiliser l'ancienne commande /sbin/ifconfig. Soyons clairs: ifconfigne partira pas rapidement, mais sa nouvelle version ip, est plus puissante et la remplacera éventuellement.

La page de manuel de ippeut sembler intimidante au début, mais une fois que vous vous êtes familiarisé avec la syntaxe de la commande, la lecture est facile. Cette page n'introduira pas les nouvelles fonctionnalités d'ip. Il propose plutôt une comparaison côte à côte si ifconfiget ippour obtenir un aperçu rapide de la syntaxe de la commande.

Afficher les périphériques réseau et la configuration

ifconfig

ip addr show
ip link show

Activer une interface réseau

ifconfig eth0 up
ip link set eth0 up

Une interface réseau est désactivée de la même manière:

ifconfig eth0 down
ip link set eth0 down
Fel
la source
50
Il est intéressant de noter que dans chaque cas d'utilisation, vous avez mentionné que la commande ip est plus longue et complexe. Probablement une des principales raisons pour lesquelles les gens utilisent encoreifconfig
TheLQ
22
@TheLQ: ipfournit beaucoup, beaucoup plus de fonctionnalités. Bien sûr que c'est plus complexe. Quoi qu'il en soit, de nombreuses commandes peuvent être raccourcies. par exemple, ip addr showpeut être raccourci à ip a, ip link showà ip l, ip link set eth0 upà ip l set eth0 upet ainsi de suite. Cela apporte ipà égalité avec ifconfig.
BatchyX
16
N'oubliez pas que le monde entier n'est pas une machine Linux. Solaris, AIX, HP-UX, tous les BSDs et SCO (pas que quiconque se soucie de leur ) toute utilisation ifconfig. Si vous voulez être un administrateur Unix (pas seulement un administrateur Linux ), assurez-vous de connaître au moins ifconfig et sa syntaxe de base ...
voretaq7
9
Votre premier exemple y répond. Pourquoi exécuter 2 commandes quand 1 le fait?
ott--
6
@ott ip addr showinclut à peu près la sortie de ip link show.
nyuszika7h
40

Oui, il ifconfigest déconseillé d'utiliser iproute2 (la ipcommande) sous Linux .

De même, les commandes arp, routeet netstatsont également obsolètes.

Cependant, iproute2 est spécifique à Linux, quand d'autres Unix utilisent ifconfig, il peut donc être utile de savoir / se rappeler comment cela fonctionne si vous utilisez un autre Unix ...

Pour apprendre la "nouvelle façon", je vous suggère de regarder ces 3 liens:

Selon le dernier lien, ifconfign'a pas été maintenu depuis +15 ans :

À l'exception de la masse de correctifs accumulés par Debian, le paquet net-tools n'a pas connu de développement en amont après la version 1.60, publiée vers le 15 avril 2001.

Totor
la source
9
ifconfiga été développé par BSD à l’époque. Linux utilisait essentiellement la pile IP de BSD (comme Windows et d’autres à l’époque, pourquoi ipconfigest toujours similaire à ifconfig). Dans le noyau 2.4, Linux ayant commencé à s'écarter fortement de la pile de BSD, c'était au début de 2001. Ce n'est pas un hasard si, ifconfigsous Linux, il n'a pas été bien entretenu depuis.
Chris S
3
10 années!? Il est temps de lancer un projet "save ifconfig" sur GitHub, je suppose.
Kenchilada
20

ifconfig est obsolète depuis de nombreuses années maintenant, il est temps de passer, en particulier dans un cas comme le vôtre.

Sven
la source
1
J'aime aussi son raccourcissement de commande cisco-esque. "ip a" = "ip address show"
Coops
5
meh Il y a suffisamment de scripts et d'autres outils construits sur ifconfig pour que je ne ressente pas le besoin de passer à autre chose jusqu'à ce qu'il disparaisse ...
Jason Antman
10
Je n'ai jamais entendu parler de ip. Je viens de le tester sur un serveur FreeBSD et ça se dit ip: Command not found.. Peut ifconfig- être est seulement obsolète sous Linux.
ctype.h
2
@ ctype.h: En effet, il n'est déconseillé que sur Linux. La publication d'iFconfig sur linux date de 1999. ipC'était déjà le choix recommandé pour les noyaux 2.4.
BatchyX
5

ipest le remplaçant depuis ifconfigun moment, probablement à un moment donné ifconfigsera mis à jour, mais je ne l’attendrais pas et n’apprendrai pas à travailler avec ip. Son supporté sur toutes les distributions Linux

Flash
la source
8
ip a été le remplacement de ifconfig sur Linux , choisi par certaines distributions.
Kaz
Il semble extrêmement improbable que ifconfig puisse être totalement compatible avec Linux. Des commandes telles que ifconfig eth0 192.168.0.7/24n'ont pas de signification claire: par exemple. si eth0déjà 2 adresses IP dessus (deux dessus, pas un, un alias comme eth0: 1).
Jasen