Modyfikacja / etc / hosts nie działa poprawnie. Co robić?


10

Dodałem następujące linie do pliku hosts:

127.0.0.1 localhost adobe.com
127.0.0.1 adobe.com

Działa idealnie w systemie Windows. Ale w Ubuntu 11.10, kiedy próbuję uzyskać do niego dostęp za pomocą przeglądarki Firefox, strona się otwiera.

Google Chrome choć obsługuje konfigurację / etc / hosts. Google Chrome wyświetla:

„Działa! To jest domyślna strona internetowa tego serwera. Oprogramowanie serwera WWW działa, ale nie dodano jeszcze żadnych treści”.

Odpowiedzi:


10

Mogę potwierdzić twój problem, który wydaje się wpływać, między Chrome a Firefox, tylko Firefox. To jest odpowiedź dla użytkowników dotkniętych tym samym problemem i jeśli dotyczą ich obie / wszystkie przeglądarki. Wykonaj następujące kroki, aby to działało poprawnie. Zakładając, że już edytowałeś /etc/hostsplik, do którego polecam następujące 2 sposoby edycji pliku:

  • Gedit - gksudo gedit /etc/hosts(Masz teraz przyjazny dla GUI sposób edycji pliku. Gksu, który zapewnia gksudo, został wycofany w oficjalnych repozytoriach 18.04 i późniejszych).
  • nano - sudo nano /etc/hosts(Masz teraz przyjazny dla terminala sposób edycji pliku.)

I masz na przykład:

127.0.0.1 localhost adobe.com

lub

127.0.0.1 localhost
127.0.0.1 adobe.com

(Oba są tym samym.)

Najpierw przetestuj to, aby sprawdzić, czy działa poprawnie z terminala. Wpisz ping adobe.comi powinien odpowiedzieć z przypisanego do niego adresu IP. W takim przypadku powinien odpowiedzieć 127.0.0.1. To znaczy, że jest OK.

Następnie kontynuujemy testy przeglądarki. Przetestowałeś Chrome i działało. Zmieniłeś /etc/hostsmiędzy posiadaniem i brakiem wpisu dla adobe.com i działało to za każdym razem, gdy go zmieniałeś. Ale potem poszedłeś z Firefoxem, może zadziałał za pierwszym razem, ale po zmianie hostspliku tam iz powrotem jakoś przestał działać. Oznacza to, że jest to problem z pamięcią podręczną lub problem z prawidłową nazwą.

W przypadku Firefoksa i rozwiązania nazwy Firefox dodaje przedrostek www do strony internetowej Adobe, aby wyglądał jak ten „www.adobe.com”, ale w Chrome wygląda jak ten „adobe.com”. Oba wskazują na to samo miejsce, a przedrostek www jest po prostu, aby powiedzieć, że odwiedzane miejsce jest usługą internetową. Ale w przypadku problemu musisz dodać to do hostspliku, więc gdy Firefox doda prefiks www, to działa. Więc wyglądałoby to tak:

127.0.0.1 localhost
127.0.0.1 adobe.com www.adobe.com

LUB po prostu to samo

127.0.0.1 localhost adobe.com www.adobe.com

UWAGA: Pamiętaj, że musisz nacisnąć, F5aby odświeżyć kartę strony / Firefox lub zamknąć kartę i otworzyć ją ponownie, aby przetestować. Jakoś naciskanie Enterjak szalony nie wystarczy.

To powinno rozwiązać problem niektórych użytkowników, ale zakładając, że do tej pory nie rozwiązałeś problemu, możemy przetestować, co to może być.

Mamy tutaj kilka poziomów pamięci podręcznej do sprawdzenia. Masz pamięć podręczną programu, w tym przypadku Firefox, następnie pamięć podręczną systemu, w tym przypadku Ubuntu, a następnie pamięć podręczną sprzętu, w tym przypadku routera.

