返回更新列表
新发布Sep 1, 2026

wBlock v3.0.0

适用于 Safari 的下一代广告拦截器。在 macOS、iOS、iPadOS 和 visionOS 上免费且开源,拥有 750,000 条规则、用户脚本、用户样式和元素清除器。

分享
wBlock logo

wBlock

终结 Safari 广告拦截的糟心事。

一款免费、开源的广告拦截器,适用于 Mac、iPhone、iPad 和 Apple Vision Pro 上的 Safari。


Download on the App Store

Version Platforms License Discord Mentioned in Open-Source iOS Apps


wBlock on macOS in light and dark mode

Safari 给广告拦截器留的空间非常有限。每个内容拦截器只有 150,000 条规则,而且无法触及页面的 JavaScript。wBlock 内置了五个拦截器(共 750,000 条规则),外加一个脚本扩展来处理规则无法完成的一切。这涵盖了 scriptlet、外观过滤、用户脚本和用户样式、元素清除器,以及适用于 YouTube 和大多数其他网站的原生视频播放器。

它免费且不收集任何数据。如果某个列表出了问题,你可以查看它编译成了什么、Safari 丢弃了哪些行,以及上次更新时改动了什么。

[!TIP] 在 wBlock、uBlock Origin Lite、Wipr 和 AdGuard 之间犹豫不决?我写了一篇对比。


功能一览

拦截

  • 采用 AdGuard 语法的过滤列表,编译为 Safari 规则并分散到五个拦截器中。匹配由 Safari 自己完成,wBlock 空闲时占用约 40 MB。
  • 良好的默认配置、根据你的语言挑选的区域列表、烦扰和 Cookie 横幅列表,以及你通过 URL、粘贴或文件添加的任何内容。
  • 按你选择的时间表更新,从每小时到每周。发布差异补丁的列表只下载变更部分。在 macOS 上,一个小型 launch agent 即使在应用关闭时也会持续检查。
  • 像 utm_* 这样的跟踪参数会从链接中剥离,短链接会被还原。此功能默认开启。
  • 一个容量条,以及一个规则查看器,告诉你哪些行不受支持、重复,或被交给了脚本扩展。

用户脚本和用户样式

  • 一个兼容 Greasemonkey 的引擎,同时支持 GM_* 和 GM.*。GM_xmlhttpRequest 只能访问脚本在 @connect 中列出的主机。
  • UserCSS 主题(.user.css),包括 Less、Sass 和 Stylus。更多内容见 docs/USERSTYLES.md。
  • 内置目录包含 Tube Cleaner、Player Cleaner、DeArrow、Dark Reader、Return YouTube Dislike、Bypass Paywalls Clean、AdGuard Extra、AdGuard Popup Blocker 和 TwitchAdSolutions。除 tinyShield(一个反广告拦截破解器)外,目录中的所有内容默认关闭。

原生视频

Tube Cleaner 和 Player Cleaner 会在页面渲染之前将网站的视频交还给 Safari。你可以获得画中画、后台音频、全屏和“正在播放”,与普通的 <video controls> 标签一样。

Tube Cleaner 是用于 YouTube 的那个。它保留 YouTube 自己的流,将章节和字幕放入 Safari 的原生菜单,并通过 SponsorBlock 跳过赞助内容,支持按类别设置。如果你还想要更好的标题和缩略图,DeArrow 是一个单独的脚本。Player Cleaner 在 video.js、JW Player、Plyr、Flowplayer、MediaElement、Clappr、Media Chrome 以及像 Archive.org 那样的 shadow-root 播放器上做同样的工作,并且会记住每个网站上的速度、音量、字幕和播放进度。

两者都从 wBlock-userscripts 按各自的计划独立于应用更新。它们不拦截广告(那是过滤列表的工作)。

按站点控制

在任何网站上点击工具栏按钮,你会看到过滤、用户脚本和自动播放的独立开关,以及元素清除器。你还可以将某个过滤列表或用户脚本限制在特定网站上,或将其排除。清除器规则在设置中保持可编辑。

全设备支持

