Vyhledávání na webu

24 Užitečné "IP" příkazy pro konfiguraci síťových rozhraní


Stručně: V této příručce probereme některé praktické příklady příkazu ip. Na konci této příručky budou uživatelé schopni efektivně provádět síťové úlohy v Linuxu z rozhraní příkazového řádku.

Správci systému často potřebují provádět síťové úlohy na serverech Linux. Na trhu je k dispozici celá řada grafických nástrojů a nástrojů příkazového řádku. Většina uživatelů Linuxu však dává přednost použití příkazu ip kvůli jeho jednoduchosti a bohaté funkčnosti.

ip command je nový síťový nástroj příkazového řádku, který se používá k přiřazení adresy IP síťovému rozhraní nebo ke konfiguraci/aktualizaci užitečných síťových proměnných v systému Linux.

Je součástí balíčku iproute2 a nabízí několik úloh správy sítě, jako je vyvolání nebo vypnutí síťových rozhraní, přidělování a odstraňování IP adres a tras, správa mezipaměti ARP a mnoho dalšího.

příkaz ip je hodně podobný starému příkazu ifconfig, ale je mnohem výkonnější a obsahuje více funkcí a schopností.

Příkaz ifconfig byl ve všech moderních distribucích Linuxu zastaralý a nahrazen příkazem ip. Nicméně příkaz ifconfig je stále funkční a dostupný pro většinu distribucí Linuxu.

Poznámka: Před provedením jakýchkoli změn si zálohujte konfigurační soubor.

1. Trvale nakonfigurujte statickou IP adresu v Linuxu

Chcete-li trvale nakonfigurovat statickou IP adresu v Linuxu, musíte aktualizovat nebo upravit konfigurační soubor sítě, abyste systému přiřadili statickou IP adresu. Musíte být superuživatel s příkazem su (přepnout uživatele) z terminálu nebo příkazového řádku.

Nastavte statickou IP adresu v RHEL Systems

Otevřete a upravte konfigurační soubory sítě pro (eth0 nebo eth1) pomocí svého oblíbeného textového editoru. Například přiřazení IP adresy k rozhraní eth0 následujícím způsobem u distribucí založených na RHEL.

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

Nastavte statickou IP adresu v Debian Systems

Chcete-li nakonfigurovat trvalou statickou IP adresu, musíte upravit konfigurační soubor síťového rozhraní /etc/network/interfaces tak, aby byly provedeny trvalé změny, jak je uvedeno níže pro distribuce založené na Debianu.

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

Poté restartujte síťové služby po zadání všech podrobností pomocí následujícího příkazu.

sudo systemctl restart networking

2. Dočasně nakonfigurujte statickou IP adresu v Linuxu

Pro dočasné konfigurace sítě můžete pomocí příkazu ip přiřadit IP adresu konkrétnímu rozhraní (eth2) za chodu.

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

Poznámka: Všechna tato nastavení budou po restartování systému bohužel ztracena.

3. Jak zobrazit všechna síťová rozhraní

V příkazu ip představuje objekt odkaz síťové rozhraní. Pomocí příkazu show s ním můžeme zobrazit všechna síťová rozhraní.

Nyní zobrazíme všechna síťová rozhraní pomocí následujícího příkazu:

ip link show

Výše uvedený výstup zobrazuje podrobnosti o všech síťových rozhraních, jako je název rozhraní, příznaky, stav, adresa odkazu, adresa vysílání atd.

4. Jak zkontrolovat IP adresu konkrétního síťového rozhraní

Chcete-li získat informace o hloubce vašeho individuálního síťového rozhraní, jako je IP adresa a informace MAC adresy, použijte následující příkaz, jak je uvedeno níže.

ip link show eth2

Doposud jsme používali objekt odkazu zobrazuje podrobné informace o síťových rozhraních. Nezobrazuje však IP adresu spojenou se síťovým rozhraním. K překonání tohoto omezení můžeme použít objekt addr s příkazem ip.

Pochopme to na příkladu.

ip addr show

Zde vidíme, že výstup nyní zobrazuje IP adresy všech síťových rozhraní spolu s dalšími detaily.

Chcete-li zobrazit IP adresu jednotlivého síťového rozhraní, stačí zadat název síťového rozhraní jako argument příkazu.

ip addr show eth2

5. Jak zobrazit IP adresu v barevném výstupu

příkaz ip zobrazuje podrobné informace o síťových objektech. Někdy se však potřebujeme podívat na omezené informace. V takových případech můžeme povolit barevný výstup. Tato možnost zvýrazní důležité detaily v různých barvách.

Použijme možnost --color příkazu k zobrazení výstupu v různých barvách:

ip --color addr show eth2

Ve výše uvedeném výstupu můžeme vidět, že název rozhraní, ethernetová adresa a stav jsou zvýrazněny různými barvami.