Z tego co wiem, wersja Ubuntu Desktop nie ma domyślnie zainstalowanej usługi pamięci podręcznej DNS. Najbardziej znanym jest nscd, a jeśli już to zainstalowałeś, wystarczy /etc/init.d/nscd restart. Ale dla większości ludzi nie będą mieli tego zainstalowanego, więc możemy unieważnić wina systemu Ubuntu.

To pozostawia router i przeglądarkę internetową. W przypadku routera należy go skonfigurować, aby zatrzymać pamięć podręczną DNS lub ponownie skonfigurować, aby rozwiązać ten problem. Zależy to całkowicie od modelu routera, producenta itp. Nie wszystkie routery robią pamięć podręczną DNS, ale niektóre robią to i trzeba by to zobaczyć w konfiguracji, jeśli ma tę opcję i jeśli opcja jest włączona. Załóżmy jednak, że nie masz routera z włączoną funkcją buforowania DNS.

To pozostawia przeglądarkę.

Aby dowiedzieć się, czy Firefox źle działa z pamięcią podręczną DNS, możesz zainstalować dodatek, aby sprawdzić pamięć podręczną DNS w przeglądarce Firefox. ten, który polecam, to pamięć podręczna DNS .

wprowadź opis zdjęcia tutaj

Po ponownym uruchomieniu Firefoksa w dolnej części powinien pojawić się trybik (podobny do trybu Ubuntu w prawym górnym rogu). Możesz kliknąć lewym przyciskiem myszy lub prawym przyciskiem myszy trybik i powinieneś zobaczyć opcje takie jak Włącz / Wyłącz DNS i Opróżnij go. Pomoże to w przypadku problemu, jakim jest pamięć podręczna DNS Firefox. Baw się tym.

Myślę, że udało mi się rozwiązać wszystkie problemy. Jeśli coś przeoczyłem, daj mi znać.


Jeśli Firefox nie przestrzega hostspliku komputera lokalnego (to znaczy, jeśli problem nadal występuje nawet po wwwdodaniu domeny z subdomeną, a nawet po odświeżeniu strony), zalecam zgłoszenie tego błędu. (Nie jestem pewien, co byłoby błędem w , ponieważ Firefox przypuszczalnie korzysta z systemu operacyjnego urządzeń rozpoznawania nazw DNS, co zrobić , albo mają, szanuję go. Ale mógł to zgłosić przed firefoxw Ubuntu, a następnie dalsze rozwiązywanie problemów mógłby prawdopodobnie retargetuj go stamtąd.)
Eliah Kagan

@EliahKagan To zależy również od tego, gdzie i jak hosting / domena jest. Niektóre witryny oferują opcję włączania korzystania z subdomeny www, a niektóre nie mają jej wstępnie skonfigurowanej, więc gdy ktoś próbował wejść na www.eliah.com, nie działa, ale eliah.com działa.
Luis Alvarado

Tak oczywiście. Nie twierdzę, że to www.foo.netpowinno działać tylko dlatego, że foo.netdziała. Zamiast tego, jeśli foo.neti www.foo.netoba są zdefiniowane jako 127.0.0.1in /etc/hosts, wpisanie foo.netpaska adresu przeglądarki internetowej i naciśnięcie Enter powinno spowodować, że przeglądarka spróbuje otworzyć połączenie 127.0.0.1:80. Jeśli nie, to gdzieś jest błąd.
Eliah Kagan

@EliahKagan - Ah! tak tak oczywiście. W takim przypadku, jeśli to nie działa, komputer jest opętany przez demona. Potrzebowalibyśmy egzorcysty i dużej ilości wody święconej lub lepszej diagnostyki problemu.
Luis Alvarado

Egzorcysta + woda święcona i lepsza diagnostyka wydają się być najbardziej rozważnym kierunkiem. :)
Eliah Kagan

7

Wiem, że ten wątek ma już rok, ale natknąłem się na niego, szukając odpowiedzi na ten sam problem. W końcu znalazłem rozwiązanie! Okazuje się, że /etc/hostsplik jest całkowicie omijany przez DNS. Aby to zmienić, musisz edytować /etc/nsswitch.confi dołączyć filesponiżej hosts. Przykład poniżej:

