Znalazłem kilka artykułów z tym związanych, ale nie były one dla mnie wystarczające. Chcę wiedzieć, jak localhost
działa i dlaczego jest taki sam na wielu różnych maszynach?
W jaki sposób localhost
blokuje dostęp do strony internetowej, gdy wykorzystujemy ją w host
pliku do blokowania strony internetowej?
windows-7
localhost
hosts-file
avirk
źródło
źródło
Odpowiedzi:
Nie będę tutaj mówił o obudowie Windows, ponieważ jest nieco inna, ale powiedzmy tak: w każdym * systemie operacyjnym uniksowym masz dwa urządzenia sieciowe:
Pierwszy jest czysto „wirtualny”. To jest jak wtyczka Ethernet, której nie widać. Drugi dotyczy wtyczki Ethernet w twoim komputerze.
Do czego służy interfejs sprzężenia zwrotnego? Każdy ruch wysyłany do pętli zwrotnej powróci.
Podobnie jak twoje urządzenie Ethernet otrzymuje adres IP (na przykład 192.168.1.20), urządzenie z pętlą zwrotną również będzie miało adres IP, a mianowicie 127.0.0.1. Aby to ułatwić, możesz także uzyskać do niego dostęp
localhost
.Jeśli spojrzysz na typowy
/etc/hosts
plik uniksowy , zobaczysz, że 127.0.0.1 jest mapowany na „localhost”. Gdy więc wpiszesz „localhost”, Twój komputer będzie wiedział, że może zadzwonić na numer 127.0.0.1.I to jest powód, dla którego możesz „blokować” aplikacje. Powiedzmy, że nie chcesz, aby komputer wysyłał dane do firmy Microsoft. Następnie możesz po prostu przekierować każde żądanie
microsoft.com
na adres 127.0.0.1. Każda próba kontaktumicrosoft.com
spowoduje niepowodzenie.* każdy system, który faktycznie ma sprzętowy port Ethernet
źródło
Adresy protokołu internetowego (IP) należą do jednej z czterech podstawowych kategorii.
Zgodnie z umową 127.0.0.1 jest jednym z adresów należących do ostatniej z tych kategorii.
Jako ludzie nie pamiętamy zbyt dobrze numerów IP, ale nie mamy problemu z zapamiętywaniem nazw takich jak superuser.com, www.google.com i innych podobnych nazw. Kiedy internet był mały (bardzo mały), ludzie udostępnili plik „hostów” innym osobom w Internecie, aby nie musiały pamiętać numerów. Ten plik hostów zawierał pary adresu IP i co najmniej jedną nazwę hosta. Gdy ktoś próbował uzyskać dostęp do hosta według jego nazwy, oprogramowanie komputerowe wiedziało wystarczająco dużo, aby sprawdzić go w pliku hosts. Od tego czasu Internet rozwinął się tak bardzo, że teraz używamy systemu nazw domen (DNS) w celu rozpoznawania nazw na numery IP oprócz korzystania ze starego pliku hosts. Większość komputerów jest skonfigurowana do wyszukiwania nazw w pliku hosts, a następnie w DNS, jeśli to się nie powiedzie.
Teraz, gdy masz już tło, oto jak to działa (zwykle):
Gdy dodasz ten wpis do pliku hosts, za każdym razem, gdy Twój komputer spróbuje również wyszukać www.foo.com, spróbuje dotrzeć do tej strony pod adresem IP 127.0.0.1, ponieważ powiedziałeś, że to adres internetowy www. foo.com. Pamiętaj, że 127.0.0.1 pozwoli komputerowi mówić do siebie, więc próba przejścia do 127.0.0.1 w przeglądarce spróbuje skontaktować się z serwerem internetowym na twoim komputerze. Jeśli wprowadziłeś 2.3.4.5 zamiast 127.0.0.1, próbowałbyś skontaktować się z komputerem pod adresem 2.3.4.5 podczas otwierania www.foo.com.
Złą rzeczą w używaniu pliku hosts do takich rzeczy jest to, że po dodaniu wpisu do pliku hosts przyjmujesz odpowiedzialność za aktualizowanie tych informacji. Jeśli nie umieścisz wpisu w pliku hosts, komputer spróbuje użyć DNS, aby wyszukać adres IP, a następnie użyj tego adresu IP, aby skontaktować się z serwerem.
Dobrą rzeczą jest to, że jeśli nigdy nie chcesz, aby ktokolwiek mógł rozmawiać z www.foo.com tylko nazwą hosta na twoim komputerze, dodanie wpisu do pliku hosts może (słowo kluczowe - może) temu zapobiec. Jeśli celem jest uniemożliwienie kiedykolwiek dostępu do określonej witryny w jakikolwiek sposób (nie tylko według nazwy hosta), istnieją inne lepsze i bardziej niezawodne sposoby, aby zapobiec takiemu prawidłowemu użyciu zapory.
źródło
Localhost lub 127.0.0.1 to po prostu wbudowana „nazwa” dla twojego komputera lokalnego.
Oznacza to, że 127.0.0.1 nazywa się „pętlą zwrotną”, ponieważ jest to tylko wskaźnik, który wskazuje na twoją maszynę. Jest to zarezerwowany adres IP, który z definicji można również zapisać jako host lokalny.
Ma to na celu umożliwienie rozmowy z komputerem przez wysłanie sygnału na zewnątrz, a następnie zapętlenie go z powrotem, tak aby sygnał był również odczytywany przez ten sam komputer.
Załóżmy, że masz serwer na swoim komputerze - aby uzyskać do niego dostęp, musisz wysłać żądanie do serwera (wysłać pakiet na adres 127.0.0.1), a serwer musi go odczytać (system zapętla pakiet z powrotem do system lokalny w wersji 127.0.0.1, który jest następnie odczytywany przez oprogramowanie serwera).
źródło
Odkryłem prezentację w Przewodniku TCP / IP, która wydała mi się bardzo pouczająca:
Ponadto Rutgers ma kurs sieciowy, który zawiera ilustrację normalnej komunikacji między hostami,
i ten przepływ danych w pętli zwrotnej:
źródło
Jeśli chodzi o drugą część pytania, jeśli umieścisz nazwę hosta witryny w pliku hosts o adresie 127.0.0.1, oznacza to, że po wpisaniu adresu w przeglądarce zamiast używania DNS w celu znalezienia poprawnego adresu, znajduje on w pliku hosts najpierw rozpoznaje go jako localhost i zamiast iść na adres strony, zaczyna rozmawiać z komputerem, co powoduje, że strona się nie ładuje.
źródło