Den mest grundläggande delen av Linux-administration och felsökning är att kontrollera IP-konfigurationen av ett system för att säkerställa att systemet har en giltig IP och är tillgänglig på det lokala nätverket.
ip-kommandot i Linux är ett kraftfullt verktyg som inte bara visar den aktuella IP-adressen för ett system utan också låter dig se och hantera den aktuella konfigurationen av nätverksgränssnitt, IP-adresser, rutter och ARP tabeller.
Låt oss titta på några av de vanliga användningsfallen för ip-kommandot i Linux.
Hitta IP-adressen på Linux
Till hitta IP-adressen för ditt Linux-system, använd kommandot ip följt av adress, adr, eller a alternativ:
IP-adress
Detta kommer att visa konfigurationen av alla nätverksgränssnitt inklusive deras IP-adresser.
I följande exempel kan du se att systemet har tre nätverksgränssnitt: lo (loopback-adress), ens33, och ens37. Utgången innehåller följande information:
- Layer 1-information såsom gränssnittskapacitet och fysiskt lager anslutningstillstånd, MTU, gränssnittets drifttillstånd (t.ex. UPP eller NER) och överföringskölängd (qlen).
- Layer 2-information som gränssnittets MAC-adress.
- Information på lager 3 inkluderar IP-adressen och dess typ (dynamisk IP-adressering eller statisk IP-adressering).
För att visa kort information om nätverksgränssnitt, använd ip-kommandot med --kort alternativ enligt följande:
ip --kort adressshow
För att endast visa IPv4-adressinformation, använd följande kommando:
ip -4 adress
För att ta reda på IP-adressinformationen för en viss nätverksgränssnitt, använd följande syntax:
IP-adress show dev [gränssnitt]
Till exempel för att se IP-adressen för ett nätverksgränssnitt ens33, kommandot skulle vara:
IP-adress show utvecklare33
Visa och ändra MAC-adressen
Med hjälp av ip-kommandot kan du också visa och ändra MAC-adressen för ditt system.
Till visa MAC-adressen för ditt Linux-system, använd följande kommando:
ip --kort länk visa
För att se MAC-adressen för ett visst gränssnitt, använd:
ip --kort länk visa dev [gränssnitt]
Till ändra MAC-adressen, ta först ner gränssnittet:
sudo ip-länk uppsättning dev [gränssnitt] ner
Använd sedan följande kommando för att ändra MAC-adressen för ditt gränssnitt:
sudo ip-länk uppsättning dev [gränssnitt] adress [ny-mac-adress]
Ta sedan upp gränssnittet:
sudo ip-länk uppsättning dev [gränssnitt] upp
Visa nätverksgränssnittsstatistik
Med hjälp av ip-kommandot kan du också se statistiken för ett nätverksgränssnitt. Använd följande ip-kommando för att se statistiken för alla nätverksgränssnitt på ditt system:
ip -s länk
Utdata inkluderar statistik som överförda och mottagna byte/paket, fel, tappade paket, multicast, etc. För att visa statistik för ett visst gränssnitt, använd följande syntax:
ip -s länk show dev [gränssnitt]
För att ta fram ett gränssnitt, använd följande ip-kommando:
sudo ip-länk uppsättning [gränssnitt] upp
För att få ner gränssnittet, kör:
sudo ip-länk uppsättning [gränssnitt] ner
Du kan också ändra MTU (maximal transmission unit) för ett gränssnitt med följande kommando:
sudo ip-länk uppsättning mtu [siffra] utvecklare [gränssnitt]
Till exempel för att ställa in MTU för ett nätverksgränssnitt ens33 till 8000, kommandot skulle vara:
sudo ip-länk uppsättning mtu 8000 dev ens33
Lägg till/ta bort IP-adress på Linux
För att lägga till en IP-adress till ett nätverksgränssnitt, använd följande syntax:
ipadrLägg till[IP-adress]dev[gränssnitt]
För att lägga till en IP-adress 192.168.42.140/24 till nätverksgränssnittet ens33, kommandot skulle vara:
ip-adress add 192.168.42.140/24 dev ens33
Använd följande kommandosyntax för att ta bort IP-adressen från ett gränssnitt:
ipadrdel[IP-adress]dev[gränssnitt]
För att ta bort IP-adressen 192.168.42.140/24 från gränssnittet ens33, kommandot skulle vara:
ip-adress del192.168.42.140/24 utvecklare33
Se routingtabellen på Linux
Kommandot ip route används för att visa och ändra rutterna i ett Linux-system. För att visa routingtabellen för ditt system, använd kommandot ip route utan något alternativ:
ip rutt
Varje rad i utgången representerar en konfigurerad rutt. En rutt består av en destinationsnätverksadress, ett nästa hopp (dvs. routerns IP-adress), ett gränssnitt genom vilket paketet kommer att skickas, och måtten (ett värde som används för att bestämma den föredragna vägen när det finns flera vägar tillgängliga för destination). Rutten med den lägre måtten är att föredra i detta fall.
I exemplet ovan representerar de två första posterna standardrutten, som används när ingen annan rutt är tillgänglig för destinationsadressen. 192.168.42.2 och 192.168.10.1 är routerns IP-adresser. Utvecklaren ens33 och ens37 ange gränssnittet som kommer att användas för att skicka paketen till routern. De proto dhcp fält indikerar att standardrutten lärs in från DHCP.
Den andra posten representerar APIPA-adressen (Automatic Private IP Addressing) 169.254.0.0/16. När en värd inte lyckas få en IP-adress från en DHCP-server, tilldelar den sig själv en slumpmässig IP-adress från detta nätverk. Det låter dem kommunicera med andra värdar i undernätet som inte heller har lyckats få IP-adressen.
Den tredje och fjärde posten visar nätverksadresserna för de lokala nätverk som systemet är anslutet till. De 192.168.10.0 är nätverket som gränssnittet ens37 är fäst vid medan 192.168.42.0 är nätverket ens33 är fäst vid.
De src fältet anger IP-adressen för gränssnittet som används som källadress när paket skickas via denna väg.
Ändra rutttabellen med ip
För att manuellt lägga till en rutt, använd kommandot ip route följt av destinationsnätverkets adress och gateway IP:
sudoipruttLägg till[nätverks ID]via[Gateway IP]
Till exempel att lägga till en rutt som skickar all trafik som är avsedd för 192.168.20.0 nätverk till gatewayen kl 192.168.10.16, skulle du använda följande kommando:
sudo ip-rutt lägg till 192.168.20.0/24 via 192.168.10.16
Använd följande kommando för att lägga till en standardrutt:
sudo ip route add standard via [ip-adress] dev [gränssnitt]
Till exempel för att lägga till standardrutten som dirigerar trafiken till routern på 192.168.10.1 genom ens33, kommandot skulle vara:
sudoipruttLägg tillstandardvia 192.168.10.1devens33
ip rutt skaffa sig [IP-adress]
Använd följande syntax för att ta bort en routingtabellpost:
sudoipruttradera[nätverksadress]via[Gateway IP]
Du kan också se rutten en adress tar med följande syntax:
ip rutt skaffa sig [IP-adress]
Hantera Neighbor Table på Linux
Du kan använda ip granne kommando i Linux för att visa och ändra granntabellen, även känd som ARP-tabellen. För att se aktuella granntabellposter, använd följande kommando:
ip granne show
För att lägga till en ny post i granntabellen, använd följande syntax:
sudoipgnäggaLägg till[IP-adress]lladdr[MAC-adress]dev[gränssnitt]
För att ta bort en post från granntabellen, använd följande syntax:
sudoipgnäggadel[IP-adress]dev[gränssnitt]
Lägg till färg till utgången av ip-kommandot
För att göra utdata enklare och snabbare att förstå kan du lägga till färg till ip-kommandotutdata med hjälp av -c alternativ:
ip -c a
Hantera nätverk och IP-adresser på Linux
ip-kommandot i Linux är ett användbart verktyg för att administrera och felsöka nätverksanslutningar. Från att visa nätverksgränssnitten och ändra länkegenskaper till att hitta IP-adresser och hantera rutter, ip-kommandot låter dig utföra flera systemadministrationsuppgifter via kommandoraden.