Il tuo indirizzo IPv4:
Sistema operativo:

Che cos'è localhost? Loopback, 127.0.0.1 e ::1

localhost indica di norma la macchina da cui parte la richiesta. I suoi indirizzi più noti sono 127.0.0.1 per IPv4 e ::1 per IPv6. Il traffico diretto a questi indirizzi viene gestito all'interno dello stack di rete della macchina, senza passare dal router di casa verso Internet. Un test su localhost risponde quindi a una domanda molto precisa: il servizio funziona in locale?

Gli intervalli di indirizzi di loopback

IPv4 riserva al loopback l'intero blocco 127.0.0.0/8, anche se negli esempi si usa quasi sempre 127.0.0.1. IPv6 ha l'indirizzo speciale ::1/128. I loro ruoli sono descritti nella RFC 1122 e nella RFC 4291. Il nome localhost di solito si risolve in questi indirizzi tramite la configurazione locale del sistema. Una determinata applicazione può provare prima IPv4 o prima IPv6, quindi se una delle due funziona e l'altra no non significa per forza che l'intera rete abbia un problema.

Un esempio con un server web locale

Uno sviluppatore avvia un'applicazione in ascolto su 127.0.0.1:8000 e apre http://localhost:8000 sullo stesso computer. È un test utile, che non espone l'applicazione ad altri dispositivi. Se un telefono collegato allo stesso Wi-Fi apre localhost:8000, prova a connettersi a se stesso, non al computer dello sviluppatore. Per raggiungere l'applicazione dal telefono, il servizio deve essere in ascolto su un'interfaccia di rete adatta, il firewall deve consentire la connessione e il telefono deve usare l'indirizzo LAN del computer. Non pubblicare su Internet un server di sviluppo senza una protezione adeguata.

Indirizzo di ascolto e accesso dall'esterno

Un servizio collegato solo a 127.0.0.1 o ::1 non è raggiungibile direttamente da un altro dispositivo. Con IPv4, il binding su 0.0.0.0 significa in genere ascoltare su tutte le interfacce IPv4 pertinenti, ma neppure questo garantisce l'accesso dall'esterno. Firewall, container, NAT e regole del provider possono bloccare il percorso. Il comportamento analogo in IPv6 dipende dall'applicazione e dalle impostazioni del sistema. Una verifica delle porte da Internet non può confermare che un servizio in ascolto solo sul loopback funzioni in locale. Esegui prima il test in locale, poi verifica separatamente ogni confine di rete.

Un errore comune con container e server

All'interno di un container o su un server remoto, localhost indica quel container o quel server, non il tuo portatile. Una stringa di connessione al database che punta a localhost può quindi funzionare durante lo sviluppo locale e smettere di funzionare dopo il rilascio, quando il database si trova su un'altra macchina. Per la diagnosi, individua dove viene eseguito il client, poi controlla il nome host di destinazione, la porta e l'indirizzo su cui il servizio è in ascolto. Non sostituire localhost con un IP pubblico senza valutare l'esposizione. Per la comunicazione interna è spesso più indicato un indirizzo di rete privato o un nome host specifico del servizio.