Come funziona localhost 127.0.0.1?


17

Ho trovato alcuni articoli relativi a questo, ma non erano sufficienti per me. Voglio sapere come localhostfunziona e perché è lo stesso su molte macchine diverse?

In che modo viene localhostbloccato l'accesso al sito Web quando lo utilizziamo nel hostfile per bloccare il sito Web?


2
Mi dispiace ma mi hai completamente perso nella seconda riga della tua domanda ... cosa intendi?
Windos,

1
@Windos, quando aggiungi una voce al file hosts come "127.0.0.1 www.blah.com" reindirizza quel sito a localhost (usato per lavorare con IE8 comunque)
tzup

Risposte:


23

Non parlerò del caso Windows qui, perché è un po 'diverso, ma diciamo questo: in ogni sistema operativo simile a Unix, hai due dispositivi di rete:

  • Un dispositivo di loopback
  • Un dispositivo Ethernet

Il primo è puramente "virtuale". È come una presa Ethernet che non puoi vedere. Il secondo ha a che fare con la presa Ethernet del tuo computer.

inserisci qui la descrizione dell'immagine

Cosa fa l'interfaccia di loopback? Ogni traffico inviato al loopback tornerà.

Come il tuo dispositivo Ethernet ottiene un indirizzo IP (ad esempio 192.168.1.20), anche il dispositivo di loopback avrà un indirizzo IP, vale a dire 127.0.0.1. Per renderlo più facile, puoi accedervi localhostanche da.

Se dai un'occhiata a un tipico /etc/hostsfile Unix , vedrai che 127.0.0.1 è mappato su "localhost". Quindi ogni volta che digiti "localhost", il tuo computer saprà chiamare 127.0.0.1.

E questo è il motivo per cui puoi "bloccare" le applicazioni. Supponiamo che non desideri che il tuo computer invii dati a Microsoft. Quindi puoi semplicemente reindirizzare ogni richiesta microsoft.coma 127.0.0.1 invece. Ogni tentativo di contatto microsoft.comcomporterebbe un errore.

* ogni sistema che in realtà ha una porta Ethernet hardware