它是 macOS、iOS、iPadOS 和 visionOS 上的同一个应用。iCloud 同步你的列表、自定义过滤器、用户脚本、允许列表和设置。如果你更愿意将数据保留在本地,可以改为导出备份。


截图

Userscripts on macOS
macOS 上的用户脚本
SponsorBlock settings in Tube Cleaner
Tube Cleaner 中的 SponsorBlock
The Safari popup on iPhone
iPhone 上的 Safari 弹出窗口
Settings on macOS
macOS 上的设置

安装

  • App Store。它会自动更新,也是我会用的方式。
  • Homebrew:brew tap 0xcub3/wblock && brew install --cask wblock
  • 从最新版本下载 DMG。

三者是同一个构建。首次启动时,wBlock 会引导你在 Safari 中开启扩展。

TestFlight 测试版

TestFlight 是 Apple 的可选测试版分发服务。我用它来分发已签名的测试版构建,并在稳定版发布前收集反馈。你不需要 TestFlight 或付费的 Apple Developer 会员资格来安装上面的稳定版构建。

Apple 会自动收集测试版崩溃日志和使用信息,并与开发者共享。在测试期间你无法退出该收集。你提交的反馈和截图也会被共享,且可能包含私密内容。加入前请阅读 Apple 的 TestFlight 隐私声明 以及 wBlock 隐私政策中的 TestFlight 部分。


工作原理

wBlock 由三部分组成。应用下载你的列表,用 SafariConverterLib 4.3.0 进行转换,并将结果分散到五个内容拦截器(Ads、Privacy、Security、Foreign、Custom)中。Safari 编译这些规则并自行应用,页面加载时没有任何 wBlock 代码运行。静态规则无法表达的内容会交给 wBlock Scripts 扩展。

过滤数据以 Protocol Buffers 格式存储,采用 LZ4 压缩,并流式写入磁盘,以避免大型编译时内存飙升。如果你更改一个列表,只有该列表所供给的拦截器会被重建。Safari 仍然需要重新加载它们才能看到变化,任何应用都无法跳过这一步。

对比展示了当你为某个网站关闭过滤时 wBlock 写入的确切规则。


常见问题

我应该把 wBlock 和另一个广告拦截器一起运行吗?

不。选择一个通用拦截器即可。

两个拦截器会争夺相同的请求和相同的页面。Mozilla 的 webRequest 文档指出,当两个扩展以冲突的方式修改同一个响应时,只有一个会生效。uBlock Origin 的 README 说“不要将 uBO 与任何其他内容拦截器一起使用”(来源),AdGuard 也警告会出现加载缓慢、网站损坏和视频问题(来源)。

这也会让你的错误报告变得毫无用处。同时开着两个拦截器,我无法判断是哪一个放过了广告或弄坏了网站。提交任何问题之前,请先关掉另一个。

Skill Issue
我应该开启更多过滤列表吗?

通常不需要。默认配置已经能拦截大多数广告和跟踪器,其他通用列表大多与之重复。额外的列表会占用 Safari 的规则上限,并弄坏更多网站。烦扰列表(Cookie 横幅、弹窗、社交组件)和非英语网站的区域列表值得开启。

wBlock 会拖慢 Safari 吗?

正常使用不会。Safari 在 wBlock 之外自行应用规则,页面加载从不等待应用。空闲时占用约 40 MB。

如何拦截 Twitch 广告?

在用户脚本标签页中开启 TwitchAdSolutions(vaft)或 AdGuard Extra,然后重新加载 Twitch。vaft 是专用的那个。不要同时运行两者。Twitch 经常更改其广告设置,任一脚本都可能在一段时间内失效,直到它跟上变化。

为什么 Cookie 横幅或 scriptlet 在无痕浏览中不起作用?

Safari 在无痕浏览中会禁用扩展,直到你逐个允许。Cookie 横幅过滤器在 wBlock Scripts 中大多以 scriptlet 形式运行。在 Safari → 设置 → 扩展中,为 wBlock Scripts 和全部五个拦截器开启“在无痕浏览中允许”,然后重新加载无痕窗口。

如果横幅在普通窗口中已经消失,可能只是那里保存了同意 Cookie。在对比之前,先清除该网站的 Cookie。

用户脚本的网络请求是如何工作的?

分类