Przez jakiś czas miałem z tym problemy i próbowałem wszystkiego, co wiem, więc pomyślałem, że w końcu nadszedł czas, aby poprosić o pomoc.
Wszelkie zmiany, które wprowadzam, po /etc/hosts
prostu nie działają.
Przykład:
julian@ifrit:~$ cat /etc/hosts
127.0.0.1 localhost
127.0.1.1 ifrit
192.168.1.100 dev.julianfernand.es
W powyższym przykładzie, kiedy uzyskuję dostęp dev.julianfernand.es
(to nie istnieje), powinno się ładować z 192.168.1.100
.
Jeśli pinguję, działa dobrze. Jednak gdy uzyskuję dostęp dev.julianfernand.es
za pomocą Google Chrome lub Firefox, nie ma.
Teraz, po ponownym uruchomieniu kilka razy, działa. Ponieważ jednak pracuję w zarządzanej firmie hostingowej WordPress, mam do czynienia z wieloma sytuacjami, w których muszę edytować plik, aby wyświetlić witrynę internetową klienta na naszym serwerze.
Po prostu nie mogę ponownie uruchomić komputera. To wcale nie jest produktywne. Ponowne uruchomienie usługi sieciowej nie działa, podobnie jak w przypadku czyszczenia pamięci podręcznej (nawet wewnętrznej pamięci podręcznej Chrome DNS).
Czy ktoś tu ma pomysł? Dzieje się tak w przypadku elementaryOS (oparty na Ubuntu 12.04) i Ubuntu 13.10 (codziennie). Nie próbowałem jeszcze z żadną inną wersją.
PS: jeśli to ważne, mam serwer NGINX działający na tym komputerze z PHP-FPM i MySQL.
Z góry dziękuję :)
źródło
Odpowiedzi:
W Ubuntu, jeśli chcesz opróżnić pamięć podręczną DNS, musisz zrestartować
nscd
demona.Zainstaluj
nscd
za pomocą następującego polecenia:Opróżnij pamięć podręczną DNS w systemie Ubuntu za pomocą następującego polecenia:
LUB
Odniesienie: http://www.upubuntu.com/2012/05/how-to-flush-clear-dns-cache-under.html
źródło
Dla mnie działało: dodaj
w
zabij dnsmasq i
źródło
Dla mnie rozwiązaniem była edycja
/etc/nsswitch.conf
pliku (możesz użyć poleceniasudo vim /etc/nsswitch.conf
). Zmieniłem linię:do:
a teraz działa zgodnie z oczekiwaniami!
źródło
files
jako pierwszy wpis, jeśli chcesz/etc/hosts
mieć pierwszeństwo przed wynikami z serwerów DNS.Przyjęta odpowiedź działa w wersjach od 12.04 do 13.04 przez wyłączenie
dnsmasq
, ale przestała działać dla mnie w 13.10. Znalazłem następujące nowe rozwiązanie dla 13.10.Edytuj / etc / default / dnsmasq i zmień
ENABLED=1
naENABLED=0
i uruchom ponownie.źródło
Od: http://blog.calebthorne.com/2012/08/broken-etchosts-in-ubuntu-1204.html
Nową „funkcją” w wersji Ubuntu 12.04 na komputery stacjonarne jest użycie
dnsmasq
jako wtyczki do NetworkManager dla lokalnego DNS. Dnsmasq ma na celu przyspieszenie usług DNS i DHCP, ale ma jeden niefortunny efekt uboczny:dnsmasq
buforuje lokalny DNS i ignoruje zmiany/etc/hosts
. Często robię zmiany w pliku hosts podczas pracy na stronach internetowych, więc ta „funkcja” była dość denerwująca.Rozwiązaniem jest wyłączenie
dnsmasq
w pliku konfiguracyjnym Networkmanager. Otwórz/etc/NetworkManager/NetworkManager.conf
i skomentuj wiersz:Mój
NetworkManager.conf
plik zawiera następujące elementy:Zobacz także https://bugs.launchpad.net/ubuntu/+source/network-manager/+bug/993298
źródło
Prosty i zaktualizowany
/etc/NetworkManager/dnsmasq.d/hosts.conf
.address=/whatever/1.2.3.4
w tym. Zobacz dokumenty (poszukaj--address
). Symbole wieloznaczne są możliwe:address/.whatever./1.2.3.4
.dnsmasq
( błąd ).$ service network-manager restart
.źródło
Wygląda na to, że Twoja konfiguracja jest podobna do mojej. Mam komputer z systemem Ubuntu jako moim serwerem biurowym i hostem programistycznym. Na tym urządzeniu uruchamiam aplikacje Nginx, Apache, Tomcat, Rails i wszystko, czego potrzebuję.
Na komputerze Mac mogę po prostu dodać wpis hosta i załadować serwer dowolną nazwą, której potrzebuję, ale z klienta ElementaryOS to nie działa.
Próbowałem powyższych poprawek, ale bez powodzenia.
To, co zrobiłem, to uruchomić Squid Proxy Server i dodać nazwy hostów do / etc / hosts na serwerze. (Edycja wymaga ponownego uruchomienia kałamarnicy).
Następnie wprowadź odpowiednie ustawienia proxy w przeglądarce lub panelu sterowania systemu operacyjnego.
źródło
Sprawdź uprawnienia do
/etc/hosts
pliku.W mojej usłudze w chmurze po sklonowaniu serwera uprawnienia do pliku hosts zmieniły się z
644
na,600
więc plik nie może być odczytany przez apache (www-data
). Pobiegłemsudo chmod 644 hosts
z/etc
i naprawić go.Problem zaczął się jako:
Śledziłem ją do zmiennej serwera w MongoClient, wskazując na localhost. Nie mogłem pingować localhost lub nazwy hosta.
źródło
Edytuj
/etc/nsswitch.conf
, skomentuj poniżej linii, dodając # przed liniąi dodaj
Zasadniczo konfiguracja jest zmieniana. Teraz proces wyszukiwania domeny najpierw sprawdzi plik, który będzie,
/etc/hosts
a następnie skonsultuje się z DNS. Przy domyślnej konfiguracji najpierw sprawdza DNS przed innymi odpowiednimi usługami lub plikami.Do szybkiego sprawdzenia, czy działa, czy nie
aby utworzyć prosty serwer HTTP do obsługi plików z katalogu, a następnie komentować poniżej wiersza w
/etc/hosts
plikui dodaj
następnie przejdź do przeglądarki i wpisz
content/
, jeśli widzisz strukturę katalogu, która działa, w przeciwnym razie nie.źródło