GNU/Linux >> Belajar Linux >  >> Linux

Cara Membersihkan Cache DNS di Linux

DNS, kependekan dari Domain Name System protokol, digunakan pada sistem Linux untuk mengambil alamat IP yang terkait dengan nama.

Misalnya, saat Anda melakukan permintaan ping, kemungkinan besar Anda menggunakan protokol DNS untuk mengambil IP server.

Biasanya, permintaan DNS yang Anda lakukan disimpan dalam cache lokal di sistem operasi Anda.

Namun, dalam beberapa kasus, Anda mungkin ingin menghapus cache DNS server Anda .

Mungkin karena Anda mengubah IP server di jaringan Anda dan Anda ingin perubahan tersebut segera terlihat.

Dalam tutorial ini, Anda akan mempelajari bagaimana Anda dapat dengan mudah membersihkan cache DNS di Linux , apakah Anda menggunakan systemd atau dnsmasq.

Prasyarat

Agar dapat membersihkan cache DNS, Anda harus mengetahui cara kerja resolusi DNS di sistem Linux .

Bergantung pada distribusi Anda, Anda mungkin menghadapi berbagai layanan Linux yang bertindak sebagai penyelesai DNS .

Sebelum memulai, sangat penting bagi Anda untuk mengetahui bagaimana resolusi DNS akan benar-benar terjadi pada sistem operasi Anda.

Jika Anda membaca artikel ini, Anda sedang mencari untuk membersihkan cache dari resolver DNS lokal Anda . Tetapi seperti yang Anda lihat, ada banyak cache yang berbeda dari aplikasi lokal Anda hingga server DNS Internet yang sebenarnya.

Dalam tutorial ini, kita akan fokus pada kotak kuning yang berarti resolver rintisan lokal diimplementasikan pada setiap sistem Linux.

Menemukan resolver DNS lokal Anda

Pada kebanyakan sistem Linux, resolver DNS adalah "systemd-resolved" atau dnsmasq. Untuk mengetahui apakah Anda berurusan dengan satu atau yang lain, Anda dapat menjalankan perintah berikut

$ sudo lsof -i :53 -S

Catatan :jadi mengapa kita menjalankan perintah ini? Saat DNS berjalan pada port 53, kami mencari perintah yang terkait dengan layanan yang berjalan pada port 53, yang merupakan resolver atau “rintisan” DNS lokal Anda.

Seperti yang Anda lihat, pada distribusi Ubuntu 20.04 baru-baru ini, layanan yang mendengarkan pada port 53 diselesaikan dengan sistem. Namun, jika Anda menjalankan perintah ini di Ubuntu 14.04, Anda akan mendapatkan output yang berbeda.

Dalam hal ini, DNS lokal yang digunakan di dnsmasq dan perintah jelas berbeda.

Mengetahui informasi ini, Anda dapat melanjutkan ke bab yang Anda minati. Jika Anda memiliki keluaran yang berbeda di server Anda, pastikan untuk meninggalkan komentar agar kami memperbarui artikel ini.

Siram DNS menggunakan systemd-resolved

Cara termudah untuk membersihkan DNS di Linux, jika Anda menggunakan systemd-resolved, adalah dengan menggunakan perintah “systemd-resolve” diikuti dengan “–flush-caches”.

Atau, Anda dapat menggunakan perintah “resolvectl” diikuti dengan opsi “flush-caches”.

$ sudo systemd-resolve --flush-caches

$ sudo resolvectl flush-caches

Untuk memverifikasi bahwa cache DNS Linux Anda benar-benar dihapus, Anda dapat menggunakan "–statistik ” yang akan menyorot “Ukuran Cache Saat Ini” di bawah bagian “Cache”.

$ sudo systemd-resolve --statistics

Selamat, Anda berhasil menghapus cache DNS di Linux!

Hapus cache DNS menggunakan sinyal

Cara lain untuk membersihkan cache DNS dapat dicapai dengan mengirimkan sinyal “USR2” ke layanan “systemd-resolved” yang akan memerintahkannya untuk membersihkan cache DNS-nya.

