The short answer: to block a site, open System Settings › Screen Time › Content & Privacy, turn it on, and add the site under Store, Web, Siri & Game Center Content › Web Content. To allow pop-ups for one site in Safari, open that site, choose Safari › Settings › Websites › Pop-up Windows and set it to Allow.
用“屏幕时间”拦截网站
“屏幕时间”内置于 macOS 中,无需额外的应用。它本是为家长控制而设计的,但在你自己的账户上同样适用。
- 打开“系统设置”›“屏幕时间”。如果是为孩子设置,请先选择孩子的名字。
- 点按“内容与隐私”并将其开启。
- Click Store, Web, Siri & Game Center Content. Under Web Content, choose Limit Adult Websites, then click Customize.
- 在“受限”下点按 +,输入网站地址,例如
example.com,然后点按“完成”。
To allow only a short list of sites instead, choose Allowed Websites. Set a Screen Time passcode in Screen Time's settings so the block can't simply be switched off. The filter is built for Safari; check that it also blocks the site in any other browser on the Mac.
用 hosts 文件在所有浏览器中拦截网站
hosts 文件会在 Mac 向互联网查询之前,先告诉它到哪里去找某个网站。把网站指向一个无效地址,就能在所有使用 macOS 进行查询的浏览器和应用中拦截它。这需要几条“终端”命令和你的管理员密码:
- 打开“终端”并运行
sudo nano /etc/hosts。 - 在文件末尾为每个地址添加一行,例如
0.0.0.0 example.com和0.0.0.0 www.example.com。每个子域名都需要单独一行。 - 按下 Control-O 和回车键保存,然后按 Control-X 退出。
- 用
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder清除 DNS 缓存,然后重新启动浏览器。
要解除拦截,用同样的方法删除这些行。文件中原有的行不要动,macOS 需要它们。
拦截网站的其他方法
- 用于拦截网站的浏览器扩展只在安装了它的浏览器中有效,而且很容易被关掉。
- 你的 Wi-Fi 路由器可能带有网站拦截或家长控制功能。它对家中的所有设备都有效,但 Mac 连到其他网络时就不起作用了。
- 在 DNS 层面为整台 Mac 工作的拦截工具,例如 Tidy My Mac 的 Web Protection,可以覆盖所有浏览器和应用,包括子域名,而且无需任何“终端”命令。
如何在 Mac 上允许弹出式窗口
浏览器默认会拦截大多数弹出式窗口。但有些网站,例如银行、支付和预订页面,会打开你需要用到的窗口。只为该网站允许弹出式窗口,而不要在所有地方关闭拦截。
- Safari:打开该网站,然后选取Safari 浏览器 › 设置,点按网站。在边栏中点按弹出式窗口,找到该网站并将其设为允许。底部的访问其他网站时是所有其他网站的默认设置,那里选择阻止并通知比较合适。
- Chrome:Chrome 拦截弹出式窗口后,地址栏末尾会出现一个图标;点按它,选择始终允许该网站的弹出式窗口。也可以打开设置 › 隐私和安全 › 网站设置 › 弹出式窗口和重定向,将该网站添加到允许的网站中。
- Firefox:打开设置 › 隐私与安全,滚动到权限,点按阻止弹出式窗口旁边的例外来添加该网站。
仍然冒出来的弹窗
如果开着拦截仍不断出现广告,它们通常并不是弹出式窗口。你曾经允许过的网站发来的通知,即使浏览器已关闭也会出现在屏幕角落:请在Safari 浏览器 › 设置 › 网站 › 通知中或 Chrome 的网站设置中拒绝它们。每个网站上都有广告、新标签页自己打开,或者搜索引擎被更改,都是广告软件的迹象;请参阅如何清除浏览器劫持。声称你的 Mac 已被感染并给出电话号码的弹窗一定是骗局:请参阅“Apple Security Alert”骗局。
用 Tidy My Mac 拦截网站
- Web Protection 有一个 Always Block 列表:添加一个域名,例如
example.com,它就会在所有浏览器和应用中被拦截,包括子域名。同一个开关还会根据每天更新的列表,拦截网络钓鱼、诈骗和恶意软件网站,以及广告和跟踪器。 - Adware 会找出导致弹窗反复出现的描述文件、浏览器策略和代理,并列出 hosts 文件中把知名网站指向别处的行。
- Browser Extensions 会显示哪些扩展可以读取你访问的每个网站。
关于拦截网站和弹窗的常见问题
在 Safari 浏览器中,选取 Safari 浏览器 › 设置 › 网站 › 弹出式窗口,将你需要的网站设为“允许”。在 Chrome 中,可通过地址栏中的图标或在“网站设置 › 弹出式窗口和重定向”中允许。只允许一个网站比完全关闭拦截更安全。
Safari 浏览器没有自己的拦截列表。请使用“屏幕时间”的“内容与隐私”设置、hosts 文件,或者 Web Protection 这类适用于整台 Mac 的拦截工具。
可以,使用 hosts 文件或适用于整台 Mac 的拦截工具即可。如果 Chrome 开启了安全 DNS 设置,它可能会绕过 macOS 查询网站,所以请检查拦截是否生效。
可能是浏览器缓存了它,或者该网站使用了其他地址,例如 www 或某个国家的域名。请重新启动浏览器、清除 DNS 缓存,并把其他地址也一并拦截。