Po dlouhou dobu, ifconfig
příkaz byl výchozí metodou pro konfiguraci síťového rozhraní. Uživatelům Linuxu posloužil dobře, ale síťování je složité a příkazy k jeho konfiguraci musí být robustní. ip
command je nový výchozí síťový příkaz pro moderní systémy a v tomto článku vám ukážu, jak jej používat.
ip
příkaz je funkčně organizován na dvou vrstvách síťového zásobníku OSI:Layer 2 (vrstva datového spojení) a Layer 3 (síťová nebo IP vrstva). Dělá veškerou práci ve starých net-tools
balíček.
Instalace IP
Další zdroje pro Linux
- Cheat pro příkazy Linuxu
- Cheat sheet pro pokročilé příkazy systému Linux
- Bezplatný online kurz:Technický přehled RHEL
- Síťový cheat pro Linux
- Cheat sheet SELinux
- Cheat pro běžné příkazy pro Linux
- Co jsou kontejnery systému Linux?
- Naše nejnovější články o Linuxu
ip
příkaz je součástí iproute2util
balík. Pravděpodobně je již součástí vaší distribuce Linuxu. Pokud tomu tak není, můžete jej nainstalovat ze softwarového úložiště vašeho distribuce.
Porovnání ipconfig a využití ip
ip
a ipconfic
příkazy lze použít ke konfiguraci síťového rozhraní, ale dělají věci jinak. Porovnám, jak provádět běžné úkoly se starým (ipconfig
) a nový (ip
) příkazy.
Zobrazení síťového rozhraní a adresy IP
Pokud chcete zobrazit IP adresu hostitele nebo zobrazit informace o síťovém rozhraní, starý ifconfig
Příkaz bez argumentů poskytuje dobré shrnutí:
$ ifconfig
eth0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
ether bc:ee:7b:5e:7d:d8 txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 41 bytes 5551 (5.4 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 41 bytes 5551 (5.4 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.1.1.6 netmask 255.255.255.224 broadcast 10.1.1.31
inet6 fdb4:f58e:49f:4900:d46d:146b:b16:7212 prefixlen 64 scopeid 0x0<global>
inet6 fe80::8eb3:4bc0:7cbb:59e8 prefixlen 64 scopeid 0x20<link>
ether 08:71:90:81:1e:b5 txqueuelen 1000 (Ethernet)
RX packets 569459 bytes 779147444 (743.0 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 302882 bytes 38131213 (36.3 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
Nová ip
příkaz poskytuje podobné výsledky, ale příkaz je ip address show
, nebo jednoduše ip a
zkráceně:
$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> 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
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000
link/ether bc:ee:7b:5e:7d:d8 brd ff:ff:ff:ff:ff:ff
3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 08:71:90:81:1e:b5 brd ff:ff:ff:ff:ff:ff
inet 10.1.1.6/27 brd 10.1.1.31 scope global dynamic wlan0
valid_lft 83490sec preferred_lft 83490sec
inet6 fdb4:f58e:49f:4900:d46d:146b:b16:7212/64 scope global noprefixroute dynamic
valid_lft 6909sec preferred_lft 3309sec
inet6 fe80::8eb3:4bc0:7cbb:59e8/64 scope link
valid_lft forever preferred_lft forever
Přidat IP adresu
Přidání IP adresy do rozhraní pomocí ifconfig
, příkaz je:
$ ifconfig eth0 add 192.9.203.21
Příkaz je podobný pro ip
:
$ ip address add 192.9.203.21 dev eth0
Dílčí příkazy v ip
lze zkrátit, takže tento příkaz je stejně platný:
$ ip addr add 192.9.203.21 dev eth0
Můžete to ještě zkrátit:
$ ip a add 192.9.203.21 dev eth0
Odebrání IP adresy
Opakem přidání IP adresy je její odstranění.
Pomocí ifconfig
, syntaxe je:
$ ifconfig eth0 del 192.9.203.21
ip
syntaxe příkazu je:
$ ip a del 192.9.203.21 dev eth0
Povolení nebo zakázání vícesměrového vysílání
Povolení (nebo zakázání) vícesměrového vysílání na rozhraní pomocí ifconfig
se děje s multicast
argument:
# ifconfig eth0 multicast
S ip
, použijte set
dílčí příkaz se zařízením (dev
) a logická hodnota nebo přepínač multicast
možnost:
# ip link set dev eth0 multicast on
Povolení nebo zakázání sítě
Každý správce systému zná starý trik „vypnout a znovu zapnout“ k vyřešení problému. Pokud jde o síťová rozhraní, překládá se to jako zvednutí nebo snížení sítě.
ifconfig
Příkaz to provede pomocí up
nebo down
klíčová slova:
# ifconfig eth0 up
Nebo můžete použít vyhrazený příkaz:
# ifup eth0
ip
příkaz používá set
dílčí příkaz pro nastavení rozhraní na up
nebo down
stav:
# ip link set eth0 up
Povolení nebo zakázání protokolu Address Resolution Protocol (ARP)
Pomocí ifconfig
, povolíte ARP tím, že jej deklarujete:
# ifconfig eth0 arp
S ip
, nastavíte arp
vlastnost jako on
nebo off
:
# ip link set dev eth0 arp on
Výhody a nevýhody ip a ipconfig
ip
příkaz je všestrannější a technicky efektivnější než ifconfig
protože používá Netlink
zásuvky spíše než ioctl
systémová volání.
ip
příkaz se může zdát podrobnější a složitější než ifconfig
, ale to je jeden z důvodů, proč je univerzálnější. Jakmile jej začnete používat, pochopíte jeho vnitřní logiku (například pomocí set
namísto zdánlivě libovolné směsi deklarací nebo nastavení).
Nakonec ifconfig
je zastaralý (například postrádá plnou podporu pro síťové jmenné prostory) a ip
je určen pro moderní sítě. Vyzkoušejte to, naučte se to, používejte to. Budete rádi, že jste to udělali!