某些网站绕过 Safari 中的主机文件

nik*_*974 3 mac hosts-file macos

我从 Github 下载了一个主机文件,其中列出了所有色情网站,以便在我的计算机上阻止它们。这在 Chrome 上运行良好,不幸的是在 Safari 上,一些网站根本没有被阻止。

例如,xhamster.com未被阻止,而pornhub.com 则被阻止。

我已经尝试了OSX Sierra 主机文件被忽略和其他类似的线程中提到的所有内容,但无济于事(刷新缓存、制表符而不是空格、IPV4 和 IPV6 等)我还尝试仅使用此域重新创建主机文件,它不起作用。我在 Big Sur 上使用 Safari 14.1.1

其他人至少可以尝试重现这个错误吗?我还有什么其他解决方案?

多谢!

har*_*ymc 11

Stack Overflow 上的答案\n为什么 /etc/hosts 对于 Big Sur 上的某些网站不再起作用?\n(不幸的是关闭)\n作为答案,添加了一个新的 DNS 功能,\n为了加快对支持 HTTPS 的站点的访问速度,\n但不幸的是,这可能会解决该hosts文件。

\n

我在这里引用一下答案:

\n
\n

macOS 11 添加了对正式名称为\xe2\x80\x9c 的服务绑定\n以及通过 DNS 的参数规范(DNS SVCB 和\nHTTPSSV)\xe2\x80\x9d 的支持

\n

现在,当您访问网站时,\xe2\x80\x99 不仅仅是参考\xe2\x80\x99 的典型 DNS \n主机到 IP 地址记录,还会检查A全新的\nDNS 记录。HTTPS它\xe2\x80\x99不仅仅是一个名称条目;它\xe2\x80\x99是\n全新的记录类型\n( #65 ),\ n与更熟悉的A和一起使用。CNAMEMX

\n

这些新的HTTPSDNS 记录可以表明站点支持\nHTTPS,包括协议版本和 IP 地址。这样,输入\n裸域名https://即可立即提供网站的版本,甚至可以在 HTTP/2 或 HTTP/3 上提供,从而跳过老式的 HTTP\n重定向。\xe2\x80\x99 甚至还有一个草案\ n选项供域运营商告诉您的计算机绕过任何本地 DNS\n设置并使用特定服务器来执行\n涉及其域的所有未来 DNS 查询。

\n

这里有许多支持性能的意图,也有一些支持隐私的意图。

\n

但规范和实现都存在致命的隐私和安全缺陷:它消除了用户覆盖 中域名查找的能力/etc/hosts,即使面对主动恶意的域名运营商也是如此

\n

要查看其实际效果:

\n
    \n
  • macOS 自带的版本dig不直接支持这些新记录,但是你可以通过以下命令查看它们是否存在

    \n
    $ dig -t type65 www.politico.com\n\xe2\x80\xa6\n;; QUESTION SECTION:\n;www.politico.com.        IN  TYPE65\n\n;; ANSWER SECTION:\nwww.politico.com. 53806   IN  CNAME   www.politico.com.cdn.cloudflare.net.\nwww.politico.com.cdn.cloudflare.net. 300 IN TYPE65 \\# 58 0001000001000302683200040008681210CA681211CA000600202606\n
    Run Code Online (Sandbox Code Playgroud)\n
  • \n
\n

47000000000000000000681210CA2606470000000000000000006812 11CA\n\xe2\x80\xa6

\n
    \n
  • 我不知道如何解析它,但如果我对其进行数据包捕获,wireshark 就会解析它

    \n
    Domain Name System (response)\n    Queries\n        www.politico.com.cdn.cloudflare.net: type HTTPS, class IN\n    Answers\n        www.politico.com.cdn.cloudflare.net: type HTTPS, class IN\n            Name: www.politico.com.cdn.cloudflare.net\n            Type: HTTPS (HTTPS Specific Service Endpoints) (65)\n            Class: IN (0x0001)\n            Time to live: 300 (5 minutes)\n            Data length: 58\n            SvcPriority: 1\n            TargetName: <Root>\n            SvcParams\n                SvcParam: ALPN\n                    SvcParamKey: ALPN (1)\n                    SvcParamValue length: 3\n                    ALPN length: 2\n                    ALPN: h2\n                SvcParam: IPv4 Hint\n                    SvcParamKey: IPv4 Hint (4)\n                    SvcParamValue length: 8\n                    IP: 104.18.16.202\n                    IP: 104.18.17.202\n                SvcParam: IPv6 Hint\n                    SvcParamKey: IPv6 Hint (6)\n                    SvcParamValue length: 32\n                    IP: 2606:4700::6812:10ca\n                    IP: 2606:4700::6812:11ca\n
    Run Code Online (Sandbox Code Playgroud)\n
  • \n
\n

所以\xe2\x80\x99s发生了什么\xe2\x80\x99s:

\n
    \n
  1. Big Sur 上的 Safari 可以加载您\xe2\x80\x99 阻止的一些网站/etc/hosts,因为它从这些新\nHTTPS记录中获取其 IP 地址
  2. \n
  3. 它只能对某些站点执行此操作,因为大多数域名运营商还没有\xe2\x80\x99 进行此设置。看起来 Cloudflare 已经为他们平台上的每个人\n做到了这一点;幸运的是,大多数域名运营商,包括广告/跟踪/恶意软件巨头,都已经注意到了这一点。
  4. \n
\n

目前,您可以继续使用/etc/hosts您完全控制的域名。

\n

同时,对于其他域,您有一些选择:

\n
    \n
  • 您可以在家庭网络上运行本地 DNS 服务器或防火墙阻止这些\n请求
  • \n
  • 您可以在 Mac 上配置本地 DNS 解析器守护程序,并使用它来阻止这些请求
  • \n
  • 您可以切换到默认配置本地解析器守护进程的 Linux 发行版
  • \n
  • 您可以停止使用 Safari,尽管使用默认 macOS 网络堆栈的其他应用程序可能会继续默默地绕过/etc/hosts
  • \n
\n

Chrome 已对此进行了一些试验,但似乎尚未\n实现它\nyet。Firefox 已经开始实现它,但\xe2\x80\x99t 似乎已经走得太远。

\n
\n