DNS默认缓存时间究竟是多少,这个数值背后的秘密你真的完全了解吗?
- 内容介绍
- 文章标签
- 相关推荐
我破防了。 哎, 哥们儿,你平时刷网页、刷视频的时候,有没有想过为啥你输入个 www.baidu.com 一下就出来了有时候换个网站却卡得要命?这里面其实有个东西叫 DNS 缓存,你听过没?
我一开始也是听都没听过直到我家路由器抽风,网速慢得跟乌龟爬似的。别人说“你清下 DNS 缓存试试”,我才懵懵懂懂知道点事儿。那到底 DNS 默认缓存时间是啥?是 30 秒还是 24 小时?今天咱就瞎掰扯掰扯,我也不敢说全对,反正就是我知道啥说啥,不知道的我也瞎编两句,你凑合看,好吧好吧...。
啥是 DNS 缓存时间?
先说说 DNS 是啥。DNS 就像咱们平时查
但你想想,要是每次访问都问一遍,那得多慢啊?所以系统就记下来了这个“记下来”的时间, 太顶了。 就是 DNS 缓存时间。你懂的,就是“生存时间”,英文叫 TTL。
不同设备、 系统、浏览器的缓存时间都不一样
你问这默认缓存时间到底是多少?说实话,这玩意儿真没个统一标准。不同的系统、不同的浏览器、不同的 DNS 服务器,时间都不一样。比如:
- Windows 系统:默认缓存时间是 24 小时也就是 86400 秒。你访问一个网站,它就把 IP 记一天一天内再访问,直接用缓存的,不问 DNS。
- Mac 系统:好像缓存时间短一点,我记得是 1 小时?3600 秒,对吧?它有个叫“mDNSResponder”的东西, 你可以在终端里输“sudo killall -INFO mDNSResponder”,然后看系统日志,能找到缓存时间的信息。
- Chrome 浏览器:默认缓存时间好像是 60 秒?对,1 分钟!你访问一个网站,它记 1 分钟,1 分钟内再访问,直接用缓存,不问系统里的 DNS。
- Safari:苹果浏览器,它默认好像更短,10 秒?对,就 10 秒!你访问一个网站,它记 10 秒,10 秒后你再访问,它就重新问 DNS。所以 Safari 有时候感觉网速不稳定,可能就是缓存时间太短了老问 DNS。
- Firefox:就是那个火狐浏览器,狐狸 logo 的。Firefox 默认缓存时间好像只有 1 分钟?比 Chrome 还短?我记不太清了好像是可以自己改的。你可以在地址栏输入“about:config”, 然后找到“network.dnsCacheExpiration”之类的参数,改数值就行。
路由器也会缓存 DNS?
还有路由器,就是你家那个方盒子,插网线那个。路由器也会缓存 DNS 记录!很多人不知道,以为只有电脑和手机才缓存。路由器的缓存时间,一般也是几小时到一天不等。有时候你电脑能打开某个网站, 手机连同一个 Wi-Fi 却打不开,可能就是路由器里记的 IP 过期了但它没更新。这时候你可以重启路由器, 或者进路由器后台“恢复出厂设置”,不过恢复出厂设置就麻烦了得重新设 Wi-Fi 密码,所以一般先重启,整一个...。
公共 DNS 服务器的缓存时间
背后.… 除了你自己的设备, 还有公共 DNS 服务器,比如 114DNS、阿里云 DNS、谷歌 DNS 这些。你用这些 DNS 服务器的时候,它们也会缓存域名解析后来啊。它们的缓存时间,一般由域名本身的 TTL 值决定。
啥是 TTL?TTL 就是“Time To Live”,生存时间。每个域名注册的时候,都可以设置自己的 TTL 值,比如 1 小时、24 小时。公共 DNS 服务器解析这个域名的时候,就会按照这个 TTL 值来缓存。 探探路。 比如 www.xxx.com 的 TTL 是 1 小时 那公共 DNS 服务器就记 1 小时1 小时内你再问这个域名,它直接给你缓存的后来啊,不重新解析。
不过有些公共 DNS 服务器不按 TTL 来 它们自己设置缓存时间,比如记 24 小时不管域名 TTL 是多少。这种你就没办法控制了它想记多久记多久。比如谷歌 DNS, 我CPU干烧了。 好像就经常记很长时间,有时候你换了域名的 IP,谷歌 DNS 可能还记着旧的,导致你访问不了。这时候你就得等它自己更新,或者换其他 DNS 服务器。
查 DNS 缓存时间的方法
话虽然是这么说… 你说这查缓存时间有啥用?用处大了去了!要是每次访问网站都问 DNS,那 DNS 服务器得累死,网也卡得要命。缓存时间长一点,访问就快;太短了老问 DNS,网就慢。但太长了也不行,万一 www.xxx.com 换 IP 了呢?你还记着老的,那就找不到了。所以这时间得合适。你说这“合适”到底是多久?别急,咱慢慢说反正各个玩意儿都有自己的小算盘,不一样。
查本地设备的缓存时间, 前面说了 Windows 用“ipconfig /displaydns”,Mac 用“sudo killall -INFO mDNSResponder”看日志。不过这些命令只能看到当前缓存了哪些记录,看不到“默认时间”是多少。比如你看到某个域名的“生存时间”是 3600 秒, 那只能说明这个域名还能记 1 小时不代表所有域名都记 1 小时换位思考。
查浏览器的缓存时间, Chrome 可以进“chrome://net-internals/#dns”看,Firefox 进“about:config”看, 栓Q了... 但这些只能看到当前的缓存,看不到“默认”时间。比如 Chrome 默认是 60 秒,但你可以改,改了之后查到的就是改后的时间,不是默认的。
改缓存时间有啥用?
有些人可能觉得默认缓存时间不好, 想自己改,比如觉得 60 秒太短,想改成 600 秒,或者觉得 24 小时太长, 结果你猜怎么着? 想改成 1 小时。其实一般不建议改,改了可能导致意想不到的问题。
改本地设备的缓存时间, Windows 可以改注册表,找到“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DnsCacheParameters”里的“MaxCacheTtl”,改数值就行,单位是秒。Mac 可以改终端里的参数,比如“sudo defaults write /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist CacheRefreshRate -int 600”。 到时候….. 不过改注册表和系统参数有风险,改不好可能系统出问题,所以一般人别乱改。
改浏览器的缓存时间, Chrome 可以改“chrome://net-internals/#dns”里的参数,Firefox 可以改“about:config”里的参数。比如 Chrome 改“network.dnsCacheExpiration”从 60 改成 6000,就是记 6000 秒。不过改了之后浏览器可能不按你改的来或者出现其他问题,比如某些网站打不开。所以除非你懂技术,否则别改。
一下
我是深有体会。 你自己的设备,比如电脑、手机、家里的路由器,它们都会自己缓存 DNS 记录。这些设备的默认时间,厂家早就给你设好了你不用管。但有时候出问题了你可能想知道它到底记了多久。动手查一下其实方法挺多,但都比较麻烦,一般人也不用查,除非出了问题。
你问我怎么查?用那些命令,那些工具,麻烦死了。你问我怎么改?别改,改了可能出问题。反正你上网的时候,网快就行,网慢了就重启路由器、清下 DNS 缓存,一般都能解决。至于那些缓存时间,你不用管它,厂家给你设好了你瞎改啥,从头再来。?
其实我写这篇文章的时候,我家猫在键盘上踩了一脚,所以可能有点乱,你凑合看。反正 DNS 缓存时间就是这么回事,知道有这玩意儿就行, 躺平。 不用太较真。你要是真想知道,自己去查资料,或者问懂的人,我反正就懂这么点,说多了露馅。行了不说了我去打游戏了拜拜~
我破防了。 哎, 哥们儿,你平时刷网页、刷视频的时候,有没有想过为啥你输入个 www.baidu.com 一下就出来了有时候换个网站却卡得要命?这里面其实有个东西叫 DNS 缓存,你听过没?
我一开始也是听都没听过直到我家路由器抽风,网速慢得跟乌龟爬似的。别人说“你清下 DNS 缓存试试”,我才懵懵懂懂知道点事儿。那到底 DNS 默认缓存时间是啥?是 30 秒还是 24 小时?今天咱就瞎掰扯掰扯,我也不敢说全对,反正就是我知道啥说啥,不知道的我也瞎编两句,你凑合看,好吧好吧...。
啥是 DNS 缓存时间?
先说说 DNS 是啥。DNS 就像咱们平时查
但你想想,要是每次访问都问一遍,那得多慢啊?所以系统就记下来了这个“记下来”的时间, 太顶了。 就是 DNS 缓存时间。你懂的,就是“生存时间”,英文叫 TTL。
不同设备、 系统、浏览器的缓存时间都不一样
你问这默认缓存时间到底是多少?说实话,这玩意儿真没个统一标准。不同的系统、不同的浏览器、不同的 DNS 服务器,时间都不一样。比如:
- Windows 系统:默认缓存时间是 24 小时也就是 86400 秒。你访问一个网站,它就把 IP 记一天一天内再访问,直接用缓存的,不问 DNS。
- Mac 系统:好像缓存时间短一点,我记得是 1 小时?3600 秒,对吧?它有个叫“mDNSResponder”的东西, 你可以在终端里输“sudo killall -INFO mDNSResponder”,然后看系统日志,能找到缓存时间的信息。
- Chrome 浏览器:默认缓存时间好像是 60 秒?对,1 分钟!你访问一个网站,它记 1 分钟,1 分钟内再访问,直接用缓存,不问系统里的 DNS。
- Safari:苹果浏览器,它默认好像更短,10 秒?对,就 10 秒!你访问一个网站,它记 10 秒,10 秒后你再访问,它就重新问 DNS。所以 Safari 有时候感觉网速不稳定,可能就是缓存时间太短了老问 DNS。
- Firefox:就是那个火狐浏览器,狐狸 logo 的。Firefox 默认缓存时间好像只有 1 分钟?比 Chrome 还短?我记不太清了好像是可以自己改的。你可以在地址栏输入“about:config”, 然后找到“network.dnsCacheExpiration”之类的参数,改数值就行。
路由器也会缓存 DNS?
还有路由器,就是你家那个方盒子,插网线那个。路由器也会缓存 DNS 记录!很多人不知道,以为只有电脑和手机才缓存。路由器的缓存时间,一般也是几小时到一天不等。有时候你电脑能打开某个网站, 手机连同一个 Wi-Fi 却打不开,可能就是路由器里记的 IP 过期了但它没更新。这时候你可以重启路由器, 或者进路由器后台“恢复出厂设置”,不过恢复出厂设置就麻烦了得重新设 Wi-Fi 密码,所以一般先重启,整一个...。
公共 DNS 服务器的缓存时间
背后.… 除了你自己的设备, 还有公共 DNS 服务器,比如 114DNS、阿里云 DNS、谷歌 DNS 这些。你用这些 DNS 服务器的时候,它们也会缓存域名解析后来啊。它们的缓存时间,一般由域名本身的 TTL 值决定。
啥是 TTL?TTL 就是“Time To Live”,生存时间。每个域名注册的时候,都可以设置自己的 TTL 值,比如 1 小时、24 小时。公共 DNS 服务器解析这个域名的时候,就会按照这个 TTL 值来缓存。 探探路。 比如 www.xxx.com 的 TTL 是 1 小时 那公共 DNS 服务器就记 1 小时1 小时内你再问这个域名,它直接给你缓存的后来啊,不重新解析。
不过有些公共 DNS 服务器不按 TTL 来 它们自己设置缓存时间,比如记 24 小时不管域名 TTL 是多少。这种你就没办法控制了它想记多久记多久。比如谷歌 DNS, 我CPU干烧了。 好像就经常记很长时间,有时候你换了域名的 IP,谷歌 DNS 可能还记着旧的,导致你访问不了。这时候你就得等它自己更新,或者换其他 DNS 服务器。
查 DNS 缓存时间的方法
话虽然是这么说… 你说这查缓存时间有啥用?用处大了去了!要是每次访问网站都问 DNS,那 DNS 服务器得累死,网也卡得要命。缓存时间长一点,访问就快;太短了老问 DNS,网就慢。但太长了也不行,万一 www.xxx.com 换 IP 了呢?你还记着老的,那就找不到了。所以这时间得合适。你说这“合适”到底是多久?别急,咱慢慢说反正各个玩意儿都有自己的小算盘,不一样。
查本地设备的缓存时间, 前面说了 Windows 用“ipconfig /displaydns”,Mac 用“sudo killall -INFO mDNSResponder”看日志。不过这些命令只能看到当前缓存了哪些记录,看不到“默认时间”是多少。比如你看到某个域名的“生存时间”是 3600 秒, 那只能说明这个域名还能记 1 小时不代表所有域名都记 1 小时换位思考。
查浏览器的缓存时间, Chrome 可以进“chrome://net-internals/#dns”看,Firefox 进“about:config”看, 栓Q了... 但这些只能看到当前的缓存,看不到“默认”时间。比如 Chrome 默认是 60 秒,但你可以改,改了之后查到的就是改后的时间,不是默认的。
改缓存时间有啥用?
有些人可能觉得默认缓存时间不好, 想自己改,比如觉得 60 秒太短,想改成 600 秒,或者觉得 24 小时太长, 结果你猜怎么着? 想改成 1 小时。其实一般不建议改,改了可能导致意想不到的问题。
改本地设备的缓存时间, Windows 可以改注册表,找到“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DnsCacheParameters”里的“MaxCacheTtl”,改数值就行,单位是秒。Mac 可以改终端里的参数,比如“sudo defaults write /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist CacheRefreshRate -int 600”。 到时候….. 不过改注册表和系统参数有风险,改不好可能系统出问题,所以一般人别乱改。
改浏览器的缓存时间, Chrome 可以改“chrome://net-internals/#dns”里的参数,Firefox 可以改“about:config”里的参数。比如 Chrome 改“network.dnsCacheExpiration”从 60 改成 6000,就是记 6000 秒。不过改了之后浏览器可能不按你改的来或者出现其他问题,比如某些网站打不开。所以除非你懂技术,否则别改。
一下
我是深有体会。 你自己的设备,比如电脑、手机、家里的路由器,它们都会自己缓存 DNS 记录。这些设备的默认时间,厂家早就给你设好了你不用管。但有时候出问题了你可能想知道它到底记了多久。动手查一下其实方法挺多,但都比较麻烦,一般人也不用查,除非出了问题。
你问我怎么查?用那些命令,那些工具,麻烦死了。你问我怎么改?别改,改了可能出问题。反正你上网的时候,网快就行,网慢了就重启路由器、清下 DNS 缓存,一般都能解决。至于那些缓存时间,你不用管它,厂家给你设好了你瞎改啥,从头再来。?
其实我写这篇文章的时候,我家猫在键盘上踩了一脚,所以可能有点乱,你凑合看。反正 DNS 缓存时间就是这么回事,知道有这玩意儿就行, 躺平。 不用太较真。你要是真想知道,自己去查资料,或者问懂的人,我反正就懂这么点,说多了露馅。行了不说了我去打游戏了拜拜~

