Wyszukiwanie w witrynie

24 Przydatne polecenia „IP” do konfiguracji interfejsów sieciowych


W skrócie: W tym przewodniku omówimy kilka praktycznych przykładów polecenia ip. Pod koniec tego przewodnika użytkownicy będą mogli efektywnie wykonywać zadania sieciowe w systemie Linux z poziomu interfejsu wiersza poleceń.

Administratorzy systemów często muszą wykonywać zadania sieciowe na serwerach Linux. Na rynku dostępnych jest wiele narzędzi graficznych i narzędzi wiersza poleceń. Jednak większość użytkowników Linuksa woli używać polecenia ip ze względu na jego prostotę i bogatą funkcjonalność.

Polecenie ip to nowe narzędzie wiersza poleceń sieciowe, które służy do przypisywania adresu IP do interfejsu sieciowego lub konfigurowania/aktualizowania przydatnych zmiennych sieciowych w systemie Linux.

Jest częścią pakietu iproute2 i oferuje kilka zadań administracyjnych sieci, takich jak otwieranie lub wyłączanie interfejsów sieciowych, przypisywanie i usuwanie adresów IP i tras, zarządzanie pamięcią podręczną ARP i wiele więcej.

Polecenie ip jest bardzo podobne do starego polecenia ifconfig, ale ma znacznie większe możliwości dzięki dodanym do niego większej liczbie funkcji i możliwości.

Polecenie ifconfig zostało uznane za przestarzałe i zastąpione poleceniem ip we wszystkich nowoczesnych dystrybucjach Linuksa. Jednak polecenie ifconfig nadal działa i jest dostępne dla większości dystrybucji Linuksa.

Uwaga: Przed wprowadzeniem jakichkolwiek zmian wykonaj kopię zapasową pliku konfiguracyjnego.

1. Skonfiguruj na stałe statyczny adres IP w systemie Linux

Aby trwale skonfigurować statyczny adres IP w systemie Linux, należy zaktualizować lub edytować plik konfiguracji sieci, aby przypisać statyczny adres IP do systemu. Musisz być superużytkownikiem i wydać polecenie su (przełącz użytkownika) z poziomu terminala lub wiersza poleceń.

Ustaw statyczny adres IP w systemach RHEL

Otwórz i edytuj pliki konfiguracji sieci dla (eth0 lub eth1) za pomocą swojego ulubionego edytora tekstu. Na przykład przypisanie adresu IP do interfejsu eth0 w następujący sposób w dystrybucjach opartych na RHEL.

vi /etc/sysconfig/network-scripts/ifcfg-eth0     [On RHEL/CentOS/Fedora and Rocky Linux/AlmaLinux]

Ustaw statyczny adres IP w systemach Debian

Aby skonfigurować stały statyczny adres IP, musisz zmodyfikować plik konfiguracyjny interfejsu sieciowego /etc/network/interfaces, aby wprowadzić trwałe zmiany, jak pokazano poniżej dla dystrybucji opartych na Debianie.

sudo nano /etc/network/interfaces     [On Debian, Ubuntu and Mint]

Następnie uruchom ponownie usługi sieciowe po wprowadzeniu wszystkich szczegółów za pomocą następującego polecenia.

sudo systemctl restart networking

2. Tymczasowo skonfiguruj statyczny adres IP w systemie Linux

W przypadku tymczasowych konfiguracji sieci możesz użyć polecenie ip, aby na bieżąco przypisać adres IP do określonego interfejsu (eth2).

ip addr add 172.19.1.10/24 dev eth2
OR
sudo ip addr add 172.19.1.10/24 dev eth2

Uwaga: niestety wszystkie te ustawienia zostaną utracone po ponownym uruchomieniu systemu.

3. Jak wyświetlić wszystkie interfejsy sieciowe

W poleceniu ip obiekt link reprezentuje interfejs sieciowy. Możemy użyć z nim polecenia show, aby wyświetlić wszystkie interfejsy sieciowe.

Teraz wyświetlmy wszystkie interfejsy sieciowe za pomocą następującego polecenia:

ip link show

Powyższe dane wyjściowe pokazują szczegóły wszystkich interfejsów sieciowych, takie jak nazwa interfejsu, flagi, status, adres łącza, adres rozgłoszeniowy itp.

4. Jak sprawdzić adres IP określonego interfejsu sieciowego

