当一个刚æ�¢äº†æœ�åŠ¡å™¨çš„ç½‘ç«™ä½ ä¸�能æ£å¸¸è®¿é—®ï¼Œåˆ«äººå�´è¯´ä¸€åˆ‡æ£å¸¸ï¼›å½“ä½ åœ¨ç”µè„‘ä¸Šä¿®æ”¹äº†ç½‘ç»œè®¾ç½®ï¼Œå�´è¿Ÿè¿Ÿä¸�生效时,技术文档里最常给出的一个建议就是:“刷新一下DNS缓嘔。这个å�¬èµ·æ�¥æœ‰ç‚¹æŠ€æœ¯æ„Ÿçš„æ“�作,究竟是什么æ„�æ€�?它为什么能解决问题?è¦�ç�†è§£å®ƒï¼Œæˆ‘们得从我们æ¯�天上网时一个看ä¸�è§�的关键æ¥éª¤è¯´èµ·ã€‚
地å�€ç°¿ä¸Žä¾¿ç¾æ�¡
ä½ å�¯ä»¥æŠŠäº’è�”网想象æˆ�一个å�ªè®¤æ•°å—门牌å�·ï¼ˆIP地å�€ï¼Œæ¯”如 `142.250.74.110`ï¼‰çš„åºžå¤§åŸŽå¸‚ï¼Œè€Œæˆ‘ä»¬äººç±»ä¹ æƒ¯ä½¿ç”¨å��å—(域å��,比如 `google.com`)æ�¥è®°ä½�地点。DNS(域å��系统)就是这个城市里最é‡�è¦�的公共æœ�务——它是一本超级电è¯�簿,专è�ŒæŠŠ“è°·æŒå…¬å�¸”这个å��å—,查找到它对应的精确数å—门牌。
然而,如果æ¯�æ¬¡ä½ æƒ³è®¿é—®è°·æŒï¼Œä½ 的电脑都è¦�跑到城市ä¸å¿ƒçš„“æ€»ç”µè¯�å±€”(DNSæ ¹æœ�务器)去排队查询一次,那么上网就会å�˜å¾—æž�å…¶ç¼“æ…¢ã€‚ä¸ºäº†è§£å†³è¿™ä¸ªé—®é¢˜ï¼Œä½ çš„ç”µè„‘ã€�路由器ã€�ç”šè‡³ä½ çš„ç½‘ç»œæœ�务商,都å¦ä¼šäº†å�šä¸€ä¸ªè�ªæ˜Žçš„动作:缓å˜ã€‚
具体æ�¥è¯´ï¼Œå½“ä½ çš„ç”µè„‘ç¬¬ä¸€æ¬¡æˆ�功访问 `google.com` 时,它通过DNS查询到了对应的IP地å�€ã€‚完æˆ�访问å�Žï¼Œå®ƒä¸�ä¼šç«‹åˆ»æ‰”æŽ‰è¿™ä¸ªç»“æžœï¼Œè€Œæ˜¯æŠŠå®ƒå½“ä½œä¸€å¼ “ä¾¿ç¾æ�¡”,记录在本地一个临时的å°�本å�(DNS缓å˜ï¼‰ä¸Šï¼Œå¹¶è®¾ç½®ä¸€ä¸ªæœ‰æ•ˆæœŸã€‚在接下æ�¥çš„å‡ åˆ†é’Ÿæˆ–å‡ å°�æ—¶å†…ï¼Œå½“ä½ å†�æ¬¡æƒ³è®¿é—®è°·æŒæ—¶ï¼Œç”µè„‘会先翻看自己的“ä¾¿ç¾æ�¡”å°�本å�。如果记录还在有效期内,它就直接使用这个地å�€ï¼Œä¸�å†�去打扰“总电è¯�å±€”。这套机制æž�大地æ��å�‡äº†æˆ‘们上网的速度和效率,å‡�少了é‡�å¤�的查询请求。
“刷新”的真æ£å�«ä¹‰
现在我们å�¯ä»¥å›žç”æ ¸å¿ƒé—®é¢˜äº†ï¼šåˆ·æ–°DNSï¼ŒæŒ‡çš„å°±æ˜¯æ¸…ç©ºä½ è®¾å¤‡æœ¬åœ°è¿™ä¸ªå°�本å�上所有旧的“ä¾¿ç¾æ�¡”记录。
为什么需è¦�æ¸…ç©ºå®ƒï¼Ÿå› ä¸º“总电è¯�å±€”里的信æ�¯ï¼ˆå�³åŸŸå��对应的真实IP地å�€ï¼‰æ˜¯ä¼šå�˜åŒ–的。一个最常è§�的场景是网站è¿�移。å�‡è®¾ä¸€ä¸ªç½‘站从美国æœ�务器æ�¬åˆ°äº†é¦™æ¸¯æœ�务器,它在“总电è¯�å±€”登记的新门牌å�·ï¼ˆæ–°IP)已ç»�æ›´æ–°ã€‚ä½†ä½ çš„ç”µè„‘å¯¹æ¤ä¸€æ— 所知,它的å°�本å�上还贴ç�€å†™æœ‰æ—§ç¾Žå›½åœ°å�€çš„“ä¾¿ç¾æ�¡”ã€‚å½“ä½ è¯•å›¾è®¿é—®æ—¶ï¼Œç”µè„‘ä¾�然会兴冲冲地跑去那个已ç»�ç©ºæ— ä¸€ç‰©çš„æ—§åœ°å�€ï¼Œç»“果自然是“æ— æ³•è®¿é—®”。
这时,刷新DNS缓å˜å°±ç›¸å½“äºŽæŠŠä½ å°�本å�ä¸Šçš„é‚£å¼ è¿‡æœŸ“ä¾¿ç¾æ�¡”æ’•æŽ‰ã€‚å½“ä½ ä¸‹ä¸€æ¬¡å°�试访问那个网站时,电脑å�‘现å°�本å�上没有记录,就会被迫é‡�新去“总电è¯�å±€”查询一次,从而拿到最新ã€�最æ£ç¡®çš„地å�€ã€‚
å› æ¤ï¼Œåˆ·æ–°DNSä¸�是一个“ä¿®å¤�”动作,而是一个“é‡�ç½®”或“强制更新”çš„åŠ¨ä½œã€‚å®ƒçš„æ ¸å¿ƒç›®çš„æ˜¯æ¸…é™¤æœ¬åœ°è¿‡æ—¶ã€�错误或冲çª�çš„DNSè§£æž�记录,迫使系统从æ�ƒå¨�æº�获å�–最新的信æ�¯ã€‚
刷新在何处�生?
ç�†è§£äº†åŽŸç�†ï¼Œæˆ‘们就能看到,这个“å°�本å�”å˜åœ¨äºŽå¤šä¸ªå±‚级,刷新的ä½�置决定了影å“�的范围:
1. æ“�作系统缓å˜ï¼šè¿™æ˜¯æœ€å¸¸æ“�作的层级,å˜åœ¨äºŽä½ çš„Windowsã€�macOS或Linux电脑内。清除这里的缓å˜ï¼Œå�ªå½±å“�当å‰�è¿™å�°ç”µè„‘。
2. æµ�览器缓å˜ï¼šçް代æµ�览器如Chromeã€�Firefoxä¸ºäº†æ›´å¿«åœ°åŠ è½½ç½‘é¡µï¼Œä¹Ÿæœ‰è‡ªå·±ç‹¬ç«‹çš„DNS缓å˜ã€‚有时需è¦�å�•独清ç�†æµ�览器的历å�²è®°å½•和缓å˜ã€‚
3. 路由器缓å˜ï¼šä½ çš„å®¶åºæˆ–办公室路由器也扮演ç�€DNS查询的ä¸è½¬ç«™è§’色,它å�Œæ ·ä¼šç¼“å˜è®°å½•。刷新或é‡�å�¯è·¯ç”±å™¨ï¼Œå�¯ä»¥æ¸…除这个影å“�整个局域网所有设备的缓å˜ã€‚
4. ISP缓å˜ï¼šä½ 的网络æœ�务商(如ä¸å›½ç”µä¿¡ã€�ä¸å›½ç§»åŠ¨ï¼‰æ‹¥æœ‰æ›´å¤§èŒƒå›´çš„ç¼“å˜æœ�åŠ¡å™¨ï¼Œä¸ªäººç”¨æˆ·æ— æ³•ç›´æŽ¥åˆ·æ–°ï¼Œé€šå¸¸éœ€è¦�ç‰å¾…其自然过期(TTL到期)。
如何执行刷新
刷新æ“�作需è¦�通过在命令行终端ä¸è¾“入特定指令æ�¥å®Œæˆ�。以下是在ä¸�å�Œæ“�作系统ä¸åˆ·æ–°æœ¬åœ°DNS缓å˜çš„通用方法,请打开对应的命令行工具执行:
在 Windows 系统ä¸ï¼š
使用命令�示符(以管�员身份�行)。最�典有效的命令是:
ipconfig /flushdns
执行æˆ�功å�Žï¼Œä½ 会看到“å·²æˆ�功刷新DNSè§£æž�缓嘔的æ��示。对于Windows 10/11,有时å�¯ä»¥é¢�外é‡�å�¯DNS客户端æœ�务:
net stop dnscache && net start dnscache
在 macOS 系统ä¸ï¼š
æ‰“å¼€ç»ˆç«¯ã€‚æ ¹æ�®ç³»ç»Ÿç‰ˆæœ¬çš„ä¸�å�Œï¼Œå‘½ä»¤æœ‰æ‰€å·®å¼‚。对于较新的版本(macOS Big Surå�Šä»¥å�Žï¼‰ï¼Œæœ€å�¯é� 的命令是:
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder
ä½ éœ€è¦�输入管ç�†å‘˜å¯†ç �æ�¥å®Œæˆ�æ“�作。
在主æµ�Linuxå�‘行版ä¸ï¼š
打开终端。由于Linux使用ä¸�å�Œçš„DNSæœ�务,命令å�–å†³äºŽä½ çš„ç³»ç»Ÿã€‚æœ€å¸¸è§�的是使用`systemd-resolved`æœ�务,命令为:
sudo systemd-resolve --flush-caches
如果系统使用`nscd`(å��ç§°æœ�务缓å˜å®ˆæŠ¤è¿›ç¨‹ï¼‰ï¼Œåˆ™ä½¿ç”¨ï¼š
sudo systemctl restart nscd
或
sudo service nscd restart
何时需�刷新?
了解了“是什么”å’Œ“怎么å�š”,最å�Žè¦�明确“什么时候用”。日常é�‡åˆ°ä»¥ä¸‹æƒ…况时,刷新DNS缓å˜é€šå¸¸æ˜¯æœ‰æ•ˆçš„ç¬¬ä¸€æ¥æŽ’æŸ¥æ‰‹æ®µï¼š
网站è¿�移或IPå�˜æ›´å�Žæ— 法访问:这是最典型的场景,如å‰�所述。
访问网站出现解æž�错误:æ��示“DNS_PROBE_FINISHED_NXDOMAIN”ç‰é”™è¯¯ã€‚
修改了本地Hosts文件å�Žï¼šHosts文件是手动指定域å��å’ŒIPæ˜ å°„çš„æœ¬åœ°æ–‡ä»¶ï¼Œä¿®æ”¹å�Žåˆ·æ–°ç¼“å˜èƒ½ç¡®ä¿�新规则立å�³ç”Ÿæ•ˆï¼Œè¿™åœ¨å¼€å�‘测试ä¸å¸¸ç”¨ã€‚
é�é�‡DNS污染或劫æŒ�:æŸ�些æ�¶æ„�è½¯ä»¶æˆ–ç½‘ç»œçŽ¯å¢ƒä¼šç¯¡æ”¹ä½ çš„DNS结果,刷新缓å˜å�¯èƒ½æš‚时清除错误记录。
网络切æ�¢å�Žå‡ºçŽ°è¿žé€šæ€§é—®é¢˜ï¼šä¾‹å¦‚ä»Žå…¬å�¸ç½‘络切æ�¢åˆ°å®¶åºç½‘络å�Žï¼ŒæŸ�些网站打ä¸�开。
ä¸�过,刷新本地缓å˜å¹¶é�žä¸‡èƒ½ã€‚å¦‚æžœé—®é¢˜å‡ºåœ¨æ›´ä¸Šæ¸¸ï¼ˆå¦‚ä½ çš„è·¯ç”±å™¨DNS设置错误ã€�网络æœ�务商的DNSæœ�务器故障ã€�或者网站域å��注册记录本身全ç�ƒå�Œæ¥å°šæœªå®Œæˆ�),那么刷新本地缓å˜å°±æ— èƒ½ä¸ºåŠ›äº†ã€‚æ¤æ—¶ï¼Œä½ å�¯ä»¥å°�试将电脑的DNSæœ�务器手动更改为公共DNS(如 `8.8.8.8` 或 `1.1.1.1`),这相当于æ�¢äº†ä¸€ä¸ªæ›´å�¯é� ã€�更干净的“总电è¯�å±€”去查询,然å�Žå†�次刷新缓å˜ã€‚
总而言之,刷新DNS是一个简å�•å�´è‡³å…³é‡�è¦�的网络基础技能。它ä¸�改å�˜ä»»ä½•网络设置,也ä¸�ä¿®å¤�å¤�æ�‚的硬件故障,它å�ªæ˜¯å�šäº†ä¸€ä»¶äº‹ï¼šè®©ä½ 本地的“地å�€ä¾¿ç¾æœ¬”归零,为获å�–最新的ã€�æ£ç¡®çš„网络地å�€æ‰«æ¸…éšœç¢�ã€‚å½“ä½ ä¸‹æ¬¡å†�é�‡åˆ°“别人能上我å�´ä¸�能”的网络怪事时,ä¸�妨先å°�试执行一下这个简å�•的刷新命令,它很å�¯èƒ½å°±æ˜¯é€šå¾€é¡ºç•…网络的那把钥匙。