Android

Linux ip příkaz s příklady

LinuxDays 2016 - Proaktívna bezpečnosť Linux systémov - Lukáš Vrabec, Vít Mojžíš

LinuxDays 2016 - Proaktívna bezpečnosť Linux systémov - Lukáš Vrabec, Vít Mojžíš

Obsah:

Anonim

Příkaz ip je výkonný nástroj pro konfiguraci síťových rozhraní, které by měl znát každý správce systému Linux. Může být použit k převedení rozhraní nahoru nebo dolů, přiřazení a odebrání adres a tras spravujících mezipaměť ARP a mnohem více.

V tomto tutoriálu vám ukážeme, jak používat příkaz ip pomocí praktických příkladů a podrobných vysvětlení nejběžnějších možností.

Jak používat příkaz ip

Obslužný program ip je součástí balíčku iproute2, který je nainstalován na všech moderních distribucích Linuxu.

Syntaxe příkazu ip je následující:

ip OBJECT COMMAND

OBJECT je typ objektu, který chcete spravovat. Nejčastěji používané objekty (nebo dílčí příkazy) jsou:

  • link ( l ) - Zobrazení a úprava síťových rozhraní. address ( a ) - Zobrazení a úprava IP adres. route ( r ) - Zobrazení a změna směrovací tabulky. neigh ( n ) - Zobrazení a manipulace se sousedními objekty (tabulka ARP).

Objekt lze napsat v plné nebo zkrácené podobě. Jak zobrazit seznam příkazů a argumentů pro každý typ objektu ip OBJECT help . každý dílčí příkaz

Při konfiguraci síťových rozhraní musíte provést příkazy jako root nebo uživatel s právy sudo. Jinak příkaz vytiskne RTNETLINK answers: Operation not permitted

Konfigurace nastavené pomocí příkazu ip nejsou trvalé. Po restartu systému dojde ke ztrátě všech změn. Pro trvalé nastavení musíte upravit konfigurační soubory specifické pro distro nebo přidat příkazy do spouštěcího skriptu.

Zobrazení a úprava IP adres

Při práci s objektem addr mají příkazy následující podobu:

ip addr ADDRESS dev IFNAME

Nejčastěji používané příkazy objektu addr jsou: show , add a del .

Zobrazí informace o všech IP adresách

Chcete-li zobrazit seznam všech síťových rozhraní a přidružené adresy IP, zadejte následující příkaz:

ip addr show

Výstup bude vypadat asi takto:

1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever 2: eth0: mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 52:54:00:8c:62:44 brd ff:ff:ff:ff:ff:ff inet 192.168.121.241/24 brd 192.168.121.255 scope global dynamic eth0 valid_lft 2900sec preferred_lft 2900sec inet6 fe80::5054:ff:fe8c:6244/64 scope link valid_lft forever preferred_lft forever 1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever 2: eth0: mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 52:54:00:8c:62:44 brd ff:ff:ff:ff:ff:ff inet 192.168.121.241/24 brd 192.168.121.255 scope global dynamic eth0 valid_lft 2900sec preferred_lft 2900sec inet6 fe80::5054:ff:fe8c:6244/64 scope link valid_lft forever preferred_lft forever

1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever 2: eth0: mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 52:54:00:8c:62:44 brd ff:ff:ff:ff:ff:ff inet 192.168.121.241/24 brd 192.168.121.255 scope global dynamic eth0 valid_lft 2900sec preferred_lft 2900sec inet6 fe80::5054:ff:fe8c:6244/64 scope link valid_lft forever preferred_lft forever

Stejný výstup získáte, pokud zadáte příkaz show a vynecháte příkaz: ip addr .

Zobrazení informací o jediném síťovém rozhraní

Chcete-li získat informace o konkrétním síťovém rozhraní, použijte ip addr show dev následovaný názvem zařízení. Chcete-li například zadat dotaz eth0 , zadejte:

ip addr show dev eth0

Přiřaďte adresy IP rozhraní

Chcete-li rozhraní přiřadit adresu IP, použijte následující syntaxi:

ip addr add ADDRESS dev IFNAME

Kde IFNAME je název rozhraní a ADDRESS je adresa IP, kterou chcete rozhraní přiřadit.

Chcete-li přidat adresu 192.168.121.45 pomocí síťové masky 24 do zařízení eth0 , zadejte:

sudo ip address add 192.168.121.45/24 dev eth0

Po úspěchu příkaz nezobrazí žádný výstup. Pokud rozhraní neexistuje, zobrazí se Cannot find device "eth0" .

Ke stejnému rozhraní přiřaďte více adres IP

Pomocí ip můžete ke stejnému rozhraní přiřadit více adres. Například:

sudo ip address add 192.168.121.241/24 dev eth0 sudo ip address add 192.168.121.45/24 dev eth0

Chcete-li potvrdit, že IP jsou přiřazeny, zadejte ip -4 addr show dev eth0 nebo ip -4 a show dev eth0 :