In 'dows, il sottosistema DNS risolve localhost a 127.0.0.1 e il traffico a 127.0.0.1 non passa mai nemmeno a un'interfaccia, lo stack di rete si sposta indietro (è davvero esattamente lo stesso di Unix, ma senza l'interfaccia virtuale come manifestazione del processo).
jcrawfordor,

Sebbene sia possibile installare l'adattatore Microsoft Loopback, non è esattamente la stessa cosa.
slhck,

Al giorno d'oggi, molti sistemi operativi supportano 0.0.0.0, quindi utilizzalo per bloccare i siti. Evita il giro ...
Tamara Wijsman,

8

Gli indirizzi IP (Internet Protocol) rientrano in una delle quattro categorie di base.

  1. Indirizzi utilizzati per comunicare con altri computer in tutto il mondo,
  2. Indirizzi utilizzati per comunicare con i computer all'interno di una specifica azienda o rete,
  3. Indirizzi utilizzati per trasmettere informazioni tra computer su una rete,
  4. Indirizzi utilizzati per consentire a un computer di parlare da solo.

Di comune accordo, 127.0.0.1 è uno di quegli indirizzi che rientrano nell'ultima di quelle categorie.

Come umani, non tendiamo a ricordare molto bene i numeri IP, ma non abbiamo problemi a ricordare nomi come superuser.com, www.google.com e altri nomi simili. Quando Internet era piccolo (molto piccolo), gli umani condividevano un file "hosts" con altre persone su Internet in modo da non dover ricordare i numeri. Il file host conteneva coppie di un indirizzo IP e uno o più nomi host. Quando qualcuno ha cercato di accedere a un host con il suo nome, il software del computer sapeva abbastanza per andare a cercarlo nel file hosts. Da allora Internet è cresciuto così tanto che ora utilizziamo un DNS (Domain Name System) per risolvere i nomi in numeri IP oltre a utilizzare il vecchio file hosts di stile. La maggior parte dei computer sono configurati per cercare prima i nomi nel file hosts, quindi in DNS se ciò non riesce.

Ora che hai lo sfondo, ecco come funziona (di solito):

Quando aggiungi questa voce al tuo file hosts, ogni volta che il tuo computer prova a cercare anche www.foo.com, proverà a raggiungere quel sito sull'indirizzo IP 127.0.0.1 perché gli hai detto che è l'indirizzo Internet per www. foo.com. Ricorda che 127.0.0.1 consentirà a un computer di parlare da solo, quindi tentando di andare a 127.0.0.1 nel tuo browser proverà a contattare un server web sul tuo computer. Se fosse stata inserita la 2.3.4.5 anziché la 127.0.0.1, avrebbe tentato di contattare il computer all'indirizzo 2.3.4.5 all'apertura di www.foo.com.

127.0.0.1 localhost
127.0.0.1 www.foo.com
127.0.0.1 foo.com

La cosa brutta dell'uso del file hosts per cose come questa è quando si aggiunge una voce al file hosts, ci si assume la responsabilità di mantenere aggiornate tali informazioni. Se non si inserisce la voce nel file hosts, il computer proverà a utilizzare DNS per cercare l'indirizzo IP, quindi utilizzare tale indirizzo IP per contattare il server.

La cosa positiva è se non vuoi mai permettere a nessuno di parlare a www.foo.com solo con il nome host sul tuo computer, l'aggiunta della voce al tuo file host potrebbe (parola chiave - potrebbe) impedire che ciò accada. Se l'obiettivo è impedire il raggiungimento di un determinato sito con qualsiasi mezzo (non solo tramite il nome host), esistono altri modi migliori e più affidabili per impedire che ciò accada come un uso corretto di un firewall.


Al giorno d'oggi, molti sistemi operativi supportano 0.0.0.0, quindi utilizzalo per bloccare i siti. Evita il giro ...
Tamara Wijsman,

7

Localhost o 127.0.0.1 è semplicemente un "nome" incorporato per il tuo computer locale.

Cioè, 127.0.0.1 è chiamato "loopback", perché è semplicemente un puntatore che punta indietro al tuo computer. È un indirizzo IP riservato che può anche essere scritto come localhost per definizione.

Lo scopo è quello di consentire a qualcuno di parlare con il proprio computer inviando un segnale verso l'esterno e quindi ricollegandolo in modo tale che il segnale venga letto anche dallo stesso computer.

Supponiamo che tu stia eseguendo un server sul tuo computer - per accedervi, devi inviare una richiesta al server (inviare un pacchetto a 127.0.0.1) e il tuo server deve leggerlo (il tuo sistema esegue il loopback del pacchetto su il sistema locale su 127.0.0.1 che viene quindi letto dal software del server).


5

Ho scoperto una presentazione su The TCP / IP Guide che mi è sembrata molto illuminante:

Normalmente, quando un'applicazione TCP / IP desidera inviare informazioni, tali informazioni viaggiano attraverso i livelli del protocollo verso l'IP dove sono incapsulate in un datagramma IP . Il datagramma passa quindi al livello di collegamento dati della rete fisica del dispositivo per la trasmissione all'hop successivo, sulla strada per la destinazione IP.

Tuttavia, una gamma speciale di indirizzi è riservata alla funzionalità di loopback . Questo è l'intervallo da 127.0.0.0 a 127.255.255.255. Datagrammi IP inviati da un host a un 127. x . x . Gli indirizzi x di loopback non vengono passati al livello di collegamento dati per la trasmissione. Al contrario, "tornano indietro" al dispositivo di origine a livello IP. In sostanza, ciò rappresenta un "cortocircuito" dello stack di protocollo normale; i dati vengono inviati dall'implementazione IP di livello tre di un dispositivo e quindi immediatamente ricevuti da esso.


Inoltre, Rutgers ha un corso di networking che include questa illustrazione della normale comunicazione tra host,

normale comunicazione tra host

e questo del flusso di dati di loopback:

                                                    flusso di dati di loopback


4

Per la seconda parte della tua domanda, se inserisci il nome host di un sito web nel tuo file hosts con l'indirizzo 127.0.0.1 significa che quando digiti l'indirizzo nel tuo browser invece di usare DNS per trovare l'indirizzo corretto lo trova nel file hosts lo risolve dapprima in localhost e invece di andare all'indirizzo del sito Web inizia a parlare con il tuo computer, impedendo il caricamento del sito Web.


Al giorno d'oggi, molti sistemi operativi supportano 0.0.0.0, quindi utilizzalo per bloccare i siti. Evita il giro ...
Tamara Wijsman,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.