Aby uzyskać szczegółowe informacje o indywidualnym interfejsie sieciowym, takie jak adres IP i adres MAC, użyj następującego polecenia, jak pokazano poniżej.

ip link show eth2

Do tej pory korzystaliśmy z obiektu link, który wyświetla szczegółowe informacje o interfejsach sieciowych. Nie pokazuje jednak adresu IP powiązanego z interfejsem sieciowym. Aby pokonać to ograniczenie, możemy użyć obiektu addr z poleceniem ip.

Rozumiemy to na przykładzie.

ip addr show

Tutaj możemy to zobaczyć, teraz dane wyjściowe pokazują adresy IP wszystkich interfejsów sieciowych wraz z innymi szczegółami.

Aby wyświetlić adres IP indywidualnego interfejsu sieciowego, wystarczy podać nazwę interfejsu sieciowego jako argument polecenia.

ip addr show eth2

5. Jak wyświetlić adres IP na kolorowych wydrukach

Polecenie ip wyświetla szczegółowe informacje o obiektach sieciowych. Czasami jednak musimy przyjrzeć się ograniczonym informacjom. W takich przypadkach możemy włączyć kolorowe wydruki. Ta opcja podkreśla ważne szczegóły w różnych kolorach.

Użyjmy opcji --color polecenia, aby wyświetlić wynik w różnych kolorach:

ip --color addr show eth2

Na powyższym wyjściu widzimy, że nazwa interfejsu, adres Ethernet i stan są wyróżnione różnymi kolorami.

6. Jak wyświetlić adres IP w formacie JSON

W poprzednich przykładach widzieliśmy, że polecenie ip pokazuje istotne informacje. Jednakże analizowanie surowych wyników i wydobywanie znaczących informacji za pomocą podstawowych skryptów nie jest łatwym zadaniem. W takich przypadkach możemy poinstruować polecenie ip, aby wygenerowało dane wyjściowe w formacie JSON.

Użyjmy więc opcji -j z poleceniem, aby wyświetlić te same dane wyjściowe w formacie JSON:

ip -j link show eth2

Ta metoda przydaje się podczas automatyzacji, ponieważ JSON jest powszechnie akceptowanym formatem i istnieje wiele bibliotek/narzędzi analizatora składni JSON dostępnych w różnych językach programowania.

7. Jak zwiększyć czytelność danych wyjściowych JSON

W poprzednim przykładzie użyliśmy opcji -j, aby wyświetlić dane wyjściowe w formacie JSON. Ten domyślny format JSON jest kompaktowy i zajmuje niewiele miejsca. Jednak wynik nie jest łatwy do odczytania ze względu na brak wcięć.

Aby pokonać to ograniczenie, możemy użyć opcji -p, która zwiększa czytelność wyniku poprzez wcięcie go. Wyjaśnijmy to na poniższym przykładzie:

ip -j -p link show eth2

Tutaj widzimy, że ten sam wynik jest znacznie bardziej czytelny w porównaniu z poprzednimi przykładami.

8. Jak usunąć adres IP z interfejsu sieciowego

W poprzednim przykładzie użyliśmy polecenia add do przypisania adresu IP. W podobny sposób możemy użyć komendy del, aby usunąć konkretny adres IP.

Poniższe polecenie usunie przypisany adres IP z danego interfejsu (eth2).

ip addr del 172.19.1.10/24 dev eth2
OR
sudo ip addr del 172.19.1.10/24 dev eth2

Sprawdźmy teraz, czy adres IP został usunięty:

ip -j -p addr show eth2

Na powyższym wyjściu widzimy, że interfejs sieciowy eth2 ma teraz tylko jeden adres IP.

9. Jak włączyć interfejs sieciowy

Flaga „up” z nazwą interfejsu (eth2) włącza interfejs sieciowy. Na przykład poniższe polecenie aktywuje interfejs sieciowy eth2.

ip link set eth2 up
OR
sudo ip link set dev eth2 up

Sprawdźmy teraz zaktualizowany status:

ip -j -p link show eth2 | grep operstate

10. Jak wyłączyć interfejs sieciowy

Flaga „down” z nazwą interfejsu (eth2) wyłącza interfejs sieciowy. Na przykład poniższe polecenie dezaktywuje interfejs sieciowy eth2.

ip link set eth2 down
OR
sudo ip link set eth2 down

Sprawdźmy teraz stan interfejsu sieciowego eth2:

