Skip to content

控制面板的“规则列表”版块

fang5566 edited this page Aug 19, 2024 · 22 revisions


所有你订阅的规则列表都在 规则列表 版块,它们都服务于 uBlock Origin 的静态过滤引擎

下图显示的是 uBO 默认勾选的过滤规则列表。你可以添加更多列表,或者移除部分默认选中的列表(其他绝大多数过滤扩展都只勾选了 EasyList)。

uBO 同样也支持 Hosts 文件。它默认带了两份规则列表:“Peter Lowe’s Ad and tracking server list”(默认启用)和 “Dan Pollock’s hosts file”(默认禁用)。

如果你要移除规则列表,强烈建议你至少保留 uBlock filters 这个列表,里面的规则都是专为 uBO 优化的。

添加的规则列表越多,部分网页无法正确显示的可能性就越高,因为误杀的可能性更高了。这时你应将该问题上报给相应规则列表的维护者,或自行创建例外规则加以解决。

规则列表版块

uBO 会移除重复的过滤规则,因此一份规则列表里的规则数量取决于该列表里有多少条重复规则被检测到。多份规则列表被载入到内存的顺序则没有规定。

当你将鼠标悬停在某份规则列表的钟表图标上时,它的工具提示会显示该列表最近一次更新的日期。如果你点击这个钟表图标,uBO 会将该列表标记为过期状态。一旦你勾选了 “自动更新规则列表” 选项,所有过期的列表最终都会在后台自动完成更新。你也可以点击 “立即更新” 强制更新所有过期的列表。

相关阅读:“启动性能和过滤规则列表加载性能 ”


立即更新

“立即更新” 按钮

仅当至少有一份规则列表作过期时该按钮才可使用。你可以强制更新所有过期的规则列表。

当一份规则列表从它的远端路径获取了新版本,该列表旁会显示一个时钟图标。你可以只点击单份规则列表的时钟图标来强制更新它。这么做会重置“上次更新”的时间戳,并移除保存的所有内容,这时 “立即更新” 按钮就会重新显示出来:

通过时钟图标更新

强制更新 “uBlock filters” 这份规则列表可能会同时更新额外的资源。(对于 Chromium 类浏览器和开发版本,小脚本插入所用到的资源库也会被更新)。


清除所有缓存

“清除所有缓存” 按钮

该选项已在 1.54.1b11 版本中被移除.

它会重置所有订阅的规则列表的“上次更新”时间戳。这时基本上所有规则列表都会被视作过期,因此它适合在强制更新所有列表时使用。

按住 Shift1.34 以前的版本 还需要同时按住 Ctrl)的同时点击该按钮会移除所有本地缓存的规则列表内容,这时 uBO 将强制重建所有数据库并恢复到初始状态。

请在下面已有的主题中继续讨论:

这是我们收到的一大堆不必要创建的重复主题:

因此没必要在 issue 跟踪器一遍又一遍创建重复的 issue,新开的主题会被标记为 invalid or duplicate 并关闭。


自动更新规则列表

如果你勾选该项,uBO 会定期自动更新当前选中的规则列表。该选项默认启用(推荐启用)。

规则列表按照以下定义的 过期时间 进行自动更新:

  • 如果规则列表支持差异更新 (uBO 1.54.0+),在 Diff-Expires 命令下发后(“uBlock filters” 列表目前设置为约 5 小时间隔)
  • 规则列表旁出现过期 的标志
  • assets.json 文件中的列表项出现 updateAfter 属性
  • 或默认每 5 天更新一次

你不用担心有时某些规则列表会显示为“⚠️ 过期”或者每次打开控制面板时看似要更新。uBO 会定时启动规则列表更新会话。正常使用浏览器时,uBO(你的浏览器)在启动后的 autoUpdateDelayAfterLaunch (105) 秒内会进行首次更新。发现过期(超过 expiration time 时限)的规则列表会在 autoUpdateAssetFetchPeriod (15) 秒内启动下载。更新会话结束后,uBO 会等待 autoUpdatePeriod (1) 小时后再开始更新规则。更新会话也会由打开控制面板这个操作触发,这就是为什么你注意到它更经常显示要更新。如你所见,会有一段时间,你的规则列表会被标记为“过期”,但这是在正常的更新周期内。非正常使用浏览器时,一旦你的列表超过超时时限两次以上,uBO 会立即触发“紧急”更新,所有列表会在一分钟内全部启动更新。

注意:对于 uBlock Origin 中的 AdGuard 过滤规则列表:AdGuard 使用另一种方式对 diff-expires 进行编码,目前 uBO 没有尚无代码可处理 AdGuard 的差异更新方式,因此它们的规则列表在 uBO 里缺少 Diff-Expires 命令,and 并且只有 Diff-Path。这意味着 AdGuard 的列表的差异更新只能在 AdGuard 里进行,而在 uBO 里它们会回退使用普通的 Expires 命令,也就是目前设置的 5 天。参见相关的 issue:Filter list with "Diff-Path" but without "Diff-Expires:"


解析并应用修饰规则

如果你不想解析和启用来自不同过滤规则列表的修饰规则,请取消勾选该选项。该选项大多数情况下更适合那些想进一步减少 uBO 的内存和 CPU 占用的用户使用。修饰规则在保护隐私方面没任何价值,它的唯一目的就是在某个网页里隐藏无法屏蔽的元素。其中一个例子是隐藏部分 Google 搜素结果页面中的广告。

请注意一旦你禁用了该选项,你在自定义静态规则中所有自定义的修饰规则仍将生效。


忽略通用修饰规则

