Właśnie aktualizowany rekord DNS ( ns1
, ns2
, ns3.myhostingcompany.com
) na miejscu mam gospodarzem, ale wciąż otrzymuję stronę parkingu rejestratora domeny.
Chciałbym sprawdzić, czy problemem są buforowane rekordy DNS Ubuntu. Czy istnieje sposób na wyczyszczenie pamięci podręcznej DNS Ubuntu? (jeśli coś takiego istnieje?)
networking
dns
Jono
źródło
źródło
/etc/hosts
. Właśnie byłem pewien, że stary adres IP mojej domeny jest buforowany, alestrace ping example.com
ujawniłem tylko , że zapomniałem usunąć/etc/hosts
rekord, który dodałem jakiś czas temu z powodu braku cierpliwości dla propagacji DNS.Odpowiedzi:
Dla 18.04 i wyższych
Spójrz na odpowiedź Mike'a Shultza .
Dla wersji 11.10 i niższej
Ubuntu domyślnie nie buforuje rekordów dns, więc dopóki nie zainstalujesz pamięci podręcznej dns, nie ma nic do wyczyszczenia.
Rekordy DNS są prawdopodobnie buforowane przez serwery DNS Twojego dostawcy, więc jeśli chcesz sprawdzić, czy wprowadzone zmiany DNS zakończyły się powodzeniem, możesz przesłuchać serwer DNS z usługi hostingowej domeny za pomocą dig:
dig -t a ns1.myhostingcompany.com @domain_registrar_dns_server
Jeśli chcesz, aby Ubuntu zaczął buforować dns, polecam zainstalować
pdnsd
razem zresolvconf
.nscd
jest wadliwy i niewskazany.źródło
Ubuntu 17.04 i wyższe (18.04)
Począwszy od Ubuntu 17.04 i późniejszych, DNS jest używany w systemie-resolver. Możesz opróżniać pamięci podręczne systemd tak:
źródło
sudo systemd-resolve --statistics
systemctl restart systemd-resolved.service
pracował także 18.04.12.04
Ubuntu 12.04 używa
dnsmasq
wbudowanegonetwork-manager
, ale nie buforuje dns, więc nie ma potrzeby go opróżniać. Oto przykładowa linia ode mnie,syslog
aby udowodnić ten punkt:Nie ma również potrzeby konfiguracji
dnsmasq
. Jeśli korzystasz z ustawień fabrycznych, nie będzie buforował dns, ponieważ aby to zrobić, musisz jawnie skonfigurować go, jak opisano w tym artykule Ubuntu .Jeśli chcesz odświeżyć swoje ustawienia, możesz wyłączyć, a następnie włączyć sieć lub uruchomić
Spowoduje to ponowne uruchomienie,
dnsmasq
ponieważ jest wbudowane wnetwork-manager
; sprawdź swojesyslog
dowody na to.Jeśli używasz połączenia przewodowego z dhcp, ustawienia
network manager
będą pobierane bezpośrednio z routera, a twoje połączenie zostanie nawiązane automatycznie po zalogowaniu się do Ubuntu. Możesz sprawdzić, czy ustawienia są prawidłowe w routerze, jeśli możesz uzyskać do niego dostęp za pośrednictwem interfejsu internetowego, i być może uruchom go ponownie, jeśli to konieczne. Jeśli jest to ogólny problem z usługami DNS, możesz spróbować użyć Google DNS zamiast ISDN DNS, a więcej informacji na ten temat można znaleźć tutaj .źródło
sudo service network-manager restart
wykonał dla mnie lewę z DebianemZauważ, że Ubuntu używa systemd-resolver od 17.04 i nowszych, więc ta odpowiedź nie ma już zastosowania do najnowszych wersji Ubuntu. Zobacz „ Opróżnianie pamięci podręcznej DNS w systemie Ubuntu 17.04 i nowszych (18.04) ”
Domyślnie DNS nie jest buforowany w Ubuntu <17.04 (ale może być buforowany w sieci lub aplikacji)
Aby potwierdzić, czy
dnsmasq
buforowanie odbywa się w ten czy inny sposób , uruchomps ax | grep dnsmasq
i spójrz na uruchomione polecenie. Oto podział mojej domyślnej maszyny 13.10:/etc/NetworkManager/dnsmasq.d
jest domyślnie pusty. Więc nie ma żadnych nadpisań i po prostu sprawdzenie--cache-size=0
oznacza, co naszym zdaniem oznacza (zamiast nieograniczonej pamięci podręcznej),man dnsmasq
pokazuje:Chociaż
dnsmasq
może buforować DNS, nie jest buforowany po wyjęciu z pudełka. Możesz sprawdzić swój komputer i różne katalogi konfiguracji, aby sprawdzić, czy jesteś na tej samej stronie.Jeśli występują problemy z pamięcią podręczną, dzieje się tak prawdopodobnie w jednym z kilku miejsc:
Skrobię tutaj beczułkę, ale być może zainstalowałeś niestandardowy serwer DNS w Ubuntu zamiast włączać buforowanie
dnsmasq
. Istnieje wiele:nscd
, djbdnsdnscache
(aka tinydns),pdns
,pdnsd
, bind9 (i jego odmiany), a nie mogę sobie przypomnieć. Zostaną one prawdopodobnie potwierdzone w/etc/resolv.conf
(z config w / etc / resolvconf / `, aby autogenować ten plik). Poniżej przedstawiono lokalnie przechwycone zapytanie DNS:Jeśli nie uderzasz w 8.8.8.8 (lub cokolwiek, czego oczekujesz od swojego serwera DNS), sprawdź, co uderzasz. W moim przypadku widzę, że jest to po prostu
dnsmasq
skonfigurowane do tworzenia kopii lustrzanych zapytań DNS dla LXC, ale w twoim przypadku może to robić złe, podręczne rzeczy.Jeśli wykonałeś wymienione pamięci podręczne, proces czyszczenia każdego z nich jest różny:
W nieco pokrewnej uwadze zobacz to, aby włączyć buforowanie
dnsmasq
.źródło
W przypadku 12.04:
Ubuntu 12.04 wykonuje buforowanie DNS za pomocą dnsmasq (patrz
man dnsmasq
). Aby wyczyścić pamięć podręczną, wykonaj następujące czynności:źródło
sudo killall -HUP dnsmasq
?pkill
zamiastkill
ipgrep
sudo /etc/init.d/nscd restart
http://www.ubuntugeek.com/howto-clearflush-dns-cache-in-ubuntu.html
Również jako notatkę możesz sprawdzić i sprawdzić, czy zmiany DNS zostały propagowane za pomocą dig i sprawdzania w stosunku do kogoś innego niż domyślne serwery DNS. W tym przypadku Google DNS.
dig @8.8.8.8 example.com
źródło
Osobiście korzystam z OpenDNS i używam ich funkcji sprawdzania pamięci podręcznej, aby wymusić odświeżenie, aby upewnić się, że zmiany działają, ale nie możesz zagwarantować , że odświeżą się one dla użytkowników w ciągu 48 godzin.
DNS to powolna bestia. Cierpliwość utrzyma cię przy zdrowych zmysłach.
źródło
Jeśli używasz nscd:
Warto wspomnieć, że może nie buforować go system operacyjny. Wszyscy lubią buforować DNS ... Niektóre testy:
Sprawdź, czy jest to nowy czy stary adres IP. Większość przeglądarek buforuje również DNS, więc jeśli nie uruchomiłeś ponownie Chromium lub czegoś, co może nie być najnowsze.
Zmień swój lokalny serwer nazw w /etc/resolv.conf na innego dostawcę, google lub poziom, przykłady:
A potem ponownie ping.
Sprawdź, czy router nie buforuje DNS w żadnej formie. (Zależy od routera / oprogramowania układowego / itp.)
Wreszcie cierpliwość. Rozpowszechnianie DNS w Internecie może trochę potrwać.
źródło
Wszystkie powyższe odpowiedzi zapomniały o jednej ważnej rzeczy w rozpoznawaniu nazw: generalnie serwery DNS, dla których żądasz rozpoznawania nazw, nie są tymi, które same przechowują rekordy (serwer autorytatywny). Ponieważ każdy rekord DNS ma wartość Time To Live, która zobowiązuje każdy serwer DNS w łańcuchu rozstrzygania do buforowania w ciągu sekund wskazanych przez tę wartość. Więc nie tylko możesz buforować w swoim komputerze, ale NIEZWYKLE wynik wyszukiwania nazwy zostanie zapisany w pamięci podręcznej gdzieś na serwerze, którego nie kontrolujesz.
Jedynym rozwiązaniem, które należy natychmiast powiadomić o zmianie rekordu nazwy, jest użycie wartości TTL 0 podczas tworzenia / aktualizowania wpisu na autorytatywnym serwerze nazw. Oznacza to jednak, że dla każdego rozpoznawania nazw serwer zostanie trafiony, zwykle rejestratorzy nie zezwalają na to. Na przykład mogą dostarczyć listę wstępnie zdefiniowanych wartości TTL, w których możesz wybrać.
Zarządzam różnymi nazwami domen i aby mieć pewność, że zmiana zostanie dobrze zastosowana na autorytatywnych serwerach nazw, używam narzędzia o nazwie,
dnstracer
które może wyświetlać wyniki wyszukiwania na każdym serwerze z katalogu głównego DNS.Podsumowując, nawet bez żadnego rozwiązania buforowania DNS, nadal będzie opóźnienie między momentem zmiany rekordów DNS a zmianą widoczną na komputerze. To opóźnienie zależy w dużej mierze od TTL rekordów i liczby serwerów DNS między komputerem a autorytatywnym serwerem nazw.
źródło
W przypadku Ubuntu 14.04 zalecam polecenie:
źródło
Użyłem następującego polecenia, aby opróżnić pamięć podręczną dns na moim urządzeniu Ubuntu 12.10 i działało to fantastycznie.
Innym pomocnym sygnałem jest SIGUSR1, który zrzuca trochę statystyk do syslog lub jak wynika z
man dnsmasq
:źródło
pkill
zamiastkill
ipgrep
W systemie Ubuntu 16.04 nie mogłem wyczyścić pamięci podręcznej, chyba że:
źródło
Znalazłem też sprzeczności, ale to: https://superuser.com/a/521562 woki dla mnie (Ubuntu 13.10 z najnowszymi aktualizacjami, nie ma zainstalowanych specjalnych pakietów sieciowych).
Krótko mówiąc, po prostu użyj tego
sudo /etc/init.d/dns-clean
źródło
Polecam openDNS specjalnie na zdalnych serwerach Ubuntu, zmniejsza ból ...
Jak to zrobić? Dobrze...
wstaw to PRZED linią „żądanie maski podsieci ...”
Spowoduje to ponowne uruchomienie interfejsu tak szybko, że nie powinieneś nawet tracić połączenia SSH
zaznacz to, aby sprawdzić, czy zupełnie nowy openDNS jest poprawnie zainstalowany
źródło