ip -j -p link show eth2 | grep operstate

Powyższe wyjście pokazuje zmodyfikowany stan interfejsu sieciowego.

11. Jak opróżnić adresy IP interfejsu sieciowego

W poprzednim przykładzie widzieliśmy, jak użyć komendy del do usunięcia adresu IP. Czasami jednak musimy usunąć wszystkie adresy IP danego interfejsu sieciowego. W takich przypadkach możemy użyć komendy flush.

Najpierw użyj komendy flush, aby usunąć wszystkie adresy IP interfejsu sieciowego eth2:

sudo ip addr flush eth2

Sprawdźmy teraz, czy wszystkie adresy IP interfejsu sieciowego eth2 zostały usunięte:

ip -j -p addr show eth2

W powyższym wyniku pole addr_info pokazuje pustą tablicę JSON. Oznacza to, że nie ma żadnego adresu IP powiązanego z interfejsem sieciowym eth2.

12. Jak sprawdzić tablicę routingu

Tablica routingu przechowuje informacje niezbędne do przekazania pakietu sieciowego do właściwego miejsca docelowego. Możemy użyć obiektu route polecenia ip, aby wyświetlić reguły routingu.

Użyjmy poniższego polecenia, aby wyświetlić listę wszystkich reguł tablicy routingu:

ip route show

W powyższym wyniku pierwsza kolumna reprezentuje miejsce docelowe, a ostatnia kolumna reprezentuje źródłowy adres IP.

13. Jak dodać nową trasę statyczną

Dlaczego trzeba dodawać trasy statyczne lub trasy ręczne, ponieważ ruch nie może przechodzić przez bramę domyślną? Musimy dodać trasy statyczne, aby przekazać ruch z najlepszej drogi dotarcia do miejsca docelowego.

sudo ip route add 172.19.1.0/24 dev eth2 proto kernel scope link src 172.19.1.2

Sprawdźmy teraz, czy wpis został pomyślnie dodany:

ip route show

15. Jak usunąć trasę statyczną

Komenda del usuwa określony wpis z tablicy routingu. Na przykład poniższe polecenie usuwa wpis trasy urządzenia eth2:

sudo ip route del 172.19.1.0/24

Sprawdźmy teraz, czy wpis został pomyślnie usunięty:

ip route show

16. Jak dodać stałe trasy statyczne

