Matrix 首页推荐
Matrix 是少数派的写作社区,我们主张分享真实的产品体验,有实用价值的经验与思考。我们会不定期挑选 Matrix 最优质的文章,展示来自用户的最真实的体验和观点。
文章代表作者个人观点,少数派仅对标题和排版略作修改。
毋庸置疑,如今的 Chrome 及其他基于 Chromium 的 Blink 内核浏览器因其速度快、网页兼容性好的优点,以绝对的优势占据了浏览器市场的主导地位。但与此同时,因为 Chrome 与 Chromium 被一家号称「不作恶」但处处作恶的公司所拥有,所以经常被诟病存在隐私问题。许多想要逃离 Chrome 统治的人都转向了更加自由的 Firefox 浏览器,尽管其母公司 Mozilla 近年来也是骚操作不断,但 Firefox 仍然是除 Chromium 的 Blink 和 Safari 的 WebKit 外唯一选择。
我曾经也很喜欢用 Chrome(或者说是 Chromium),使用 ArchLinux 作为主力系统的我,官方软件源中使用开源 Chromium 代码编译出的 Chromium 浏览器在当时体验基本与谷歌官方的闭源 Chrome 一致。促使我转向使用 Firefox 的契机开始于一年多前,谷歌限制了第三方浏览器对其数据同步 API 的使用,这样一来各家发行版自行编译的 Chromium 浏览器都失去了账户同步功能,这在当时引起了很多不满。从那时开始,我就开始尝试使用 Firefox 替代 Chromium 作为我的主力浏览器,并最终彻底淘汰掉了 Chromium。
无独有偶,谷歌又宣布将会在 2022 年底彻底禁用 Manifest V2 规范(后来又推迟了半年),作为替代者的 Manifest V3 规范,用谷歌的话说是为了「保护用户隐私」,限制了浏览器扩展的很多权限,其中影响最大的是禁用了 WebRequest API,绝大多数去广告相关的扩展都要依赖这个 API 来工作,谷歌虽然开放了新的 API 供扩展使用,但使用了新 API 的扩展拦截广告能力会大打折扣。另外一边,Firefox 则保证自己的 Manifest V3 规范将会保留对 WebRequest API 的兼容。
综合以上两个背景,相信会有很多人对 Firefox 产生兴趣,或者转向使用 Firefox。于是我写下这篇文章,分享一下我在使用 Firefox 的这一年多来学习到的配置方法与使用技巧。
注:没有特别说明的话,本文提及的 Firefox 指的是 Mozilla 公司的原版 Firefox 浏览器,而不是国内谋智公司的所谓「特供版」火狐浏览器。
和 Chrome 的版本发行规律类似,官方的 Firefox 分为 稳定版、测试版(beta)、和 每夜版(nightly),但和 Chrome 不同的是,Firefox 还有长期支持的 ESR 版本(版本较落后,但会长期维护)和面向开发者的 Developer Edition(基于 beta 版,多了一些开发者工具)。
另外,因为是开源项目,Firefox 还存在很多非官方的 fork(分叉版),其中值得一提的有以下几个:
- Tor Browser:大名鼎鼎的 Tor 浏览器,基于 Firefox ESR 版本,默认修改了很多高级设置以增强隐私性和安全性,同时集成了 Tor 网络增强匿名性,不过因为网络环境的原因,在国内几乎不可用;
- Librewolf:基于稳定版 Firefox,移除了原版 Firefox 中不严格符合自由软件定义的代码,禁用了遥测、数据收集和 DRM,修改了很多高级设置以增强隐私性和安全性,并默认集成了 uBlock Origin 扩展;
- GNU IceCat:GNU 的 Firefox,出于回避使用专有品牌名称考虑换了名字,移除了所有的不严格符合自由软件定义部分,并默认集成了一些 GNU 自己开发的扩展以禁用网页中的不严格自由部分,从而保证「完全的自由」。IceCat 不提供 Windows 和 MacOS 版本;
- Waterfox:基于 Firefox ESR,宣称隐私友好,但是被卖给了一家广告公司;而且它的版本发行比较奇怪,分为 Classic(基于超级古老的 Firefox ESR 56,但是仍然在维护更新)和 Current 版本(基于最新的 ESR 版本),版本号都以 G 为前缀(应该代表的是 Generation),例如 G5 对应 Firefox ESR 102,G4 对应 Firefox ESR 91,G3 对应 Firefox ESR 78。
不过值得一提的是,Mozilla 的骚操作之一,直接从官网下载的 Firefox 的安装包都含有唯一识别码,可以被用来追踪用户,如果介意的话,可以去 Mozilla 的 FTP 站点 下载安装包。
对于 Linux 用户,由于 Firefox 几乎存在于所有发行版的官方软件仓库中,甚至是绝大多数发行版的系统预装软件,没有预装的也可以使用包管理器快捷安装,除了软件本体,还需要安装对应的语言包,我使用的 Archlinux,官方稳定版 Firefox 的简体中文语言包包名是 ,其他发行版请自行寻找。
对于外观每个人喜好不同,我只在这里分享一下我个人的配置,仅供参考。
在 Firefox 的地址栏输入 再回车,会弹出一个警示页面,点击接受风险并继续,就可以进入高级设置了。
将文档重命名为 ,之后重启浏览器,再次进入 界面,你会发现警示界面又没有了,搜索 ,发现它的值又变成了 false。
至此,你已经对 Firefox 的高级设置有了一定的了解,Firefox 的高级设置既可以在 界面设置,也可以用 文件设置,接下来就可以根据自身需要对 Firefox 的高级选项做修改了。
这时你可能会问: 里面有那么多配置,怎么知道要改哪一个?要怎么改?事实证明,永远不要重复造轮子,在 GitHub 上,有一个名为Arkenfox 的项目。Arkenfox 是一个积极维护的,旨在增强 Firefox 隐私性与安全性的 列表,禁用了绝大多数的遥测项目,并修改了许多隐私相关的设置项,用户只需下载项目提供的 user.js 文件,放进配置文件夹里面,重启浏览器,就大功告成了。
修改这些高级选项极有可能导致网页故障,所以推荐再安装一个备用浏览器,或者在 界面中新建一个配置文件。
这时你可能又会问,这个 配置不可能适合所有人吧,如果需要修改怎么办?如果日后 Arkenfox 的配置项有变动,又要怎么跟随项目更新呢?
这点 Arkenfox 的维护者也想到了,对于想要自行修改的配置项,不推荐直接修改 文件,Arkenfox 提供了一个 updater 脚本,Linux 和 MacOS 用户可以使用 updater.sh,Windows 用户可以使用 updater.bat,将需要修改的配置项保存进文本,重命名为 ,同 updater 脚本一起放进配置文件夹,运行脚本,会自动下载最新的 ,并将其与 合并,保存为新的 文件。以后如果 有改动,或者要更新 Arkenfox,只需重新运行 updater 脚本即可。
另外,Arkenfox 还提供了 perfsCleaner.sh 和 perfsCleaner.bat脚本,推荐在更新 Arkenfox 之前运行,这个脚本会将所有配置项重置,防止出现玄学问题。
你可以在 这里 和 这里 了解常用的 overrides,以下是我推荐修改的 overrides:
浏览器启动页面修改:0 为空白页面,1 为主页,2 为最后浏览的页面,3 为恢复先前的浏览状态。Arkenfox 修改为了 0,我个人修改为了 1;
浏览器主页修改:Arkenfox 修改为了 空白页,我个人修改为了 。
新标签页修改:Arkenfox 修改为了空白页,我个人修改回了默认主页。
设置网页的偏好语言:Arkenfox 修改为了英语,我改回了默认;
强制浏览器语言为英语:Arkenfox 修改为了 ,我改回了 ;
禁用 IPv6:arkenfox 修改为了 ,若有访问 ipv6 网站的需求,可修改为 ;
使用地址栏进行网络搜索: 为禁用,地址栏只可以用于解析 URL,此后可在「设置」>「搜索」,勾选「添加搜索栏到工具栏」,使用单独的搜索栏进行网络搜索。 为启用,指输入的不是正确 URL 时会跳转到搜索引擎进行搜索,缺点是有可能将输入的 URL 泄漏给搜索引擎,我个人还是觉得启用了方便一些;
记录浏览历史:Arkenfox 修改为了 ,我修改回了 ;
阻止使用不安全加密方式的网站:会导致某些网站无法访问,若发现有些网站出现问题,可尝将此项设为 false;
若上一项设置为了 ,可选择将此项设为 ,若访问使用不安全加密方式的网站时,会在地址栏的锁头图标上显示一个感叹号用于提醒;
启用 Public Key Pinning:Arkenfox 设置为了 强制启用,若使用杀毒软件,可能会受到影响,如果是的话,可以改回默认 ;
禁用跨站标识:比如你从少数派点击 www.baidu.com 的链接点击访问百度网站,则百度可以识别到此次访问来自 ,这两项设置为 可禁止此行为,但会影响到很多网站的功能,比如一些视频网站无法播放视频,若影响到了使用,可改为 ;
禁用 DRM:在前文提及过,有需要可启用;
在关闭浏览器时删除浏览历史:有需要可关闭;
若上一项设置为了 ,即自动删除历史,通过下面几项可选择删除的类别;
阻止指纹识别,网站可以识别到访问者的浏览器版本,系统版本,语言等等,并利用这些数据建立起可识别的指纹以便进行跟踪,打开此项可以伪装部分参数,使网站更加难以建立可识别的指纹,此功能极有可能影响到网页浏览,并会会影响到很多浏览器的功能,比如时区被锁定在 UTC0,网站总是偏向于使用亮色主题等等,若介意的话,可以关闭。
RFP letterboxing:打开此项会使网页外部有一个边框(实际上是与当前窗口大小最接近的「常见」窗口大小),进一步阻止网站通过屏幕分辨率采集设备指纹,介意的话可以关闭。
禁用 WebGL: 为禁用,会极大地影响性能,建议设置为 ;
启用 http3:http3 使用 udp 连接,理论上更快,已知目前部分 google 的网站和使用 Cloudflare CDN 的网站都使用了 http3,但实际上很多运营商会对 udp 流量限速,导致 http3 的实际体验更差,建议禁用。
你也可以订阅 Arkenfox 的 RSS Feed 获取 Arkenfox 的更新日志。
通过修改以上的参数,基本可以避免出现绝大多数问题,若想要更加舒适的浏览体验,还推荐安装一些扩展。
若是比较看重隐私的话,则安装扩展应该遵循最少原则,只安装自己需要的扩展,尽量不要安装多余的扩展,因为安装的扩展越多,越容易建立起可识别的指纹。
uBlock Origin:按照 uBlock Origin 开发者的说法,这个扩展并不是广告拦截扩展,而是一个高效地请求过滤工具,只是恰好起到了广告过滤的作用。不过要是推荐 Firefox 的去广告扩展,还是首推 uBlock Origin,相比于其他的的去广告扩展,它支持更多的过滤规则,且占用的资源极低。
uBlock Origin 已经内置了很多去广告规则,可以根据个人需求自行勾选.除了默认启用的规则,我个人推荐:
- 在 「隐私」 分类中勾选 AdGuard Tracking Protection 和 AdGuard URL Tracking Protection,这两个规则提供了很多隐私增强相关的过滤项;
- EasyList China 和 CJX's Annoyance List:两个针对中文互联网环境的规则;
- Actually Legitimate URL Shortener Tool:这个规则可以去除 URL 中的一些无用的跟踪内容,有点类似于 ClearURLs 这个扩展的功能,所以 ClearURLs 扩展就不需要单独安装了。
另外值得一提的是,由于某些广告商的投诉,在国内网络环境下,Firefox 扩展商店中的一些去广告扩展已经无法安装,扩展商店主页也无法访问,请自行寻找方法,例如部分 Linux 发行版用户可以使用系统的包管理器从软件源安装,比如 Archlinux 可以用 命令为官方版的 Firefox 安装 uBlock Origin 扩展。
CanvasBlocker:如果你在 user-overrides.js 中禁用了阻止指纹识别,则可以安装这个扩展作为替代,安装完好像也无需进行多余的设置,这个扩展提供了一些指纹保护措施,虽说保护效果不如浏览器原生的阻止指纹识别效果好,但对网站的影响更小。
Cookie AutoDelete:顾名思义,自动删除 cookie,安装后在扩展设置页面勾选自动清理,对于不想要清理的网站在表达式列表中添加白名单即可,这个扩展相对于浏览器自带的自动清理功能,优点在于白名单支持通配符,比如想要对 google.com 的所有子域名添加白名单,只需添加一条 *.google.com 即可。
Skip Redirect:链接自动跳转,一些网站在点击站外链接时,会经过一些中间页面,有时还需手动确认,有时甚至还会拦截它们认为 「危险」的链接,这个扩展可以解决这个问题,直接跳转到最终页面,省去了很多麻烦。
- Tampermonkey 或 Violentmonkey:安装脚本;
- Bitwarden:密码管理器;
- Dark Reader:深色模式;
- uBlacklist:屏蔽 google 搜索结果中的一些低质量网站;
- Vimium C:使用 vim 快捷键浏览网页;
- SponsorBlock:自动跳过 Youtube 视频中的赞助内容;
- Return Youtube Dislike:显示 Youtube 视频的点踩数量。
iOS 端的 Firefox 我没用过,不作评价;而且 iOS 端的浏览器因为 Apple 要求必须使用 WebKit 内核,所以基本上全都是 Safari 的套壳,纠结选择哪个浏览器意义不大。这里主要讨论的是 Android 版本。
Android 版本的 Firefox 被很多人诟病,也确实存在很多问题,比如功能缺失,官方版的 Firefox Android 不能访问 界面修改高级选项,扩展安装也受限制。但是相比于 Firefox,我个人觉得 Android 版本的 Chrome 更加难用,而且完全不支持扩展。
虽然 Android 版 Firefox 支持安装扩展,但是只能安装官方提供的 少量扩展,如果想要安装列表以外的扩展怎么办呢?其实也有办法,Android 版 Firefox 的 Nightly 版本提供了安装额外扩展的方式,不过比较麻烦。
首先,在电脑上访问 Firefox 扩展商店,登录自己的帐号,鼠标放到右上角自己的昵称处,点击 「查看我的收藏集」,若没有收藏集就新建一个,点击进入收藏集,复制网页的 URL,后面会用到。
再回到主页,搜索自己喜欢的扩展,滚动到最下方,选择添加到自己刚才创建的收藏集,
来到 Android 端,打开 Firefox nightly,打开设置,找到最下方 「关于 Firefox」,点击进入,多次点击 Firefox logo,直到提示 「已启用调试菜单」。
回到设置页面,就会发现在原来的 「附加组件」下方多出了一个 「自定义附加组件收藏集」,点开,就会提示输入用户 ID 和收藏集名称和之前复制的收藏集 URL。
打个比方,如果是 (只是打比方,并不是真实链接),那么用户 ID 就是 ,收藏集名称就是 。
首先是 Iceraven,基于 Firefox Android 的开源代码 fenix 构建,你可以从 Github release 下载安装包,默认集成了一个很大的扩展列表,绝大部分常用的扩展都能找到,省去了自己添加收藏集的麻烦了,同时也可以访问 修改高级选项。但是 Iceraven 的维护者对于版本更新很不积极,经常落后官方版本很多。
Fennec F-Droid 是 F-Droid 商店基于 Fenix 代码构建的浏览器,更新进度基本与官方一致,可能稍有落后,构建时移除了非自由部分和遥测,功能与官方版基本一样,不同的是支持进入 about:config 界面修改高级选项,同时也支持自定义附加组件收藏集。值得一提的是,不知什么原因,Fennec 安装扩展后,扩展的设置页面默认都是英文的,有些扩展可以在自己的设置页面修改语言,比如 Tampermonkey,有些就改不了。
虽然 Iceraven 和 Fennec 可以通过 修改高级设置,Arkenfox 修改了上百个选项,照着 在小屏幕上一个个修改很是难受,有没有什么更好的方法呢?
那么这就要提到 Mull 了,这个浏览器基于上文提到的 Fennec,但是已经默认集成了 Arkenfox 的高级设置,少数的需要覆盖的选项可以自行修改,省去了很多麻烦。
不过值得一提的是,和 Arkenfox 一样,Mull 默认启用了阻止指纹识别的选项,在是在移动端上开启这一选项后会使界面刷新率锁在 60Hz,这是个已知 bug,如果使用高刷手机且比较介意的话可以关闭。另外我还发现 Violentmonkey 扩展在 Mull 上不能正常工作,Tampermonkey 就可以正常工作,这两个扩展在 Fennec 上都可以正常使用的,不知道是什么原因。
以上基本就是我对于 Firefox 的使用心得,其实还有一些没有讲到,比如通过自定义 CSS 文件来修改 Firefox 外观,我没有深入研究过,就不细讲了,这里只分享一个包含很多现成的 CSS 的 Github Repo。感兴趣可以自己研究,文章到这里已经接近一万字了,如果文章发出去,真的有人看到这里的话,我很是感激。
> 下载 少数派 2.0 客户端、关注 少数派公众号,解锁全新阅读体验