$ sudo killall -USR2 systemd-resolved

Untuk memeriksa apakah cache DNS benar-benar dihapus, Anda dapat mengirim “USR1 ” memberi sinyal ke layanan yang diselesaikan systemd. Dengan cara ini, ia akan membuang statusnya saat ini ke dalam jurnal systemd.

$ sudo killall -USR1 systemd-resolved

$ sudo journalctl -r -u systemd-resolved

Bagus, cache DNS Anda dibersihkan dengan benar menggunakan sinyal!

Siram DNS menggunakan dnsmasq

Cara termudah untuk membersihkan resolver DNS Anda, saat menggunakan dnsmasq, adalah mengirimkan sinyal “SIGHUP” ke proses “dnsmasq” dengan perintah “killall”.

$ sudo killall -HUP dnsmasq

Sama halnya dengan systemd-resolved, Anda dapat mengirim “USR1 ” ke proses untuk mencetak statistiknya ke file log “syslog”. Menggunakan perintah "ekor" sederhana, kami dapat memverifikasi bahwa cache DNS benar-benar dihapus.

Sekarang bagaimana jika Anda menjalankan dnsmasq sebagai layanan?

Dnsmasq menjalankan layanan

Dalam beberapa kasus, Anda dapat menjalankan “dnsmasq” sebagai layanan di server Anda. Untuk memeriksa apakah ini masalahnya atau tidak, Anda dapat menjalankan perintah “systemctl” atau perintah “layanan” jika Anda menggunakan sistem SysVinit.

$ sudo systemctl is-active dnsmasq

# On SysVinit systems
$ sudo service dnsmasq status

Jika Anda melihat bahwa dnsmasq berjalan sebagai layanan, Anda dapat memulai ulang menggunakan “systemctl yang biasa ” atau “layanan ” perintah.

$ sudo systemctl restart dnsmasq

# On SysVinit systems
$ sudo service dnsmasq restart

Setelah menjalankan perintah tersebut, selalu pastikan bahwa layanan Anda dimulai ulang dengan benar.

$ sudo systemctl status dnsmasq

# On SysVinit systems
$ sudo service dnsmasq status

Kesimpulan

Dalam tutorial ini, Anda telah mempelajari cara membersihkan cache DNS dengan cepat dan mudah di Linux.

Dengan menggunakan artikel ini, Anda dapat dengan mudah menghapus cache untuk resolver lokal systemd dan dnsmasq. Namun, Anda harus tahu bahwa ada DNS umum lainnya, bernama bind , yang sengaja dihilangkan dalam artikel ini.

Artikel lain tentang menyiapkan server cache DNS lokal menggunakan BIND akan segera hadir.

Jika Anda tertarik dengan kueri DNS dan bagaimana kinerjanya, Anda dapat menggunakan artikel yang sangat berguna ini dari “zwischenzugs” bernama Anatomi kueri DNS . Artikel ini sangat berguna jika Anda ingin men-debug kueri DNS dan ingin tahu bagaimana kinerjanya.

Juga jika Anda tertarik dengan Administrasi Sistem Linux , kami memiliki bagian lengkap tentangnya di situs web, jadi pastikan untuk memeriksanya.


Linux
  1. Linux – Bagaimana Mengganti Server Vm Dns?

  2. Caching DNS di linux

  3. Bagaimana cara menyiram cache CPU untuk wilayah ruang alamat di Linux?

  1. Cara Menghapus Cache Memori di Linux

  2. Cara Membersihkan Cache DNS di Ubuntu dan LinuxMint

  3. Bagaimana cara mendaftarkan server Linux dengan server DNS Windows

  1. Cara Membersihkan Cache DNS di macOS, Windows, &Linux

  2. Cara mengatur layanan DNS bernama di Redhat 7 Linux Server

  3. Cara membersihkan cache penyelesai DNS di Linux (dan FreeBSD)