Wszystkie powyższe trasy zostaną utracone po ponownym uruchomieniu systemu. Aby dodać stałą trasę statyczną, edytuj plik /etc/sysconfig/network-scripts/route-eth2 (Przechowujemy trasę statyczną dla (eth2). Domyślnie Nie będzie tam pliku route-eth2 i należy go utworzyć.

Ustaw stałą trasę w systemach RHEL

vi /etc/sysconfig/network-scripts/route-eth2

i dodaj następujące wiersze, zapisz i wyjdź.

172.19.1.0/24 via 172.19.1.2 dev eth2

Ustaw stałą trasę w systemach Debian

Otwórz plik /etc/network/interfaces i na koniec dodaj trasy statyczne trwałości. Adresy IP mogą się różnić w Twoim środowisku.

sudo vi /etc/network/interfaces
auto eth2
iface eth2 inet static
address 172.19.50.2
netmask 255.255.255.0
gateway 172.19.50.100
#########{Static Route}###########
up ip route add 172.19.1.0/24 via 172.19.1.2 dev eth2

Następnie uruchom ponownie usługi sieciowe po wprowadzeniu wszystkich szczegółów za pomocą następującego polecenia.

sudo systemctl restart networking

17. Jak dodać bramę domyślną

W sieci brama domyślna odgrywa ważną rolę. Jest używany, gdy tablica routingu nie zawiera żadnych informacji o miejscu docelowym.

Bramę domyślną można określić globalnie lub dla plików konfiguracyjnych specyficznych dla interfejsu. Zaletą bramy domyślnej jest to, że w systemie znajduje się więcej niż jedna karta sieciowa. Możesz dodać bramę domyślną na bieżąco, jak pokazano poniżej polecenia.

Najpierw dodajmy interfejs sieciowy eth0 jako bramę domyślną:

sudo ip route add default via 172.17.0.1

Teraz zweryfikujmy ustawienie bramy domyślnej za pomocą następującego polecenia:

ip route show

Należy pamiętać, że wykonaliśmy to polecenie na maszynie testowej. Zachowaj ostrożność podczas używania tego polecenia w środowisku produkcyjnym.

18. Jak usunąć bramę domyślną

Możemy użyć następującego polecenia, aby usunąć bramę domyślną:

sudo ip route del default

Teraz wypiszmy tabelę routingu, aby sprawdzić, czy brama domyślna została usunięta:

ip route show

19. Jak wyświetlić pamięć podręczną ARP

ARP oznacza protokół rozpoznawania adresów, który służy do znalezienia adresu MAC powiązanego z konkretnym adresem IP.

Możemy użyć obiektu neigh z poleceniem ip, aby wyświetlić pamięć podręczną ARP:

ip neigh show

W powyższym poleceniu rżenie reprezentuje sąsiednie obiekty.

20. Jak dodać wpis ARP

Aby utworzyć nowy wpis ARP, możemy użyć komendy add z obiektem neigh.

sudo ip neigh add 172.19.1.0 lladdr 02:42:e3:40:a6:b1 dev eth2

Wymieńmy teraz wpisy pamięci podręcznej ARP:

ip neigh show

W powyższym wyniku widzimy nowy wpis dotyczący interfejsu sieciowego eth2.

21. Jak usunąć wpis ARP

Podobnie jak inne obiekty sieciowe, możemy użyć komendy del, aby usunąć wpis ARP. Na przykład poniższe polecenie usuwa wpis ARP interfejsu sieciowego eth2:

sudo ip neigh del 172.19.1.0 dev eth2

Teraz sprawdźmy, czy wpis został usunięty, wyświetlając listę pamięci podręcznej ARP:

ip neigh show 

22. Jak opróżnić wpisy ARP

Aby usunąć wiele wpisów ARP, możemy użyć komendy flush. Aby to zrozumieć, najpierw dodaj kilka wpisów ARP ze stanem STALE:

sudo ip neigh add 172.19.1.0 lladdr 02:42:e3:40:a6:b1 dev eth2 nud stale
sudo ip neigh add 172.19.2.0 lladdr 02:42:e3:40:a6:b2 dev eth2 nud stale
sudo ip neigh add 172.19.3.0 lladdr 02:42:e3:40:a6:b3 dev eth2 nud stale

Następnie sprawdź, czy nowe wpisy zostały pomyślnie dodane:

ip neigh show

Następnie opróżnij wszystkie wpisy za pomocą poniższego polecenia:

sudo ip neigh flush all

Na koniec sprawdź, czy wszystkie wpisy zostały usunięte:

ip neigh show

23. Jak ustawić MTU dla interfejsu sieciowego

MTU oznacza Maksymalną jednostkę transmisji, która reprezentuje największy rozmiar pakietu, jaki można przesłać w pojedynczej transakcji. Możemy manipulować rozmiarem MTU zgodnie z naszymi wymaganiami wydajnościowymi.

Najpierw znajdźmy MTU interfejsu sieciowego eth2:

ip -j -p link show eth2 | grep mtu

Następnie zaktualizuj rozmiar MTU interfejsu sieciowego eth2 do 3000:

sudo ip link set mtu 3000 dev eth2

Na koniec sprawdź, czy MTU zostało pomyślnie zaktualizowane:

ip -j -p link show eth2 | grep mtu

24. Jak zmienić adres sieciowy Mac

Polecenie ip pozwala nam zmienić adres MAC interfejsu sieciowego. Aby to osiągnąć, możemy użyć komendy set z obiektem link:

Najpierw podaj aktualny adres MAC interfejsu sieciowego eth2:

ip -j -p link show eth2 | grep address

Następnie zmień adres MAC interfejsu sieciowego za pomocą poniższego polecenia:

sudo ip link set dev eth2 address 02:42:ac:13:01:03

Na koniec sprawdź, czy adres MAC został zmieniony:

ip -j -p link show eth2 | grep address

Zapoznaj się ze stroną podręcznika dotyczącą man ip z poziomu terminala/wiersza poleceń, aby dowiedzieć się więcej o poleceniu IP.

man ip
Wniosek

W tym artykule omówiliśmy kilka typowych przykładów polecenie ip. Przykłady te można wykorzystać w życiu codziennym do administrowania siecią.

Czy znasz jakiś inny najlepszy przykład polecenia ip w systemie Linux? Podziel się z nami swoją opinią w komentarzach poniżej.