passwd:         compat
group:          compat
shadow:         compat

hosts:          dns files myhostname <-- this line here.
networks:       files

protocols:      db files
services:       db files
ethers:         db files
rpc:            db files

netgroup:       nis

Dzięki temu /etc/hostsplik zostanie uwzględniony podczas sprawdzania rozpoznawania nazw. Najpierw sprawdzi DNS, a następnie hostsplik. Jestem pewien, że OP nie potrzebuje już tych informacji, ale nadal jest to dobre dla każdego, kto szuka odpowiedzi na ten problem.

Musisz również zrestartować, aby to zadziałało


Mam tam „pliki mdns4_minimal [NOTFOUND = return] dns mdns4” na Ubuntu 12.04, ale / etc / hosts nadal nie działa ... wygląda na to, że mam inny problem.
Shnatsel

Czy możesz wkleić pełny kod?
Sam Chonburi

Oto pełny plik konfiguracyjny: pastebin.com/hDBGrrwn Podejrzewam , że jest to domyślny na Ubuntu 12.04
Shnatsel

Wszystko wygląda dobrze. Co próbujesz zrobić?
Sam Chonburi

Nie dostałem: co mam dodać w tym wierszu? /etc/hosts? hosts? Albo co?
Cześć Anioł

2

Wierzę, że etc/hostsjest używany na poziomie dużo kochanka w stosie oprogramowania sieciowego niż sama przeglądarka. To znaczy zmiany w tym pliku powinny mieć wpływ na każdą przeglądarkę.

To, co widzisz, może być wynikiem buforowania wpisów DNS w przeglądarce Firefox - tj. Otworzyłeś stronę w Firefox, Firefox pamięta adres IP odpowiadający domenie adobe.com, zmodyfikowałeś /etc/hostsi ponownie załadowałeś stronę - Firefox nie wydaje nowego zapytania DNS i zamiast tego używa buforowanych danych. Następnie otwórz Chrome, tworzy nowe zapytanie DNS i używa wszystkiego, co wpisałeś /etc/hostsjako adres IP dla adobe.com

Ponowne uruchomienie przeglądarki Firefox powinno rozwiązać problem.


2

Wszystkie odpowiedzi są świetne, ale najkrótszą drogą do ich naprawy jest:

po zmodyfikowaniu / etc / hosts (i ewentualnie ponownym uruchomieniu Firefoksa), załaduj ponownie problematyczną kartę Ctrl+Shift+R. Pominie każdy rodzaj pamięci podręcznej, jaką może mieć Firefox.


1

Mój problem polegał na tym, że miałem wiele wpisów dla tej samej nazwy domeny. System zobaczył tylko pierwsze wystąpienie.

127.0.0.1 domain1.com domain2.com domain3.com # <-- WENT UNNOTICED
# .
# .
192.168.1.21 domain1.com # <-- DOESN'T WORK

0

Czy możesz spróbować:

  1. Edytuj plik / etc / hosts.
  2. Dodaj kolejne wiersze

     # /etc/hosts
     127.0.0.1  localhost
     127.0.1.1  myhost01
     127.0.1.2  myhost02
    

0

w Ubuntu 14.04 zmieniając plik / etc / hosts, aby działał tylko jeden host na linię, walczyłem godzinami z hostem hosta IP, niż zmieniłem host na IP w każdej linii i działało>. <


0

Miałem ten sam problem w różnych wersjach Ubuntu. Najnowszy wyhodował brzydką głowę 17.04 i 16.04. Odkryłem, że musiałem sformatować plik hosts tak:

127.0.0.1 localhost

127.0.0.1 www.facebook.com facebook.com

tzn. musisz podać adres URL zarówno www, jak i ponownie bez. Nie mam pojęcia, dlaczego to działa. Po prostu zapisz plik, a następnie pinguj adres URL jak w:

ping www.facebook.com

i powinien zostać rozwiązany do adresu pętli zwrotnej lub dowolnego innego adresu, jaki chcesz. na przykład:

80.82.xxx.xxx www.example.com example.com

Pracował dla mnie.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.