Przeczytałem kilka artykułów / samouczków dotyczących polecenia „ifconfig”, większość z nich zawierała wspólną instrukcję -
„ifconfig jest przestarzałe przez polecenie ip”
i zaproponował, aby nauczyć się polecenia ip. Ale żadne z nich nie wyjaśniło, w jaki sposób polecenie „ip” ma większą moc niż „ifconfig”.
Jaka jest różnica między nimi obojgiem?
linux
networking
ip
command
Mandar Shinde
źródło
źródło
Odpowiedzi:
ifconfig
pochodzi znet-tools
, który od dłuższego czasu nie był w stanie nadążyć za stosem sieci Linux. Nadal używa równieżioctl
do konfiguracji sieci, która jest brzydkim i mniej wydajnym sposobem interakcji z jądrem.Wiele zmian w kodzie sieciowym Linuksa i wiele nowych funkcji nie jest dostępnych przy użyciu
net-tools
: routingu wielościeżkowego, routingu zasad (patrz RPDB).route
pozwala robić głupie rzeczy, takie jak dodawanie wielu tras do tego samego miejsca docelowego, przy użyciu tej samej metryki.Do tego:
ifconfig
nie zgłasza poprawnego adresu sprzętowego dla niektórych urządzeń.ipip
,sit
,gre
,l2tp
, itd. W jądro tuneli statycznych.tun
anitap
urządzeń.net-tools
żadnego z nich.Zobacz także do
ifconfig
bani .EDYCJA : Usunąłem twierdzenie o
net-tools
rozwoju, które zaprzestało, że do tej pory zapomniałem, skąd mam ten post.net-tools
”, nad którym pracowano od czasuiproute2
jego wydania, ale w większości dotyczy to naprawiania błędów oraz drobnych ulepszeń i funkcji, takich jak internacjonalizacja.źródło
ifconfig
. Na przykład w inetutils GNU jest inny. A to jeszcze nie wszystko. unix.stackexchange.com/a/504084/5132ifconfig
to tradycyjne polecenie do wyświetlania informacji o interfejsach sieciowych i zmiany niektórych ustawień. W szczególności może zwiększać i zmniejszać interfejsy. Istnieje w większości wariantów uniksowych.W Linuksie
ifconfig
polecenie nie ewoluowało od dawna. Nadal jest w porządku do tego, co robi. Jeśli używaszifconfig
do czegoś, nie ma powodu, aby przestać.Linux udostępnia także
ip
polecenie z pakietu narzędzi iproute2 .ip
Komenda łączy kilka klasycznych poleceń i więcej, w tymifconfig
,route
iarp
.ip
może zrobić o wiele więcej niżifconfig
. Z drugiej stronyip
nie zawsze jest obecny, szczególnie w systemach wbudowanych (i nigdy w wariantach uniksowych innych niż Linux).Wyniki
ifconfig
parsowania są do bani. Wynikiip
parsowania są do bani. Nie ma tam zwycięzcy.źródło
ip
są dość proste, a na pewno o wiele prostsze niżifconfig
. Uwielbiam również to, że w wielu przypadkach dane wyjścioweip
polecenia mogą być użyte jako dane wejściowe do innegoip
polecenia z niewielką modyfikacją lub bez modyfikacji (na przykład każda liniaip route show
może być użyta jako argumentyip route add
).ip route
, aip rule
dane wyjściowe są dość wyraźne i łatwe do przeanalizowania. Aleip link
lubip addr
jest bólem. Naprawdę chciałbym, aby ktoś przesłał łatkę lub coś, abyip addr
wydrukować dokładne instrukcje, być może za pomocą przełącznika, którego użyłbyś do konfiguracji bieżącej konfiguracji, tak jak to robiszip route show
.Wystarczy dodać kilka bitów do odpowiedzi pilona. Około 2005 roku wprowadzono nowy mechanizm kontroli stosu sieciowego - gniazda netlink .
Aby skonfigurować interfejs sieciowy, należy
iproute2
skorzystać z mechanizmu pełnego dupleksu gniazda sieci, a jednocześnieifconfig
opiera się naioctl
wywołaniu systemowym. Oto 2 główne artykuły na temat motywacji za netlink i korzystania z rtnetlink .źródło