Korzystam z systemu Ubuntu 10.04.2 LTS Desktop. Będąc programistą, w moim /etc/hosts
pliku oczywiście utworzyłem „me.com” . Niestety moje rozpoznawanie nazw jest wysyłane do DNS przed pierwszym sprawdzeniem wpisu moich lokalnych hostów i nie mogę zrozumieć, dlaczego.
Ostateczny wynik jest taki, że jeśli mój plik /etc/resolv.conf zawiera nameserver 127.0.0.1
tam najpierw, to otrzymam odpowiedź w mojej przeglądarce od me.com (lokalny) w ciągu mniej niż sekundy. Ale jeśli nie mam tego wpisu, moja odpowiedź trwa czasami nawet 5 sekund, jeśli mój dostawca usług internetowych jest trochę powolny.
Problem był tak kłopotliwy, że musiałem tutaj zadać pytanie (i ktoś je rozwiązał), w jaki sposób automatycznie wstawić ten wpis /etc/resolv.conf
. Ale jeden z użytkowników (@shellholic) tutaj gorąco polecił (i skomentował to w kółko), że powinienem zadać to pytanie.
Czy wiesz, dlaczego rozpoznawanie nazw mojej stacji roboczej musi najpierw trafić na serwer DNS, zanim trafię na /etc/hosts
wpis pliku? Na razie używam sztuczki resolv.conf .
cat /etc/nsswitch.conf
i cat /etc/host.conf
? Ponadto: jak to testujesz (poprzez pingowanie, przeglądarkę, wąchanie pakietów itp.)?
time getent hosts me.com; hostname --fqdn; grep 'me.com' /etc/hosts; grep hosts /etc/nsswitch.conf; netstat -uln | grep ':53'; cat /etc/host.conf; wc -l /etc/hosts
. Nie wahaj się zaciemniać racjonalności.
/etc/nsswitch.conf
. Wpisy w moim systemie są trochę nieoczywiste, ale możesz przetestować wyszukiwania tylkofiles
jako opcję i sprawdzić, czy to miało znaczenie.