0

我正在使用终端命令来替换/ etc / hosts - 文件。

alias notews =“sudo -s chattr -i / etc / hosts 

hosts_all_blocked是一个用来阻止分散注意力的网页的文件。/etc/password_file包含sudo-password。

所以在使用后,我希望相关页面立即被屏蔽。我尝试了这个命令,有时它会立即工作,但有时即使文件改变了,也不会影响打开网页的可能性。

如何确保/etc/hosts中的更改能够立即生效?

顺便说一句:对于解锁,我正在使用20分钟的延迟:

alias getnews="sleep 1200 && sudo -S chattr -i /etc/hosts < /etc/password_file && sudo -S cp /etc/hosts_all_allowed /etc/hosts < /etc/password_file && sudo -S chattr +i /etc/hosts < /etc/password_file"
2
  • 3.
    如果浏览器已经在网站上打开了,那么它使用自己的内部DNS缓存的可能性非常高。您还必须刷新浏览器的缓存
    - - - - - -matigo
    9月28日12:28
  • @Matigo我刚用另外添加的网页检查了你的提示。更改文件后无效。然后删除缓存后我有一个即时效果。非常感谢。如果您将评论放在答案中,我将选择它作为正确答案。
    - - - - - -托马斯R.
    9月28日12:42
1

浏览器通常会在缓存中保留DNS查找的本地副本,以节省加载站点的时间。这意味着您需要清除浏览器的缓存,以便更改/ etc / hosts文件被看到已经加载的网站(包括那些可能已经加载在以前关闭的标签)。

考虑到这一点,您可能希望将您的别名扩展到Shell脚本,该shell脚本也删除浏览器缓存(但叶饼干完好无损......除非您想从一个“新鲜”浏览器开始,这些浏览器一无所知每次)。

如果你使用Firefox作为你的主浏览器,你可以通过下面的命令清除缓存:

RM -R〜/ .cache / mozilla / firefox / *。默认* / *

如果使用Google Chrome作为您的主浏览器,则可以清除类似的缓存:

RM〜/ .cache / google-chrome

对于其他浏览器,您将需要深入研究~/.缓存要查找他们保留临时资源的目录。

注意,这些命令应该作为使用者,而不是sudo

2
  • 感谢您的回答,以及关于如何使用终端命令删除缓存的附加信息。我还没有测试终端部分。但由于这个问题已经回答了,没有这个部分,我只是接受了你的答案。你太棒了!
    - - - - - -托马斯R.
    9月28日13:07
  • BTW:有时还需要重新启动浏览器,以确保将更改考虑在内。
    - - - - - -托马斯R.
    9月30日9:02

你的答案

点击“发布你的答案”,即表示你同意我们的服务条款隐私政策饼干的政策

不是你想要的答案?浏览其他带标签的问题或者问你自己的问题