Do celów programistycznych chcę, aby wszystkie żądania DNS wysyłane do TLD .dev były przekazywane na mój komputer.
Plik hosts nie wystarczy. Używam wielu domen, a także wielu subdomen. Musiałbym dodać linię dla każdej kombinacji.
Czytałem, że do wykonania zadania można użyć usługi przesyłania dalej DNS, takiej jak DNSmasq (na przykład, jak opisano tutaj ). Również to oprogramowanie jest już zainstalowane na Ubuntu 12.10.
Problem polega na tym, że nie widzę, jak i gdzie mam skonfigurować DNSmasq, tj. Gdzie powinienem umieścić tę linię:
address=/dev/127.0.0.1
.dev
co zrobił Google. Nadal badam, do czego będą go używać i czy planują, aby zwykli ludzie się z nim połączili, czy tylko pracownicy, ale możesz nie chcieć przekierowywać całego dostępu w przypadku, gdy jest to pierwsze, chyba że jest to wyłącznie pole testowe, które nigdy nie połączy się z hostami zewnętrznymi.Odpowiedzi:
Kompletny autonomiczny serwer dnsmasq (serwer DHCP i DNS) nie jest domyślnie instalowany w Ubuntu 12.04 i 12.10, ale pakiet o nazwie dnsmasq-base jest instalowany domyślnie w Ubuntu Desktop 12.04 i 12.10. Pakiet dnsmasq-base zawiera plik binarny dnsmasq i jest używany przez NetworkManager.
Aby zrobić to, co chcesz, musisz użyć dnsmasq jako buforującego serwera DNS. Musisz:
Utwórz za
/etc/dnsmasq.d/dev-tld
pomocą tych treści:Pierwsze polecenie mówi, że
*.dev
żądania nie mogą być przekazywane na twój prawdziwy serwer DNS. Drugi mówi*.dev
rozwiązuje, do127.0.0.5
którego należy localhost.źródło
W systemie Ubuntu 12.10 lub nowszym możesz to zrobić za pomocą narzędzia dnsmasq uruchamianego przez NetworkManager.
Utwórz katalog,
mkdir /etc/NetworkManager/dnsmasq.d
jeśli jeszcze nie istnieje.Wrzuć następujący wiersz do
/etc/NetworkManager/dnsmasq.d/dev-tld
.(Ubuntu 12.10) Uruchom ponownie NetworkManager.
(Ubuntu> 13.04) Uruchom ponownie Dnsmasq.
Ciesz się niesamowitością.
źródło
W Ubuntu 16.04 działały dla mnie następujące elementy:
zainstalować
dnsmasq
Edytuj
dnsmasq.conf
plik:Dodaj swoje polecenie:
W przypadku symboli wieloznacznych (*) możesz użyć kropki (.), A następnie dnsmasq, aby rozpoznać
WHATEWER_YOU_PUT_HERE.yourmachine.yourdomain
ten sam adres IP. Na przykład,address=/.localhost.dev/127.0.0.1
Uruchom ponownie usługę dnsmasq:
źródło
Właśnie zainstalowałem nowy 19.04 i jedynym sposobem, w jaki działałem, było wyłączenie
systemd-resolved
iNetworkManager
użyciednsmasq
zamiast niego DNS.NetworkManager
ma wbudowaną obsługędnsmasq
idnsmasq-base
pakiet jest instalowany domyślnie.Ja wskazując wiele domen do różnych maszyn wirtualnych, jak
*.customerX.test
na192.168.33.10
i*.productY.test
na192.168.33.20
i tak dalej. Nie używałbym*.dev
już więcej, ale zamiast tego jednej z zarezerwowanych domen najwyższego poziomu .Rozwiązanie
Wyłączyć
systemd-resolved
Edytuj
/etc/NetworkManager/NetworkManager.conf
do użyciadnsmasq
dla DNS.Wprowadź
dnsmasq
konfigurację/etc/NetworkManager/dnsmasq.d/test-tld.conf
i na koniec uruchom ponownie,
NetworkManager
co wygeneruje nowy/etc/resolv.conf
źródło