6. Jak zobrazit IP adresu ve formátu JSON

V předchozích příkladech jsme viděli, že příkaz ip zobrazuje smysluplné informace. Není však snadný úkol analyzovat nezpracovaný výstup a extrahovat smysluplné informace pomocí základních skriptů. V takových případech můžeme zadat příkaz ip, aby vygeneroval výstup ve formátu JSON.

Použijme tedy možnost -j s příkazem k zobrazení stejného výstupu ve formátu JSON:

ip -j link show eth2

Tato metoda se hodí při automatizaci, protože JSON je široce přijímaný formát a existuje mnoho knihoven/nástrojů analyzátorů JSON dostupných v různých programovacích jazycích.

7. Jak zajistit, aby byl výstup JSON čitelnější

V předchozím příkladu jsme použili volbu -j k zobrazení výstupu ve formátu JSON. Tento výchozí formát JSON je kompaktní a prostorově nenáročný. Výstup však není snadno čitelný kvůli chybějícímu odsazení.

K překonání tohoto omezení můžeme použít volbu -p, díky které je výstup čitelnější díky jeho odsazení. Pojďme to pochopit na níže uvedeném příkladu:

ip -j -p link show eth2

Zde vidíme, že stejný výstup je mnohem čitelnější než v předchozích příkladech.

8. Jak odebrat IP adresu ze síťového rozhraní

V předchozím příkladu jsme k přiřazení IP adresy použili dílčí příkaz add. Podobným způsobem můžeme pomocí dílčího příkazu del odebrat konkrétní IP adresu.

Následující příkaz odebere přiřazenou IP adresu z daného rozhraní (eth2).

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

Nyní ověřte, zda byla IP adresa odstraněna:

ip -j -p addr show eth2

Ve výše uvedeném výstupu můžeme vidět, že nyní síťové rozhraní eth2 má pouze jednu IP adresu.

9. Jak povolit síťové rozhraní

Příznak „up“ s názvem rozhraní (eth2) povoluje síťové rozhraní. Například následující příkaz aktivuje síťové rozhraní eth2.

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

Nyní se podívejme na aktualizovaný stav:

ip -j -p link show eth2 | grep operstate

10. Jak deaktivovat síťové rozhraní

Příznak „down“ s názvem rozhraní (eth2) deaktivuje síťové rozhraní. Například následující příkaz deaktivuje síťové rozhraní eth2.

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

Nyní zkontrolujeme stav síťového rozhraní eth2:

ip -j -p link show eth2 | grep operstate

Výše uvedený výstup ukazuje upravený stav síťového rozhraní.

11. Jak vyprázdnit IP adresy síťového rozhraní

V předchozím příkladu jsme viděli, jak pomocí dílčího příkazu del odebrat IP adresu. Někdy však potřebujeme odstranit všechny IP adresy konkrétního síťového rozhraní. V takových případech můžeme použít dílčí příkaz flush.

Nejprve pomocí dílčího příkazu flush odstraňte všechny IP adresy síťového rozhraní eth2:

sudo ip addr flush eth2

Nyní zkontrolujeme, zda byly odstraněny všechny IP adresy síťového rozhraní eth2:

ip -j -p addr show eth2

Ve výše uvedeném výstupu pole addr_info zobrazuje prázdné pole JSON. To znamená, že k síťovému rozhraní eth2 není přidružena žádná adresa IP.

12. Jak zkontroluji směrovací tabulku

Směrovací tabulka ukládá potřebné informace k předání síťového paketu do správného cíle. Pro zobrazení pravidel směrování můžeme použít objekt route příkazu ip.

Pomocí níže uvedeného příkazu vypíšeme všechna pravidla směrovací tabulky:

ip route show

Ve výše uvedeném výstupu představuje první sloupec cíl, zatímco poslední sloupec představuje zdrojovou IP adresu.

13. Jak přidám novou statickou trasu

Proč potřebujete přidávat statické trasy nebo ruční trasy, protože provoz nesmí procházet přes výchozí bránu? Potřebujeme přidat statické trasy, abychom provoz procházeli z nejlepší cesty k dosažení cíle.

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

Nyní ověřte, zda byl záznam úspěšně přidán:

ip route show

15. Jak odstranit statickou cestu

Dílčí příkaz del odstraní konkrétní položku ze směrovací tabulky. Například níže uvedený příkaz odstraní zadání trasy zařízení eth2:

sudo ip route del 172.19.1.0/24

Nyní ověřte, zda byl záznam úspěšně odstraněn:

ip route show

16. Jak přidám trvalé statické trasy

