从终端清除 Chrome 的 DNS 缓存

从终端清除 Chrome 的 DNS 缓存

我编写了一个脚本,用于在一天中的某些时间将网站添加到主机文件。例如,它可以在晚上 8 点到 10 点之间屏蔽 Youtube。它运行良好,但是更改不会反映在 Chrome 中。这与 Chrome 中的内部 DNS 缓存有关,似乎无法在不进入 Chrome 的设置或重新启动浏览器的情况下刷新。

有什么办法可以从终端清除这个缓存吗?

答案1

切断网络然后重新启动就可以了(感谢这个答案);在 Ubuntu 上我使用的是 nmcli。我将其编写为一个名为“social-media-break”的脚本,并使用“5m”或“15m”等睡眠参数运行它。它依赖于这些 hosts.socialmediaallow 和 hosts.normal 文件的存在,其中“normal”文件将各种社交媒体网站发送到 127.0.0.1。

这很快捷,也很肮脏,需要 root 权限。

#!/bin/bash
sudo -v
sudo cp /etc/hosts.socialmediaallow /etc/hosts
sleep $1
sudo cp /etc/hosts.normal /etc/hosts
nmcli networking off && nmcli networking on

答案2

你尝试过吗:

打开新标签页>在搜索框中输入网址:chrome://net-internals/#dns 点击“清除主机缓存”按钮。

您可能还需要清除套接字池:打开新选项卡并在搜索框中输入以下内容: chrome://net-internals/#sockets 点击“刷新套接字池”:

相关内容