为什么在我通过 launchd 添加阻止的站点后 /etc/hosts 没有阻止域?

Bry*_*ock 3 ipv6 blocking hosts-file macos

我一直在尝试设置 Launchd 以在周一至周五上午 9 点至下午 3 点之间阻止 osX 10.12.2 上的多个网站

我设置launchdcp /etc/hosts_BLOCKED_sites.txt /etc/hosts

Launchd 似乎正在正确复制文件。

$ ls -la /etc/hosts   

    -rw-r--r--  1 root  wheel  715 Jan 10 15:01 /etc/hosts
Run Code Online (Sandbox Code Playgroud)

 

$ sudo cat /etc/hosts

    ##  
    # Host Database  
    #  
    # localhost is used to configure the loopback interface  
    # when the system is booting.  Do not change this entry.  
    ##   
    127.0.0.1   localhost   
    255.255.255.255 broadcasthost  
    ::1             localhost   


    # Blocked sites redirected to 0.0.0.0  
    0.0.0.0 reddit.com   
    0.0.0.0 www.reddit.com  
    0.0.0.0 facebook.com  
    0.0.0.0 www.facebook.com  
Run Code Online (Sandbox Code Playgroud)

但是,在设置为阻止访问后,我仍然可以打开被阻止的网站/etc/hosts

关于为什么/etc/hosts不阻止访问这些网站有什么建议吗?

我尝试过但未能阻止 Chrome 上的网站:

  • sudo killall -HUP mDNSResponder从命令行
  • 我尝试通过以下方式刷新 Chrome DNS 缓存chrome://net-internals/#dns
  • 我尝试刷新 Chrome 套接字chrome://netinternals/#sockets
  • 我切换了主机文件以将站点重定向到 127.0.0.1 ,它没有阻止该站点,并且我被告知重定向到 0.0.0.0 更快

这没有什么区别。所有被阻止的网站仍然可以通过 Chrome v55.0.2883.95 访问。

Seb*_*ebK 5

输入 ipv4 + ipv6 的主机条目并运行

sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder

要清除缓存,我仍然需要重新启动 Chrome 才能使主机条目生效。

我的主机条目:

127.0.0.1       youtube.com
127.0.0.1       www.youtube.com
fe80::1%lo0      youtube.com
fe80::1%lo0     www.youtube.com
Run Code Online (Sandbox Code Playgroud)