DNS (Domain Name System) ialah sistem yang digunakan dalam Internet untuk menukar nama domain kepada alamat IP yang sepadan.
Dalam sistem Linux, cache DNS ialah mekanisme yang menyimpan hubungan pemetaan antara nama domain dan alamat IP secara setempat, yang boleh meningkatkan kelajuan resolusi nama domain dan mengurangkan beban pada pelayan DNS. Caching DNS membolehkan sistem mendapatkan semula alamat IP dengan pantas apabila kemudiannya mengakses nama domain yang sama tanpa perlu mengeluarkan permintaan pertanyaan kepada pelayan DNS setiap kali, dengan itu meningkatkan prestasi dan kecekapan rangkaian.
Artikel ini akan membincangkan dengan anda cara melihat dan memuat semula cache DNS pada Linux, serta butiran yang berkaitan dan kod sampel.
Dalam sistem Linux, cache DNS memainkan peranan penting. Kewujudannya bukan sahaja berkesan mengurangkan masa resolusi DNS dan mempercepatkan akses rangkaian, tetapi juga berkesan mengurangkan beban pada pelayan DNS.
Apabila sistem mengakses nama domain tertentu, jika keputusan resolusi nama domain sudah disimpan dalam cache tempatan, sistem boleh terus mendapatkan hasil daripada cache tanpa menghantar permintaan pertanyaan kepada pelayan DNS sekali lagi. Mekanisme ini berkesan menjimatkan masa dan lebar jalur rangkaian. Dengan menggunakan caching tempatan, sistem boleh meningkatkan kecekapan capaian, terutamanya apabila mengakses nama domain yang sama dengan kerap. Kaedah ini bukan sahaja mengurangkan beban pada pelayan DNS, tetapi juga mengurangkan penggunaan trafik rangkaian, mengoptimumkan prestasi rangkaian keseluruhan. Oleh itu, mekanisme caching memainkan peranan penting dalam meningkatkan kelajuan tindak balas sistem dan mengurangkan penggunaan sumber
Dalam sistem pengendalian Linux, terdapat banyak cara untuk melihat kandungan cache DNS.
dig
ialah alat DNS yang berkuasa yang boleh digunakan untuk menanyakan maklumat DNS, termasuk keputusan resolusi nama domain dan kandungan cache DNS.
dig example.com
Hasil keluaran:
; <<>> DiG 9.16.1-Ubuntu <<>> example.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 62233 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 65494 ;; QUESTION SECTION: ;example.com. INA ;; ANSWER SECTION: example.com.604800INA 93.184.216.34 ;; Query time: 43 msec ;; SERVER: 127.0.0.53#53(127.0.0.53) ;; WHEN: Sat Feb 19 12:00:00 UTC 2024 ;; MSG SIZErcvd: 57
nscd
(Name Service Cache Daemon) ialah proses daemon yang bertanggungjawab untuk menguruskan cache perkhidmatan nama sistem.
Anda boleh menggunakan arahan nscd
untuk melihat kandungan cache DNS.
nscd -g
Hasil keluaran:
hosts cache: yescache is enabled yescache is persistent yescache is shared 211suggested size 216320total data pool size 1408used data pool size 7200seconds time to live for positive entries 20seconds time to live for negative entries 20cache hits on positive entries 0cache hits on negative entries 3cache misses on positive entries 0cache misses on negative entries 100 % cache hit rate 8current number of cached values 9maximum number of cached values 0maximum chain length searched 0number of delays on rdlock 0number of delays on wrlock 0memory allocations failed
systemd-resolved
ialah perkhidmatan sistem yang bertanggungjawab untuk menyelesaikan pertanyaan DNS. Ia juga mengekalkan cache DNS.
Anda boleh menggunakan arahan systemd-resolve
untuk melihat kandungan cache.
systemd-resolve --statistics
Hasil keluaran:
DNSSEC supported by current servers: no Transactions Current Transactions: 0 Total Transactions: 2422 Cache Current Cache Size: 15 Cache Hits: 2312 Cache Misses: 110
Kadangkala, anda mungkin perlu memuat semula cache DNS secara manual untuk memastikan sistem menggunakan keputusan resolusi DNS terkini.
Anda boleh menggunakan arahan systemd-resolved
untuk menyegarkan cache DNS perkhidmatan yang diselesaikan sistemd.
sudo systemd-resolve --flush-caches
Jika perkhidmatan nscd sedang berjalan pada sistem, anda boleh cuba menyegarkan cache DNS dengan memulakan semula perkhidmatan.
sudo systemctl restart nscd
Anda juga boleh memadam fail cache DNS secara manual untuk mengosongkan cache DNS.
sudo rm -rf /var/cache/bind/named_dump.db
DNS caching boleh meningkatkan kelajuan resolusi nama domain dengan ketara dan mengurangkan tekanan permintaan pada pelayan DNS.
Dengan mengkonfigurasi cache DNS dengan betul, prestasi sistem dan kelajuan sambungan rangkaian boleh dioptimumkan lagi.
Saiz cache DNS dan tamat masa boleh dilaraskan untuk memenuhi keperluan anda.
# 调整 systemd-resolved 的 DNS 缓存大小和超时时间 sudo systemctl edit systemd-resolved.service # 查看 systemd-resolved 的配置 cat /etc/systemd/resolved.conf
Apabila menyegarkan cache DNS, anda perlu memberi perhatian untuk memastikan semua cache DNS yang berkaitan disegarkan untuk mengelakkan ketidakkonsistenan cache DNS.
Ini mungkin menyebabkan aplikasi tidak dapat mengakses nama domain tertentu atau menyambung ke alamat IP yang salah.
# 刷新 systemd-resolved 服务的 DNS 缓存 sudo systemd-resolve --flush-caches
Walaupun menyegarkan cache DNS boleh menyelesaikan beberapa masalah berkaitan DNS, menyegarkan cache DNS terlalu kerap boleh menjejaskan prestasi sistem dan kelajuan sambungan rangkaian.
Adalah disyorkan untuk hanya menyiram cache DNS apabila perlu, dan pastikan anda memahami kesan operasi siram sebelum menyiram.
# 重启 nscd 服务 sudo systemctl restart nscd # 清除 DNS 缓存文件 sudo rm -rf /var/cache/bind/named_dump.db
Dalam sistem Linux, melihat dan menyegarkan cache DNS adalah langkah penting dalam mengurus sambungan rangkaian dan mengoptimumkan prestasi sistem.
Dengan menggunakan alat baris arahan seperti dig
、nscd
和 systemd-resolved
,
Atas ialah kandungan terperinci Bagaimana untuk melihat dan menyegarkan cache dns dalam Linux. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!