Všechny výše uvedené trasy budou po restartu systému ztraceny. Chcete-li přidat trvalou statickou trasu, upravte soubor /etc/sysconfig/network-scripts/route-eth2 (Statickou trasu ukládáme pro (eth2). Ve výchozím nastavení Soubor route-eth2 zde nebude a je třeba jej vytvořit.

Nastavte trvalou trasu v RHEL Systems

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

a přidejte následující řádky a uložte a ukončete.

172.19.1.0/24 via 172.19.1.2 dev eth2

Nastavte trvalou cestu v systémech Debian

Otevřete soubor /etc/network/interfaces a na konec přidejte trvalé statické trasy. IP adresy se mohou ve vašem prostředí lišit.

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

Poté restartujte síťové služby po zadání všech podrobností pomocí následujícího příkazu.

sudo systemctl restart networking

17. Jak přidám výchozí bránu

V sítích hraje důležitou roli výchozí brána. Používá se, když směrovací tabulka neobsahuje žádné informace o cíli.

Výchozí bránu lze zadat globálně nebo pro konfigurační soubory specifické pro rozhraní. Výhodou výchozí brány je, že v systému máme více než jednu síťovou kartu. Výchozí bránu můžete přidat za chodu, jak je znázorněno pod příkazem.

Nejprve přidejte síťové rozhraní eth0 jako výchozí bránu:

sudo ip route add default via 172.17.0.1

Nyní ověřte výchozí nastavení brány pomocí následujícího příkazu:

ip route show

Vezměte prosím na vědomí, že jsme tento příkaz provedli na testovacím počítači. Při používání tohoto příkazu v produkčním prostředí buďte opatrní.

18. Jak odebrat výchozí bránu

K odstranění výchozí brány můžeme použít následující příkaz:

sudo ip route del default

Nyní uveďme seznam směrovací tabulky, abychom ověřili, že výchozí brána byla odstraněna:

ip route show

19. Jak zobrazit mezipaměť ARP

ARP znamená Address Resolution Protocol, který se používá k nalezení MAC adresy spojené s konkrétní IP adresou.

K zobrazení mezipaměti ARP můžeme použít objekt neigh s příkazem ip:

ip neigh show

Ve výše uvedeném příkazu představuje neigh sousední objekty.

20. Jak přidat položku ARP

Pro vytvoření nového záznamu ARP můžeme použít dílčí příkaz add s objektem neigh.

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

Nyní si uveďme seznam položek mezipaměti ARP:

ip neigh show

Ve výše uvedeném výstupu můžeme vidět novou položku pro síťové rozhraní eth2.

21. Jak odebrat položku ARP

Stejně jako ostatní síťové objekty můžeme k odstranění položky ARP použít dílčí příkaz del. Například níže uvedený příkaz odstraní položku ARP síťového rozhraní eth2:

sudo ip neigh del 172.19.1.0 dev eth2

Nyní ověřte, že záznam byl odstraněn, uvedením mezipaměti ARP:

ip neigh show 

22. Jak vyprázdnit položky ARP

K odstranění více položek ARP můžeme použít dílčí příkaz flush. Chcete-li to pochopit, nejprve přidejte několik položek ARP se stavem 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

Dále ověřte, zda byly nové položky úspěšně přidány:

ip neigh show

Poté vyprázdněte všechny položky pomocí níže uvedeného příkazu:

sudo ip neigh flush all

Nakonec ověřte, že byly odstraněny všechny položky:

ip neigh show

23. Jak nastavit MTU pro síťové rozhraní

MTU znamená Maximum Transmission Unit, což představuje největší velikost paketu, kterou lze přenést v rámci jedné transakce. Můžeme manipulovat s velikostí MTU podle našich požadavků na výkon.

Nejprve najdeme MTU síťového rozhraní eth2:

ip -j -p link show eth2 | grep mtu

Dále aktualizujte velikost MTU síťového rozhraní eth2 na 3000:

sudo ip link set mtu 3000 dev eth2

Nakonec ověřte, že MTU byla úspěšně aktualizována:

ip -j -p link show eth2 | grep mtu

24. Jak změnit síťovou adresu Mac

příkaz ip nám umožňuje změnit MAC adresu síťového rozhraní. Abychom toho dosáhli, můžeme použít dílčí příkaz set s objektem link:

Nejprve uveďte aktuální MAC adresu síťového rozhraní eth2:

ip -j -p link show eth2 | grep address

Dále změňte MAC adresu síťového rozhraní pomocí níže uvedeného příkazu:

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

Nakonec ověřte, že se MAC adresa změnila:

ip -j -p link show eth2 | grep address

Chcete-li se dozvědět více o příkazu IP, podívejte se na manuálovou stránku pomocí příkazu man ip z terminálu/příkazového řádku.

man ip
Závěr

V tomto článku jsme probrali některé běžné příklady příkazu ip. Tyto příklady lze použít v každodenním životě k provádění správy sítě.

Znáte nějaký další nejlepší příklad příkazu ip v Linuxu? Dejte nám vědět své názory v komentářích níže.