Czy powinienem zakończyć korzystanie z Ifconfig?

171

Gdy korzystam z ifconfigpolecenia na serwerach, na których montuje się karty Infiniband, pojawia się następujące ostrzeżenie:

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.

Czy powinienem rzucić używanie ifconfig? Czy jest to przestarzałe na korzyść ippolecenia? Czy będzie aktualizowany w najbliższej przyszłości?

Uwaga: To pytanie i odpowiedzi dotyczą „głównych” dystrybucji GNU / Linux . Nie należy zakładać, że informacje dotyczą wszystkich dystrybucji, a zwłaszcza innych systemów operacyjnych.

Zhen
źródło
23
Im szybciej się zmienisz, tym lepiej. Zastąpienie pamięci mięśniowej zajęło mi miesiąceifconfig . To sprawia, że ​​operacje w systemie Windows są jeszcze przyjemniejsze. „ ip add-nie, czekaj, to nie to, ifcon-NO, argh ipconfig
Charles
7
Może pomoże aliasem: alias ipconfig='echo ipconfig is deprecated, use ip instead'. Oczywiście tworzysz bardziej sensowne aliasy.
ott--
98
ifconfigjest przestarzałe? Musiałem mieszkać w jaskini
wim
26
Ciekawe, że polecenie o nazwie „ip” może wykonywać operacje na poziomie łącza.
James O'Gorman,
12
Jest przestarzałe tylko w niektórych systemach operacyjnych. Jeśli używasz rzeczy poza Linuksem, uważam, że ifconfig jest nadal używany. Na przykład nie widzę takiego ostrzeżenia na FreeBSD.
Stefan Lasiewski

Odpowiedzi:

154

Cytując stronę internetową Thomasa Pirchera ( cc-by-sa ):

ifconfig vs ip

Komenda /bin/ipistnieje już od jakiegoś czasu. Ale ludzie nadal używają starszego polecenia /sbin/ifconfig. Wyjaśnijmy: ifconfignie odejdzie szybko, ale jego nowsza wersja ipjest mocniejsza i ostatecznie ją zastąpi.

Strona ippodręcznika man może początkowo wydawać się onieśmielająca, ale po zapoznaniu się ze składnią polecenia jest łatwa do odczytania. Ta strona nie wprowadza nowych funkcji ip. To raczej dysponuje porównania side-by-side, jeśli ifconfigi ipuzyskać szybki przegląd składni poleceń.

Pokaż urządzenia sieciowe i konfigurację

ifconfig

ip addr show
ip link show

Włącz interfejs sieciowy

ifconfig eth0 up
ip link set eth0 up

Interfejs sieciowy jest wyłączany w podobny sposób:

ifconfig eth0 down
ip link set eth0 down
Fel
źródło
50
Ciekawe, jak w każdym przypadku użycia, o którym wspomniałeś, polecenie ip jest dłuższe i bardziej złożone. Prawdopodobnie będzie to główny powód, dla którego ludzie nadal używająifconfig
TheLQ,
22
@TheLQ: ipzapewnia znacznie więcej funkcji. Oczywiście jest to bardziej złożone. W każdym razie wiele poleceń można skrócić. na przykład ip addr showmoże być skrócony do ip a, ip link showdo ip l, ip link set eth0 updo ip l set eth0 upi tak dalej. To równa ipsię z ifconfig.
BatchyX,
16
Pamiętaj tylko, że cały świat nie jest maszyną z systemem Linux. Solaris, AIX, HP-UX, wszystkie BSD i SCO (nie, że ktoś dba o nich ) każde zastosowanie ifconfig. Jeśli chcesz być administratorem systemu Unix (nie tylko administratorem Linuksa ), powinieneś upewnić się, że znasz przynajmniej ifconfig i jego podstawową składnię ...
voretaq7
9
Twój pierwszy przykład na to odpowiada. Po co uruchamiać 2 polecenia, gdy 1 to robi?
ott--
6
@ott ip addr showprawie zawiera dane wyjściowe ip link show.
nyuszika7h,
40

Tak, ifconfigjest przestarzałe na rzecz iproute2 ( ippolecenie) w systemie Linux .

Podobnie arp, routei netstatpolecenia są zalecane.

Jednak iproute2 jest specyficzny dla Linuksa, gdy korzysta z niego kilka innych Uniksów ifconfig, więc może pomóc wiedzieć / pamiętać, jak to działa, jeśli kiedykolwiek będziesz używać innego Uniksa ...

Aby poznać „nowy sposób”, proponuję spojrzeć na te 3 linki:

Według ostatniego linku ifconfignie był utrzymywany przez +15 lat :

Poza masą łatek, które zgromadził Debian, pakiet net-tools nie widział żadnego rozwoju wcześniejszego niż wersja 1.60, wydana około 15 kwietnia 2001 roku.

Totor
źródło
9
ifconfigzostał opracowany przez BSD w tamtych czasach. Linux zasadniczo używał stosu IP BSD (podobnie jak Windows i inni, dlaczego ipconfigwciąż jest podobny ifconfig). W jądrze Linuksa 2.4 zaczynającym się znacznie odbiegać od stosu BSD, był to początek 2001 roku. Nie jest tak, że ifconfigw Linuksie od tego czasu nie było dobrze utrzymywane.
Chris S
3
10 lat!? Czas na uruchomienie projektu „zapisz ifconfig” na GitHub.
kenchilada
20

ifconfig od wielu lat jest przestarzały, czas na zmianę, szczególnie w przypadku takim jak twój.

Sven
źródło
1
Podoba mi się również jego skracanie poleceń cisco-esque. „ip a” = „Pokaż adres IP”
Coops
5
meh Jest wystarczająco dużo skryptów i innych narzędzi, które są zbudowane w ifconfig, więc nie czuję potrzeby przełączania, dopóki nie zniknie ...
Jason Antman
10
Nigdy o tym nie słyszałem ip. Właśnie przetestowałem to na serwerze FreeBSD i tak mówi ip: Command not found.. Być może ifconfigjest przestarzałe tylko w systemie Linux.
ctype.h
2
@ ctype.h: Rzeczywiście, jest on przestarzały tylko w systemie Linux. Wydanie ifconfig dla Linuksa ukierunkowane na wydanie pochodzi z 1999 roku. ipBył już zalecanym wyborem dla jąder 2.4.
BatchyX,
5

ipod jakiegoś czasu jest zamiennikiem ifconfig, prawdopodobnie w pewnym momencie ifconfigsię zaktualizuje, ale nie czekałbym na to i nauczyłbym się z nim pracować ip. Obsługiwany jest we wszystkich dystrybucjach Linuksa

Lampa błyskowa
źródło
8
ip zastąpił ifconfig w Linuksie , jako wybór dokonany przez niektóre dystrybucje.
Kaz
wydaje się bardzo mało prawdopodobne, aby ifconfig mógł być w pełni kompatybilny z Linuksem. polecenia takie ifconfig eth0 192.168.0.7/24nie mają jasnego znaczenia: np. jeśli eth0ma już 2 adresy IP (dwa na nim, nie jeden alias jak eth0: 1).
Jasen