通用修饰规则是指针对所有网站生效的修饰规则。经过 uBO 高效处理,通用修饰规则在部分网页仍可以保持合理的内存和 CPU 占用,尤其是一些历史悠久的大型网站。 一旦启用该选项,uBO 处理修饰规则给网页带来的内存和 CPU 占用就被消除了,同时也降低了 uBO 本身的内存占用。 一些极为低端的设备也可以开启该选项,但要注意部分规则列表(例如 Easylist Cookies)非常依赖通用修饰规则,这些规则列表有可能无法正常使用。


暂停网络活动直至所有规则列表都被载入

该设置可暂停网络活动直至 uBO 将所有规则列表都将载入内存。

对于 Firefox 类浏览器,该设置默认启用。禁用该设置可潜在提高浏览器启动后的网页载入速度,代价是可能无法按照规则列表内的规则屏蔽网络请求。

对于 Chromium 类浏览器,该设置默认禁用,因为 Chromium 类浏览器不原生支持暂停网络请求。2 启用该设置_可能_ 会对浏览器启动产生负面影响。

参见 uBlock Origin 在 Firefox 里表现最佳/浏览器启动

1 这是 1.41.0 版本新增的设置。
2 对于不支持暂停网络活动的平台,该设置会使用该平台业已存在的机制减少浏览器启动时网络请求无法被正确屏蔽的问题。例如,Chromium 类浏览器无法暂停网络活动,这时该设置只会在 uBO 完全载入以后才强制重新载入网页。如果还是不正常,用户可以手动强制重新载入该网页。


自带的规则列表

这里集合了各式各样的规则列表并根据用途进行分类。如果你要使用某份特定的规则列表,勾选它就可以了。对所选规则列表的任何更改都必须点击 应用更改 按钮才可生效。仅当此次勾选的规则列表与上次勾选的规则列表有所不同时该按钮才会出现。

重要提示

勾选的规则列表越多,网页受损的可能性越大。所选规则列表的质量也会影响到网页受损的可能性。与 EasyList 有关的列表都属于高质量的规则列表,它们都得到了积极的维护。因此,为避免潜在的网页受损以及不同规则列表之间的互相干扰,部分非 uBlock filter lists 默认不勾选,需要用户自担风险手动启用,并且这类因启用额外规则列表引起的网页受损应报告给相应列表的 issue 跟踪器,例如:https://github.com/easylist/easylisthttps://github.com/AdguardTeam/AdguardFilters,因为 https://github.com/uBlockOrigin/uAssets 这个跟踪器主要用于报告与 uBlock 自带规则列表有关的 issue。

uBlock 里的 AdGuard 过滤规则列表

鉴于 uBlock 和 AdGuard 目的相似,且彼此高度兼容,有部分 AdGuard 的过滤规则列表 可在 uBlock 正常使用。

然而,请记住 AdGuard 有对部分规则列表进行稍微修改和适配,以更好地兼容 uBlock,因此,它们可能会分开存储,比如 AdGuard 浏览器扩展所使用的 AdGuard – Ads(基础规则)列表存储在:LINK for AdGuard,而 uBlock 所使用的 AdGuard – Ads 则存储在:LINK for uBlock

此外,AdGuard 里的 AdGuard – Ads(基础规则)列表和 EasyList 合并在一起,但在 uBlock 里,EasyListAdGuard – Ads 是分开存在的。

同时,即使使用相同的规则列表,uBO and AG 扩展之间也无法始终保证 100% 的兼容性,这是因为部分过滤规则可能并非 100% 兼容,就像同一个网站无法保证在不同的浏览器( 比如 Firefox vs Chrome)里运行起来或显示得 100% 一样。参见相关的 issue:Same filters and diff extensions but diff results, why?

顺带一提,AdGuard 也有关于支持 uBlock 过滤规则列表的持续讨论: Add «uBlock Filters»

阻止外部入侵局域网

更多信息请见相关的讨论:

请在已有的主题里继续讨论或报告 issue,没必要在 issue 跟踪器一遍又一遍创建重复的 issue,新开的主题会被标记为 invalid or duplicate 并关闭。


自定义规则列表

手动添加

要添加第三方规则列表,点击 自定义 版块下的 导入,将规则列表的 URL 粘贴到下方的文本框(你可以一次添加多份规则列表,但一行只能一条 URL。无效的 URL 会被忽略且不提示)。这些规则列表会自动定期更新。

自定义规则列表

要移除自定义规则列表,可以点击列表名右侧的垃圾桶图标,最后点击“应用更改”生效。这时移除的规则列表就不见了。

通过经认可的外部网站添加

你可以点击以下经认可的外部网站链接订阅第三方规则列表。

https://easylist.to/*
https://*.fanboy.co.nz/*
https://filterlists.com/*
https://forums.lanik.us/*
https://github.com/*
https://*.github.io/
https://*.letsblock.it/* - 1.41.7b0 版本新增,1.57.1b3 版本已移除。

上述列表我暂不打算再扩充。

通过右键添加

你可以在链接上点击右键,选择“订阅到过滤规则列表...”来订阅第三方规则列表。。无论链接托管在哪个网站,该操作都有效。

订阅链接可包含以下形式:

abp:subscribe?location=encoded-url&title=optional-encoded-title
ubo:subscribe?location=encoded-url&title=optional-encoded-title
https://subscribe.adblockplus.org/?location=encoded-url&title=optional-encoded-title

例如:https://subscribe.adblockplus.org/?location=https%3A%2F%2Fraw.githubusercontent.com%2Fgorhill%2FuBlock%2Fmaster%2Fdocs%2Ftests%2Fstatic-filtering-parser-checklist.txt&title=Static%20Filtering%20Parser%20Checklist

Clone this wiki locally