如果你正在用 QuickQ 遇到域名解析异常、切换节点后访问被缓存的老 IP,或者访问某些站点仍然被旧路由“卡住”,清空本地 DNS 缓存通常能很快解决问题。不同系统的做法不一样:在 Windows 下用管理员权限运行 ipconfig /flushdns(或 PowerShell 的 Clear-DnsClientCache);在 macOS 根据版本运行对应的 mDNSResponder/dscacheutil 命令;在 Android 则通常通过断开/重连网络、切换飞行模式或清除 QuickQ 应用缓存来“刷新”系统解析;Linux 则用 systemd-resolved/resolvectl 或重启 nscd。除此之外,还要清除浏览器和 QuickQ 自身的缓存或改变 VPN DNS 设置,确保没有路由器或第三方 DNS 服务在中间作怪。下面我按费曼法把概念、动机和每个平台的具体命令与排查步骤都讲清楚,带一些常见坑和验证方法,方便你一步步跟着做。

为什么要清空本地 DNS 缓存(先把原理讲清楚)
先把概念说清楚,不然你会觉得很多操作像是迷信。DNS(域名系统)把我们输入的网址(比如 example.com)翻译成 IP 地址,操作系统为了加速访问,会把最近解析过的域名和对应的 IP 存在本地缓存中,称为 DNS 缓存。好处是速度更快;坏处是当域名的解析结果发生变化(比如服务器搬家、CDN 切换、VPN 的 DNS 被强制改变),系统可能还在用旧结果,导致连接到错误的 IP,出现无法访问、重定向到旧站点或地理位置判断错误等问题。
用 QuickQ 之类的 VPN/加速器时特别容易遇到:你换了节点或 QuickQ 提供了自家 DNS,系统缓存还绑着原始 ISP 的解析,那就会出现“明明连上了 VPN,但访问还是原来的出口”的情况。清空本地 DNS 缓存就是告诉系统“把已有的翻译记录删掉,下次需要再去问 DNS 服务器重新解析”。
类比一下,容易理解
- 把 DNS 缓存想成你桌上的便签——方便但有时过期;
- 清空缓存就像把便签扔掉,下一次需要信息时你就会重新去问权威来源(DNS 服务器);
- 在使用 VPN(QuickQ)时,如果你不想被旧便签误导,就得把便签清理掉。
先给出一个总体流程(做事的顺序很重要)
不管你用哪个系统,清空 DNS 缓存的基本思路是一样的:
- 确认你需要管理员/root 权限(多数系统需要);
- 先在 QuickQ 内断开再重连或切换节点,看看是否能自动解决;
- 如果不行,按系统方法清空本地 DNS 缓存;
- 同时清除浏览器和应用的缓存(浏览器有自己的解析缓存);
- 验证:用 nslookup/dig/浏览器访问或 ipconfig /displaydns 等命令检查是否生效;
- 如果仍然异常,继续排查 hosts 文件、路由器 DNS、系统的 DNS over TLS/HTTPS 或第三方软件(如 Pi-hole、DNSCrypt、AdGuard)是否在中间。
Windows(最常见)
适用版本
Windows 7、8、10、11 都适用。操作需要管理员权限。
步骤(从简单到严格)
- 最简单(常见且通常足够):以管理员身份打开命令提示符(CMD),执行:
ipconfig /flushdns
这会清空 Windows DNS 客户端缓存。执行成功会看到“Windows IP 配置。已成功刷新 DNS 解析缓存”的提示。
- PowerShell 方法(现代 Windows):以管理员权限打开 PowerShell,运行:
Clear-DnsClientCache
也可以先用 Get-DnsClientCache 查看当前缓存。
- 如果 DNS 缓存服务异常:可以尝试重启 DNS Client 服务(仅限某些情况):
net stop dnscache
net start dnscache注意:某些系统和策略可能禁止停止该服务,这时用前面的 flush 就够了。
- 清除浏览器缓存(Chrome/Edge/Firefox):浏览器会有自己的主机解析缓存。最稳妥的是关闭浏览器再重启。也可以在 Chrome 地址栏输入 chrome://net-internals/#dns,点击“Clear host cache”(部分新版本 Chrome 该页面可能被移除)。
验证
- 查看缓存:在管理员 CMD 里运行 ipconfig /displaydns。
- 实时解析测试:nslookup domain.com 或 ping domain.com(注意 ping 结果可能被目标服务器禁用)。
macOS(命令随系统版本变化)
macOS 的 DNS 缓存由 mDNSResponder 或系统缓存管理,不同版本的命令不同。先查版本号:在终端执行 sw_vers -productVersion。
| macOS 版本 | 常用清缓存命令(在终端执行,需管理员权限) |
| macOS 10.11 及以后(包括 Big Sur/Monterey/Ventura) | sudo killall -HUP mDNSResponder sudo dscacheutil -flushcache |
| macOS 10.10 (Yosemite) | sudo discoveryutil mdnsflushcache sudo discoveryutil udnsflushcaches |
| macOS 10.6 – 10.9 | sudo killall -HUP mDNSResponder |
| 通用建议 | 先运行 sudo dscacheutil -flushcache 再运行对应 mDNSResponder 重载命令,虽有点重复但普遍有效。 |
额外说明
- 终端命令执行后通常无输出或仅有简短提示,表示已刷新;
- 如果是 QuickQ 的 mac 客户端内置 DNS,可以先在应用里断开再重连,或在应用设置中切换服务器/节点;
- 浏览器缓存同样需要重启浏览器或清除缓存。
Android(限制较多,方法因版本而异)
Android 系统的 DNS 缓存不像桌面系统有统一命令可执行。普通用户可以通过下面这些方法来“逼”系统和应用重新解析。
常用方法(无须 root)
- 快速操作:关闭 QuickQ VPN,然后在系统设置里关闭 Wi‑Fi 或移动数据,再开启(或直接切换飞行模式开/关)。这一步通常会使系统网络栈重置,从而清除缓存。
- 重启 QuickQ 应用:强制停止 QuickQ(设置 > 应用 > QuickQ > 强制停止),然后清除应用缓存(设置 > 存储 > 清除缓存),再重新启动并连接。
- 浏览器处理:关闭浏览器或清除浏览器缓存(特别是内置 WebView 或 Chrome 的缓存)。
- 私有 DNS(Android 9+):到 设置 > 网络和互联网 > 私有 DNS,检查是否设置为某个固定 DNS 服务;如果有,临时改回“自动”或关闭,然后再测试。
进阶(需要 adb/root 才能做的)
- 有 root 的设备可以重启 network 服务或 flush DNS 的系统组件,这里不一一展开,操作风险和设备差异较大。
- 使用 adb(开发者选项开启)可以重启网络堆栈或直接重启设备来清空缓存。
为什么不能直接像桌面那样做?
Android 的很多解析缓存是在内核或浏览器进程里,本机并没有统一暴露的 flush 命令。通常最稳妥的做法是断网重连或重启应用/设备。
Linux(以 Ubuntu 为例)
Linux 桌面环境多样,DNS 解析可能由 systemd-resolved、nscd、dnsmasq 等管理。先确认你使用的是哪种解析服务。
- systemd-resolved(现代 Ubuntu, Debian):
sudo resolvectl flush-caches 或 sudo systemd-resolve –flush-caches
- nscd:
sudo /etc/init.d/nscd restart 或 sudo systemctl restart nscd
- dnsmasq(如果在用):
sudo systemctl restart dnsmasq
QuickQ 自身与路由器/第三方服务相关的注意事项
清空本地 DNS 缓存只是本地一环。还要检查这些地方:
- QuickQ 的 DNS 设置:某些 VPN 会强制使用自家 DNS 或允许你在设置里指定 DNS(比如 1.1.1.1、8.8.8.8 或自定义)。如果 QuickQ 在隧道内处理 DNS,你可能需要在 QuickQ 里改 DNS 或切换节点才能看到变化。
- 路由器缓存/ISP 缓存:路由器也可能缓存 DNS,重启路由器可以清除;ISP 侧的缓存不在你可控范围内,但通常 TTL 会过期。
- 系统 hosts 文件:检查 hosts 文件(Windows 在 C:\Windows\System32\drivers\etc\hosts,macOS/Linux 在 /etc/hosts),确保没有把域名写死。
- 第三方 DNS 服务:如 Pi-hole、AdGuard Home、DNSCrypt 等会在本地或局域网中缓存,需在相应服务上清理。
如何验证清理是否生效(几种实用方法)
- 命令行检查:Windows 用 ipconfig /displaydns 或 PowerShell 的 Get-DnsClientCache;macOS 没有直观的 displaydns,但你可以先 flush 再用 dig / nslookup 看结果;Linux 用 resolvectl status 或重启后的查询。
- nslookup/dig:在命令行执行 nslookup 域名 或 dig 域名 +trace,看返回的 DNS 服务器和 IP 是否是你希望的出站节点或 DNS 提供者。
- 浏览器直接访问:清除缓存后打开无痕/隐身窗口访问目标站点,观察是否能正常加载或是否跳转到新 IP。
- 切换 QuickQ 节点:切换节点后做一次 nslookup,看解析是否跟着节点/设置变化。
常见问题与排查思路(实用小贴士)
- 我清空了本地 DNS,但网站还是打不开:可能是目标站点本身有问题、QuickQ 节点受限、或路由器/ISP 层面有缓存;试试换节点、重启路由器或在别的设备上测试。
- 我担心操作危险:大部分清缓存命令只是刷新缓存,不会改写配置。但执行 sudo/管理员命令需谨慎,确认命令和版本。
- 为何浏览器表现不同于系统命令结果:浏览器(尤其 Chrome)有自己的主机解析缓存,必须重启浏览器或清除缓存才能看到系统层面的变化。
- QuickQ 是否会自动管理 DNS:很多 VPN/加速器会在连接时下发 DNS 设置来防止泄漏,了解 QuickQ 的隐私/连接设置很重要,必要时在应用里选择不同的 DNS 模式或手动指定。
一张速查表(常用命令汇总)
| 系统 | 关键命令/操作 |
| Windows | ipconfig /flushdns PowerShell: Clear-DnsClientCache 查看: ipconfig /displaydns |
| macOS | sudo dscacheutil -flushcache sudo killall -HUP mDNSResponder (Yosemite: discoveryutil …) |
| Android | 断网/飞行模式开关、清除应用缓存、重启设备/断开重连 QuickQ |
| Linux | sudo resolvectl flush-caches 或 sudo systemd-resolve –flush-caches restart nscd/dnsmasq as needed |
最后的几个实战小技巧(经验之谈)
- 如果你频繁在不同节点/国家切换节点:习惯先断开 QuickQ,再在系统层面 flush dns,然后重新连接,这样最干净。
- 遇到访问被劫持或无法到达的域名,优先检查 hosts 文件与路由器,再做本机清理。
- 保持系统和 QuickQ 应用更新,旧版本可能会有 DNS 泄漏或缓存处理的问题。
- 用命令行测试能比直接用浏览器更快定位问题——nslookup、dig、traceroute 都很有用。
说了这么多,最关键的还是按顺序来:先在 QuickQ 里试断连/切换节点;如果没用,看你的设备是哪种系统,按上面的命令清除本地缓存;别忘了浏览器和路由器,以及 QuickQ 自带的 DNS 设置。做完验证一步步排查,基本上能把因为 DNS 缓存导致的大多数“假性问题”解决掉。写到这里,我自己也想到过几次又懒得重启电脑的场景,最后还是按顺序操作,马上就通了——就像擦掉桌上的旧便签,立刻清爽多了。