De flesta av oss har hört talas om ”127.0.0.1 och 0.0.0.0” men har antagligen inte tänkt mycket på dem, men om båda faktiskt verkar peka på samma plats, vad är då den faktiska skillnaden mellan de två? Dagens SuperUser Q & A-inlägg hjälper till att rensa upp saker för en förvirrad läsare.
Dagens Fråga & Svar-session kommer till oss med tillstånd av SuperUser - en underavdelning av Stack Exchange, en community-driven gruppering av Q & A-webbplatser.
Foto med tillstånd av Kate Gardiner (Flickr) .
Frågan
SuperUser-läsaren Sagnik Sarkar vill veta vad som är skillnaden mellan 127.0.0.1 och 0.0.0.0:
Jag förstår att 127.0.0.1 pekar på lokal värd och att 0.0.0.0 också gör det (korrigera mig om jag har fel). Så, vad är skillnaden mellan 127.0.0.1 och 0.0.0.0?
Vad är skillnaden mellan 127.0.0.1 och 0.0.0.0?
Svaret
SuperUser-bidragsgivaren DavidPostill har svaret för oss:
Vad är skillnaden mellan 127.0.0.1 och 0.0.0.0?
- 127.0.0.1 är loopback-adressen (även känd som localhost).
- 0.0.0.0 är en icke-routbar meta-adress som används för att beteckna ett ogiltigt, okänt eller icke-tillämpligt mål (en platshållare för 'ingen särskild adress').
I samband med en ruttpost betyder det vanligtvis standardrutten.
I samband med servrar betyder 0.0.0.0 alla IPv4-adresser på den lokala maskinen . Om en värd har två IP-adresser, 192.168.1.1 och 10.1.2.1, och en server som körs på värden lyssnar på 0.0.0.0, kan den nås på båda dessa IP-adresser.
Vad är IP-adressen 127.0.0.1?
127.0.0.1 är loopback Internet Protocol (IP) -adress som även kallas lokal värd . Adressen används för att upprätta en IP-anslutning till samma maskin eller dator som används av slutanvändaren.
Samma konvention definieras för datorer som stöder IPv6-adressering med hjälp av konnotationen av :: 1. Att skapa en anslutning med adressen 127.0.0.1 är den vanligaste metoden; att använda vilken IP-adress som helst i intervallet 127 ... * fungerar dock på samma eller liknande sätt. Loopback-konstruktionen ger en dator eller enhet som kan nätverka möjligheten att validera eller etablera IP-stacken på maskinen.
Källa: 127.0.0.1 - Vad är dess användning och varför är det viktigt?
Särskilda adresser
Klass A-nätverksnummer 127 tilldelas loopback funktion, det vill säga ett datagram som skickas av ett högre nivåprotokoll till en nätverks 127-adress ska slinga tillbaka inuti värden. Inget datagram skickas till ett nätverk 127-adress ska någonsin visas i vilket nätverk som helst.
Källa: Nätverksnummer
Om det är hela klass A, vad är poängen med andra godtyckliga värden för de sista tre oktetterna?
Syftet med loopback-intervallet är testning av TCP / IP-protokollimplementeringen på en värd. Eftersom de nedre skikten är kortslutna, kan sändning till en loopback-adress göra det möjligt att testa de högre skikten (IP och högre) utan risk för att problem vid de nedre skikten manifesterar sig. 127.0.0.1 är den adress som oftast används för teständamål.
Källa: IP-reserverade, Loopback och privata adresser
För mer information se Fråga Ubuntu fråga: Vad är Loopback-enheten och hur använder jag den?
Vad är IP-adressen 0.0.0.0?
0.0.0.0 är en giltig adressyntax. Så det ska analyseras som giltigt varhelst en IP-adress i traditionell prickad decimalnotation förväntas. En gång analyserad och konverterad till fungerande numerisk form, bestämmer dess värde vad som händer nästa.
Värdet helt noll har en speciell betydelse. Så är det giltig , men har en betydelse som kanske inte är lämplig (och därmed behandlas som ogiltig) för särskilda omständigheter. Det är i grunden platshållaren "ingen särskild adress". För saker som adressbindning av nätverksanslutningar kan resultatet bli att tilldela anslutningen en lämplig gränssnittsadress. Om du använder det för att konfigurera ett gränssnitt kan det istället ta bort en adress från gränssnittet. Det beror på användningssammanhanget för att avgöra vad ”ingen särskild adress” verkligen gör.
I samband med en ruttpost betyder det vanligtvis standardrutten. Det händer som ett resultat mer av adressmasken, som väljer de bitar som ska jämföras. En mask på 0.0.0.0 väljer inga bitar, så jämförelsen kommer alltid att lyckas. Så när en sådan rutt är konfigurerad finns det alltid någonstans för paket att gå (om de är konfigurerade med en giltig destination).
I vissa fall fungerar bara ”0” också och har samma effekt. Men detta är inte garanterat. Formuläret 0.0.0.0 är det vanliga sättet att säga ”ingen särskild adress” (i IPv6 som är ::0 eller bara :: ).
Källa: Vad betyder IP-adressen 0.0.0.0?
I Internetprotokoll version 4 är adressen 0.0.0.0 en icke-routbar meta-adress som används för att beteckna ett ogiltigt, okänt eller inte tillämpligt mål. Att ge en speciell mening till en annars ogiltig bit data är en tillämpning av in-band-signalering.
I samband med servrar betyder 0.0.0.0 alla IPv4-adresser på den lokala maskinen . Om en värd har två IP-adresser, 192.168.1.1 och 10.1.2.1, och en server som körs på värden lyssnar på 0.0.0.0, kommer den att nås på båda dessa IP-adresser ( Notera: Denna speciella text upprepas ovanifrån som en del av det övergripande svaret ).
I samband med routing betyder 0.0.0.0 vanligtvis standardrutten, dvs. den rutt som leder till "resten av" Internet istället för någonstans i det lokala nätverket.
Användningar inkluderar:
- Adressen som en värd gör anspråk på som sin egen när den ännu inte har tilldelats en adress. Såsom när du skickar det första DHCPDISCOVER-paketet när du använder DHCP.
- Adressen som en värd tilldelar sig själv när en adressförfrågan via DHCP misslyckades, förutsatt att värdens IP-stack stöder detta. Denna användning har ersatts med APIPA-mekanismen i moderna operativsystem.
- Ett sätt att specificera valfri IPv4-värd alls . Den används på detta sätt när du anger en standardrutt.
- Ett sätt att uttryckligen ange att målet inte är tillgängligt. Källa: 127.0.0.1 - Vad är dess användning och varför är det viktigt?
- Ett sätt att specificera valfri IPv4-adress alls . Den används på det här sättet när du konfigurerar servrar (dvs. när du kopplar in lyssningsuttag). Detta är känt för TCP-programmerare som INADDR_ANY. [ bind (2) binder till adresser, inte gränssnitt. ]
I IPv6 skrivs all-nolladressen som ::
Källa: 0.0.0.0 [Wikipedia]
DHCP Discovery / Request
När en klient startar upp för första gången sägs det vara i initialiserande tillstånd , och sänder ett DHCPDISCOVER-meddelande på sitt lokala fysiska undernät via User Datagram Protocol (UDP) -port 67 (BootP-server). Eftersom klienten inte kan känna till det undernät som den tillhör, är DHCPDISCOVER en all subnät-sändning (destinations-IP-adress 255.255.255.255), med en käll-IP-adress på 0.0.0.0. Källans IP-adress är 0.0.0.0 eftersom klienten inte har en konfigurerad IP-adress.
Om det finns en DHCP-server i det här lokala undernätet och är konfigurerad och fungerar korrekt, kommer DHCP-servern att höra sändningen och svara med ett DHCPOFFER-meddelande. Om det inte finns en DHCP-server i det lokala undernätet måste det finnas en DHCP / BootP-reläagent på det här lokala undernätet för att vidarebefordra DHCPDISCOVER-meddelandet till ett undernät som innehåller en DHCP-server.
Denna reläagent kan antingen vara en dedikerad värd (till exempel Microsoft Windows Server) eller en router (en Cisco-router konfigurerad med exempelvis IP-hjälparuttalanden).
…
Efter att klienten mottagit en DHCPOFFER svarar den med ett DHCPREQUEST-meddelande, vilket anger sin avsikt att acceptera parametrarna i DHCPOFFER och flyttar in i begärande tillstånd . Klienten kan ta emot flera DHCPOFFER-meddelanden, ett från varje DHCP-server som fick det ursprungliga DHCPDISCOVER-meddelandet. Klienten väljer en DHCPOFFER och svarar endast på den DHCP-servern, vilket implicit avvisar alla andra DHCPOFFER-meddelanden. Klienten identifierar den valda servern genom att fylla i Serveridentifierare alternativfält med DHCP-serverns IP-adress.
DHCPREQUEST är också en sändning, så alla DHCP-servrar som skickade en DHCPOFFER kommer att se DHCPREQUEST, och var och en vet om dess DHCPOFFER accepterades eller avvisades. Eventuella ytterligare konfigurationsalternativ som klienten behöver inkluderas i alternativfältet i DHCPREQUEST-meddelandet. Även om klienten har erbjudits en IP-adress kommer den att skicka DHCPREQUEST-meddelandet med en käll-IP-adress på 0.0.0.0. För närvarande har klienten ännu inte fått verifiering att det är tydligt att använda IP-adressen.
…
Klient-server-konversation för en klient som får en DHCP-adress där klienten och DHCP-servern finns i samma undernät:
![]()
Källa: Förstå och felsöka DHCP i Catalyst Switch eller Enterprise Networks
Standardväg
Det här dokumentet förklarar hur man konfigurerar en standardväg eller gateway för sista utväg. Dessa IP-kommandon används:
- ip standard-gateway
- ip standard-nätverk
- ip-rutt 0.0.0.0 0.0.0.0
IP-rutt 0.0.0.0 0.0.0.0
Att skapa en statisk rutt till nätverket 0.0.0.0 0.0.0.0 är ett annat sätt att ställa in gateway för sista utväg på en router. Som med ip standard-nätverk kommandot, med den statiska vägen till 0.0.0.0 är inte beroende av några routningsprotokoll. IP-routing måste dock vara aktiverad på routern.
Notera: IGRP förstår inte en rutt till 0.0.0.0. Därför kan den inte sprida standardvägar som skapats med ip-rutt 0.0.0.0 0.0.0.0 kommando. Använd ip standard-nätverk kommando för att IGRP ska sprida en standardväg.
Har du något att lägga till förklaringen? Ljud av i kommentarerna. Vill du läsa fler svar från andra tekniskt kunniga Stack Exchange-användare? Kolla in hela diskussionstråden här .