2: eth0: mtu 1500 qdisc fq_codel state UP group default qlen 1000 inet 192.168.121.241/24 brd 192.168.121.255 scope global dynamic eth0 valid_lft 3515sec preferred_lft 3515sec inet 192.168.121.45/24 scope global secondary eth0 valid_lft forever preferred_lft forever

2: eth0: mtu 1500 qdisc fq_codel state UP group default qlen 1000 inet 192.168.121.241/24 brd 192.168.121.255 scope global dynamic eth0 valid_lft 3515sec preferred_lft 3515sec inet 192.168.121.45/24 scope global secondary eth0 valid_lft forever preferred_lft forever

Odebrat / odstranit IP adresu z rozhraní

Syntaxe pro odebrání adresy IP z rozhraní je následující:

ip addr dev ADDRESS dev IFNAME

IFNAME je název rozhraní a ADDRESS je adresa IP, kterou chcete z rozhraní odebrat.

Odebrání adresy 192.168.121.45/24 ze zařízení eth0:

sudo ip address del 192.168.121.45/24 dev eth0

Zobrazení a úprava síťových rozhraní

Chcete-li spravovat a zobrazit stav síťových rozhraní, použijte link objekt.

Nejčastěji používané příkazy při práci s link objekty jsou: show , set , add a del .

Zobrazení informací o síťových rozhraních

Chcete-li zobrazit seznam všech síťových rozhraní, zadejte následující příkaz:

ip link show

1: lo: mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: eth0: mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000 link/ether 52:54:00:8c:62:44 brd ff:ff:ff:ff:ff:ff 1: lo: mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: eth0: mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000 link/ether 52:54:00:8c:62:44 brd ff:ff:ff:ff:ff:ff

1: lo: mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: eth0: mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000 link/ether 52:54:00:8c:62:44 brd ff:ff:ff:ff:ff:ff

Na rozdíl od ip addr show , ip link show nevytiskne informace o IP adresách přidružených k zařízení.

Chcete-li získat informace o konkrétním síťovém rozhraní, použijte ip link show dev následovaný názvem zařízení. Chcete-li například zadat dotaz eth0 , zadejte:

ip link show dev eth0

2: eth0: mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000 link/ether 52:54:00:8c:62:44 brd ff:ff:ff:ff:ff:ff

2: eth0: mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000 link/ether 52:54:00:8c:62:44 brd ff:ff:ff:ff:ff:ff

Změňte stav rozhraní NAHORU / DOLŮ

Chcete-li přenést rozhraní nahoru nebo dolů, použijte ip link set dev následovaný názvem zařízení a požadovaným stavem:

ip link set dev {DEVICE} up

Chcete-li například uvést rozhraní eth0 online, zadejte:

ip link set eth0 up

A přivést je offline

ip link set eth0 down

Zobrazení a změna směrovací tabulky

K přiřazení, odebrání a zobrazení směrovací tabulky jádra použijte objekt route . Nejčastěji používané příkazy při práci s objekty tras jsou: list , add a del .

Zobrazit směrovací tabulku

Chcete-li získat seznam položek trasy jádra, použijte jeden z následujících příkazů:

ip route ip route list ip route list SELECTOR

Při použití bez SELECTOR příkaz zobrazí seznam všech položek trasy v jádře:

ip route list

default via 192.168.121.1 dev eth0 proto dhcp src 192.168.121.241 metric 100 192.168.121.0/24 dev eth0 proto kernel scope link src 192.168.121.241 192.168.121.1 dev eth0 proto dhcp scope link src 192.168.121.241 metric 100

Chcete-li zobrazit pouze směrování pro konkrétní síť, například 172.17.0.0/16 , zadejte:

ip r list 172.17.0.0/16

172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown

Přidejte novou trasu

Chcete-li přidat novou položku do směrovací tabulky, použijte příkaz route add následovaný názvem sítě nebo zařízení.

Přidejte cestu k 192.168.121.0/24 přes bránu na 192.168.121.1

ip route add 192.168.121.0/24 via 192.168.121.1

Přidejte cestu na 192.168.121.0/24, která je dosažitelná na zařízení eth0.

ip route add 192.168.121.0/24 dev eth0

Chcete-li přidat výchozí trasu, použijte default klíčové slovo. Následující příkaz přidá výchozí trasu přes místní bránu 192.168.121.1 kterou lze dosáhnout na zařízení eth0 .

ip route add default via 192.168.121.1 dev eth0

Vymazání trasy

Chcete-li odstranit položku z směrovací tabulky, použijte příkaz route add . Syntaxe pro odstranění trasy je stejná jako při přidávání.

Následující příkaz odstraní výchozí trasu:

ip route del default

Odstranit trasu pro 192.168.121.0/24 přes bránu na 192.168.121.1

ip route add 192.168.121.0/24 via 192.168.121.1

Závěr

Nyní byste měli dobře rozumět tomu, jak používat příkaz Linux ip . Další informace o dalších možnostech ip naleznete na manuálové stránce příkazu ip nebo do svého terminálu zadejte man ip .

ip terminál