linux下清理dns 缓存

首先我们要了解,dns查询的基本逻辑和缓存的存在位置


dns 查询说明

如图所示,基本逻辑为:
客户端 - 本机器dns解析器(如host,dnsmasq)- 本地dns服务器(比如家庭路由器)- 网络dns服务器

为了加速查询,在解析器和服务器上都有缓存在,一般而言我们要清理的是本机器上的dns缓存

常见的解析器

显然,我们必须首先了解本地机器用的是什么解析器,可以通过看哪个进程占据了53端口来查询,因为53端口是dns服务器端口。
可以通过以下指令:

netstat -tunlp | grep 53
或者是
sudo lsof -i :53 -S

分别会下列结果


image.png

image.png

针对不同的解析器
可以用不同的命令清理
针对system-resolved:

$ sudo systemd-resolve --flush-caches

$ sudo resolvectl flush-caches

$ sudo killall -USR2 systemd-resolved

同时为了验证dns缓存真的被清理了,可以用命令来查看缓存

sudo killall -USR1 systemd-resolved # 把缓存存入systemctl journalctl
sudo journalctl -r -u systemd-resolved #查看
![image.png](https://upload-images.jianshu.io/upload_images/23200524-4f99bda11ce99858.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)


针对dnsmasq:

$ sudo killall -HUP dnsmasq
$ sudo killall -USR1 dnsmasq  # 把缓存大小存入syslog

image.png

参考:
https://devconnected.com/how-to-flush-dns-cache-on-linux/

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • DNS 缓存是一个临时数据库,用于存储有关以前的 DNS 查找的信息。 换句话说,每当你访问网站时,你的操作系统和...
    放纵不基阅读 9,790评论 0 1
  • 用DNSmasq搭建小型的内网DNSyum install dnsmasq -yservice dnsmasq s...
    NamasAmitabha阅读 3,541评论 0 0
  • 1. 概述 在网络环境中一般用户只需要在浏览器中输入url如www.sunny.com就可以到对应服务器获取相应的...
    ghbsunny阅读 8,133评论 0 7
  • 什么是DNS及功能: DNS(Domain name server),是将IP地址转换为域名地址。当在互联网访问外...
    魏镇坪阅读 12,264评论 0 8
  • 1、简述DNS服务器原理,并搭建主-辅服务器。 1)、在浏览器中输入www.baidu.com 域名,操作系统会...
    牵挂包含一种欣赏阅读 3,674评论 0 0