Aku hanya memperbarui catatan DNS ( ns1
, ns2
, ns3.myhostingcompany.com
) untuk situs saya sudah mendapat host, tapi aku masih mendapatkan halaman parkir domain registrar.
Saya ingin melihat apakah masalahnya adalah catatan DNS cache Ubuntu. Apakah ada cara untuk menghapus cache DNS Ubuntu? (jika hal seperti itu ada?)
networking
dns
Jono
sumber
sumber
/etc/hosts
. Saya hanya yakin bahwa alamat IP lama dari domain saya sedang di-cache, tetapi hanyastrace ping example.com
mengungkapkan bahwa saya lupa menghapus/etc/hosts
catatan yang saya tambahkan beberapa waktu lalu karena kurang sabar untuk propagasi DNS.Jawaban:
Untuk 18,04 dan lebih tinggi
Lihatlah jawaban Mike Shultz .
Untuk 11.10 dan di bawah
Ubuntu tidak mem-cache catatan dns secara default jadi kecuali Anda sudah menginstal cache dns tidak ada yang perlu dihapus.
Data DNS kemungkinan di-cache oleh server DNS penyedia Anda sehingga jika Anda ingin memeriksa apakah perubahan DNS yang Anda buat berhasil, Anda bisa menginterogasi server DNS dari layanan hosting domain Anda dengan menggali:
dig -t a ns1.myhostingcompany.com @domain_registrar_dns_server
Kalau Anda ingin Ubuntu mulai cns dns saya sarankan menginstal
pdnsd
bersamaresolvconf
.nscd
bermasalah dan tidak disarankan.sumber
Ubuntu 17.04 dan lebih tinggi (18.04)
Dari Ubuntu 17.04 dan selanjutnya, systemd-resol digunakan untuk DNS. Anda dapat mem-flush cache systemd seperti:
sumber
sudo systemd-resolve --statistics
systemctl restart systemd-resolved.service
juga bekerja pada 18,04.12,04
Ubuntu 12,04 menggunakan
dnsmasq
yang dibangun ke dalamnetwork-manager
, tetapi tidak cache dns sehingga tidak perlu membilasnya. Berikut adalah contoh baris dari sayasyslog
untuk membuktikan hal itu:Konfigurasi juga tidak diperlukan
dnsmasq
. Jika Anda menjalankan dengan pengaturan stok, itu bukan caching dns, karena untuk melakukannya Anda harus mengaturnya secara eksplisit seperti yang dijelaskan oleh artikel Ubuntu ini .Jika Anda ingin menyegarkan kembali pengaturan Anda, Anda dapat menonaktifkan dan kemudian mengaktifkan jaringan atau menjalankan
Ini restart
dnsmasq
karena itu dibangun untuknetwork-manager
; periksasyslog
bukti Anda untuk ini.Jika Anda menggunakan koneksi kabel dengan dhcp
network manager
akan mengambil pengaturan langsung dari router Anda dan koneksi Anda akan dibuat secara otomatis ketika Anda login ke Ubuntu. Anda dapat memeriksa bahwa pengaturan sudah benar di router Anda jika Anda dapat mengaksesnya melalui antarmuka web, dan mungkin reboot jika perlu. Jika ini merupakan masalah umum dengan dns, Anda dapat mencoba menggunakan Google dns alih-alih ISP Anda, dan informasi lebih lanjut tentang hal itu dijelaskan di sini .sumber
sudo service network-manager restart
melakukan trik untuk saya dengan DebianPerhatikan bahwa Ubuntu menggunakan systemd-resol dari 17.04 dan seterusnya sehingga jawaban ini tidak berlaku lagi untuk versi Ubuntu terbaru. Lihat " flush DNS cache di Ubuntu 17.04 dan lebih tinggi (18.04) "
Secara default, DNS tidak di-cache di Ubuntu <17.04 (tetapi mungkin di-cache di jaringan atau aplikasi)
Untuk mengkonfirmasi satu atau lain cara apakah
dnsmasq
caching, jalankanps ax | grep dnsmasq
dan lihat perintah yang berjalan. Berikut ini rincian mesin 13.10 default saya:/etc/NetworkManager/dnsmasq.d
kosong secara default. Jadi tidak ada override yang masuk ke sana dan hanya untuk memeriksa--cache-size=0
artinya apa yang kami pikir artinya (alih-alih cache tidak terbatas ),man dnsmasq
menunjukkan:Jadi, sementara
dnsmasq
bisa men - cache DNS, itu bukan caching kotak. Anda dapat memeriksa mesin Anda dan berbagai direktori konfigurasi untuk memeriksa Anda berada di halaman yang sama.Jika Anda melihat masalah cache, ini kemungkinan terjadi di salah satu dari beberapa tempat:
Saya sedang mengais laras di sini, tetapi mungkin Anda telah menginstal server DNS non-standar di Ubuntu alih-alih mengaktifkan caching
dnsmasq
. Ada banyak:nscd
, DJBDNSdnscache
(alias TinyDNS),pdns
,pdnsd
, Bind9 (dan variannya), dan lebih aku bahkan tidak bisa ingat. Ini mungkin akan dibuktikan di/etc/resolv.conf
(dengan config di / etc / resolvconf / `untuk autogen file itu). Berikut ini menunjukkan permintaan DNS yang dicegat secara lokal:Jika Anda tidak mencapai 8.8.8.8 (atau apa pun yang Anda harapkan dari server DNS Anda), periksa apa yang Anda pukul. Dalam kasus saya, saya bisa melihat ini hanya
dnsmasq
diatur untuk mencerminkan permintaan DNS kembali untuk LXC, tetapi dalam kasus Anda mungkin melakukan hal-hal cachey yang buruk.Jika Anda telah melakukan cache yang terdaftar, proses untuk menghapus masing-masing bervariasi:
Pada catatan yang sedikit terkait, lihat ini untuk mengaktifkan caching
dnsmasq
.sumber
Untuk 12,04:
Ubuntu 12,04 melakukan cache DNS menggunakan dnsmasq (lihat
man dnsmasq
). Gunakan yang berikut ini untuk menghapus cache:sumber
sudo killall -HUP dnsmasq
?pkill
sebagai gantikill
danpgrep
sudo /etc/init.d/nscd restart
http://www.ubuntugeek.com/howto-clearflush-dns-cache-in-ubuntu.html
Juga sebagai catatan, Anda dapat memeriksa dan melihat apakah perubahan DNS Anda telah disebarkan menggunakan dig dan memandang orang lain selain server DNS default Anda. Dalam hal ini google DNS.
dig @8.8.8.8 example.com
sumber
Secara pribadi, saya akan menggunakan OpenDNS dan menggunakan fungsi Cache Check untuk memaksakan penyegaran hanya untuk memastikan perubahan berfungsi tetapi Anda tidak dapat menjamin mereka akan menyegarkan untuk pengguna Anda dalam waktu 48 jam.
DNS adalah binatang yang lambat. Kesabaran akan membuat Anda tetap waras.
sumber
Jika Anda menggunakan nscd:
Perlu disebutkan bahwa mungkin bukan OS yang menyimpannya. Semua orang suka melakukan cache DNS ... Beberapa tes:
Periksa untuk melihat apakah itu IP baru atau lama. Sebagian besar browser juga cache DNS, jadi jika Anda belum me-restart Chromium atau apa pun yang Anda mungkin tidak melihat yang terbaru.
Alihkan server nama lokal Anda di /etc/resolv.conf ke penyedia lain, google atau level, contoh:
Dan kemudian ping lagi.
Periksa untuk memastikan router Anda tidak melakukan caching DNS dalam bentuk apa pun. (Bervariasi berdasarkan router / firmware / dll)
Akhirnya kesabaran. DNS dapat mengambil sedikit waktu untuk menyebar melalui internet.
sumber
Semua jawaban di atas lupa satu hal penting dalam resolusi nama: umumnya server DNS yang Anda minta resolusi namanya bukan yang memegang catatan sendiri (server otoritatif). Karena setiap catatan DNS dilengkapi dengan nilai Time To Live yang akan mewajibkan setiap server DNS dalam rantai resolusi untuk melakukan caching selama jumlah detik yang disebutkan oleh nilai ini. Jadi tidak hanya Anda dapat melakukan cache di mesin Anda, tetapi PASTI hasil pencarian nama akan di-cache di suatu tempat di server yang tidak Anda kontrol.
Satu-satunya solusi untuk segera diberitahu tentang perubahan catatan nama adalah dengan menggunakan nilai TTL 0 saat membuat / memperbarui entri di server nama otoritatif. Tetapi ini berarti bahwa untuk setiap resolusi nama, server akan dipukul, biasanya ini tidak diizinkan oleh pendaftar. Misalnya, mereka dapat memberikan daftar nilai TTL yang telah ditentukan sebelumnya yang dapat Anda pilih.
Saya mengelola nama domain yang berbeda dan untuk memastikan bahwa perubahan diterapkan dengan baik di server nama otoritatif, saya menggunakan alat yang disebut
dnstracer
yang dapat menampilkan hasil pencarian pada setiap server dari root DNS.Sebagai kesimpulan, bahkan tanpa solusi caching DNS, masih akan ada penundaan antara saat Anda mengubah catatan DNS dan perubahan terlihat pada PC. Penundaan ini sangat tergantung pada TTL catatan dan pada jumlah server DNS antara PC Anda dan server nama resmi.
sumber
Untuk ubuntu 14.04, saya merekomendasikan perintah ini:
sumber
Saya menggunakan perintah berikut untuk menyiram cache dns pada kotak ubuntu 12.10 saya dan bekerja dengan sangat baik.
Sinyal bermanfaat lainnya adalah SIGUSR1 yang membuang sedikit statistik ke syslog atau seperti yang dicatat dari
man dnsmasq
:sumber
pkill
sebagai gantikill
danpgrep
Di Ubuntu 16.04, saya tidak bisa menghapus cache kecuali saya melakukannya:
sumber
Saya juga menemukan kontradiksi, tetapi ini: https://superuser.com/a/521562 wajan untuk saya (Ubuntu 13,10 dengan pembaruan terbaru, tidak ada paket jaringan khusus yang diinstal).
Singkatnya, gunakan saja ini
sudo /etc/init.d/dns-clean
sumber
Saya merekomendasikan openDNS khusus di server remote Ubuntu, ini memudahkan banyak rasa sakit ...
Bagaimana cara melakukannya? Baik...
masukkan ini SEBELUM baris "request subnet-mask ..."
ini akan memulai ulang antarmuka dengan sangat cepat sehingga Anda seharusnya tidak kehilangan koneksi SSH Anda
periksa ini untuk melihat apakah openDNS baru Anda diinstal dengan benar
sumber