Zainstalowałem, skonfigurowałem serwer DNS (lokalna instancja Dnsmasq), który decyduje się na localhost, jak chcę, wszystko OK.
Kiedy przechodzę do trybu offline, przestaje działać, ponieważ OS X pusta zawartość resolv.conf i ignoruje próbę odzwierciedlenia zmian w tym pliku.
Każdy pomysł, jak skonfigurować DNS nawet w trybie offline?
Podobny problem (nierozwiązany): http://blog.steamshift.com/geek/leopard-lookupd-and-local-web-development-sites
Główną motywacją jest łatwość tworzenia aplikacji RoR, która wykorzystuje poddomeny jako klucze do kont. I nie możesz używać 127.0.0.1 * .yourapp.local w / etc / hosts. Jakiś facet zarejestrował dla niego domenę smackaho.st i srt DNS, na przykład .smackaho.st pod adresem 127.0.0.1, ale nadal nie możesz jej używać, gdy pracujesz w trybie offline.
EDYCJA: próbowałem polecenia scutil, ale wydaje się, że możesz zmienić DNS, jeśli jesteś offline
UWAGA: po wyłączeniu wszystkich interfejsów nie można ustawić serwerów DNS w Pref. płyta.
źródło
Odpowiedzi:
ZOBACZ AKTUALIZACJĘ PONIŻEJ!
Lubię też korzystać z Dnsmasq na moim komputerze lokalnym i miałem ten problem. Oto rozwiązanie:
Od
man 5 resolver
:/etc/resolver/
nie jest domyślnie obecny; musisz go stworzyć sam.Również ze strony podręcznika:
Jeśli więc chcesz, aby wszystkie zapytania DNS dotyczące domeny najwyższego poziomu
dev
były kierowane do lokalnego serwera nazw, wykonaj następujące czynności:configd
nie zmienia plików/etc/resolver/
, więc to ustawienie będzie obowiązywać przez zmiany sieciowe i ponowne uruchomienie.AKTUALIZACJA 17 lipca 2012 r
Niestety, od OS X Lion górny resolver (jak pokazuje
scutil --dns
) znika, gdy nie są aktywne żadne interfejsy:Zauważ, że resolver # 1 jest pusty, ale pozycja pochodnego serwera nazw / etc / resolver pozostaje.
Okazuje się, że ponieważ możesz określić domenę resolvera bezpośrednio w pliku / etc / resolver /, określenie specjalnej internetowej domeny głównej
.
powoduje utworzenie globalnego wpisu resolvera, który wygląda następująco:Teraz wszystkie zapytania DNS są kierowane do hosta lokalnego, nawet w trybie offline.
Oczywiście nadal będziesz musiał rozwiązać wybrane domeny jako 127.0.0.1, używając czegoś takiego jak opcja --address dnsmasq:
W podsumowaniu:
por. http://opensource.apple.com/source/configd/configd-395.11/dnsinfo/dnsinfo_flatfile.c
źródło
scutil --dns
, gdy nie jest podłączony do Internetu wszystkim mogę toNo DNS configuration available
ja po instrukcji powyżej, ale bez powodzeniaDlaczego nie zamiast tego wprowadzić wpisy w / etc / hosts? Mam problem z myśleniem o sytuacji, w której musiałbyś faktycznie uruchomić w pełni funkcjonalny serwer DNS. Wpisy pliku hosta używam cały czas, aby wykonywać takie czynności na komputerach Mac.
Program rozpoznawania nazw w systemie OS X działa inaczej niż w systemie Linux lub innych systemach uniksowych. Jest to prawdopodobnie część tego, co powoduje u Ciebie smutek. Podobnie jak na przykład, ma preferencje, której metody rozstrzygania użyć w pierwszej kolejności i buforuje wyniki wszystkich zapytań przez pewien czas.
Czy dodałeś serwer DNS do interfejsu w panelu preferencji Sieć? Powinno to zapewnić, że program tłumaczący użyje tego serwera do zapytań, jeśli zdecyduje się poszukać wpisu DNS.
źródło
(odpowiadając b / c nie mogę jeszcze komentować ...)
Jak idziesz offline?
(najlepsza odpowiedź, jaką mam teraz)
Powinieneś być w stanie wprowadzić coś w interfejsie użytkownika i powinno się ono trzymać. Zrobiłem to kilka razy, gdy nie podobał mi się serwer DNS, który zapewnia mój lokalny serwer DHCP.
źródło
Czy OSX ma plik konfiguracyjny /etc/dhcp3/dhclient.conf, który ma normalna konfiguracja klienta DHCP dla Linux / UNIX?
Jeśli tak, powinien mieć linię, za którą możesz odkomentować
aby klient DHCP zawsze dodawał tę linię do pliku resolv.conf
źródło
Spróbuj dodać drugą usługę Ethernet skonfigurowaną z adresem statycznym i 127.0.0.1 jako serwerem DNS. Lub dodaj lokalizację sieciową, która ustawia twój serwer DNS na 127.0.0.1. Obie te zmiany zostaną wprowadzone w „Preferencjach systemowych” w panelu „Sieć”.
źródło
Może to po prostu pomóc
do / etc / hosts, więc nie trzeba resolvera, aby znaleźć localhost.
źródło