Domanda

È sempre possibile eseguire il ping di localhost e si risolve in 127.0.0.1?

So che Windows Vista, XP, Ubuntu e Debian lo fanno, ma lo fanno tutti?

È stato utile?

Soluzione

Qualsiasi implementazione corretta di TCP / IP riserverà l'indirizzo 127.0.0.1 per fare riferimento al computer locale. Tuttavia, la mappatura del nome "localhost" a tale indirizzo dipende generalmente dal file hosts del sistema. Se dovessi rimuovere la voce localhost da hosts , il nome localhost potrebbe non risolversi affatto correttamente.

Altri suggerimenti

127.0.0.1 è riservato in qualsiasi stack IP per l'host locale.

" localhost " poiché il nome host non è non garantito. Se le impostazioni host / DNS non sono configurate correttamente, localhost non verrà risolto.

Esempio su una casella debian:

topaz:/root# vi /etc/hosts
[comment out localhost entry]

topaz:/root# ping localhost 
ping: unknown host localhost

No. Per cominciare localhost è una convenzione piuttosto che una regola. Principalmente è impostato di default, ma non c'è nulla che lo imponga.

In secondo luogo, non c'è nulla da dire che puoi sempre eseguire il ping di 127.0.0.1. Ad esempio (su un sistema unix) provare quanto segue:

sudo ifconfig lo down ping 127.0.0.1

Come cruizer ha detto , 127.0.0.1 (se esiste) è definito come macchina locale. Ma non deve esistere.

La risposta pedante (mi dispiace, Greg :), è leggere RFC 3330 :

   127.0.0.0/8 - This block is assigned for use as the Internet host
   loopback address.  A datagram sent by a higher level protocol to an
   address anywhere within this block should loop back inside the host.
   This is ordinarily implemented using only 127.0.0.1/32 for loopback,
   but no addresses within this block should ever appear on any network
   anywhere [RFC1700, page 5].

(Il "di solito" sopra dovrebbe probabilmente essere letto come "spesso" - la maggior parte dei sistemi operativi attuali supporta l'utilizzo di 127.0.0.0/8 come loopback.)

Per quanto riguarda se " localhost " si risolve sempre in 127.0.0.1 - ha ragione, è generalmente lo stesso, ma tecnicamente specifico per l'implementazione:

~> dig localhost.t...e.org

...

;; ANSWER SECTION:
localhost.t...e.org. 86400 IN    A       127.0.0.2

Se i server DNS a cui è connesso il tuo client stanno seguendo rfc1912, sì, localhost dovrebbe risolvere a 127.0.0.1.

RFC1912
4.1
...
   Certain zones should **always be present** in nameserver configurations:
           primary         localhost               localhost
           primary         0.0.127.in-addr.arpa    127.0
...
   The "localhost" address is a "special" address which always refers to
   the local host.  It should contain the following line:

           localhost.      IN      A       127.0.0.1

   The "127.0" file should contain the line:

           1    PTR     localhost.

Penso che localhost si risolva praticamente in 127.0.0.1 per la maggior parte delle piattaforme, ma tutti gli IP che iniziano con 127. . . * si risolvono anche in localhost. Prova a eseguire il ping 127.255.255.254 e continuerà a rispondere.

In teoria, ci sono casi in cui potrebbe non esistere. In pratica, è sempre lì.

I firewall decenti consentono di filtrare l'accesso anche sulle interfacce di loopback. Quindi, è possibile impostare una regola firewall che elimini i pacchetti ping icmp andando su localhost (127.0.0.1). Inoltre, come già menzionato da tutti, anche l'esistenza dell'host locale o 127.0.0.1 e l'interfaccia di loopback non sono garantite.

La risposta è:

127.0.0.1, spesso indicato come "loopback", è obbligatorio. Sebbene il tuo computer possa permetterti di fare cose stupide, come disabilitarlo o configurare quell'intervallo su un'interfaccia fisica, questi non sono tutti validi.

" localhost " è solo un nome host, che per convenzione dovrebbe essere 127.0.0.1 Come amministratore di sistema o hostmaster, è necessario evitare configurazioni che consentano a localhost di puntare ad altri indirizzi.

Non devi modificare il file hosts per modificare l'indirizzo di " localhost " ;. È necessario configurare i domini per avere un localhost. e la voce localhost.domain.com che punta a 127.0.0.1.

Non dovresti lasciare che i tuoi server proxy rispondano a " localhost " o qualsiasi nome di dominio completo che inizia con localhost.

Ok.

Il motivo per cui viene risolto è registrato nel file% WINDOWS_DIR% \ System32 \ drivers \ etc \ hosts in questo modo:

127.0.0.1 localhost

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top