跳转至内容

Firefox/Privacy

来自 ArchWiki

本文概述了如何配置 Firefox 以增强安全性和隐私。

配置

以下是旨在防止浏览器指纹识别和追踪的隐私增强调整。

追踪保护

Firefox 增加了一项“增强型追踪保护”选项。可以通过图形界面“设置 > 隐私与安全”启用不同级别的保护,或通过设置 about:config 来启用。

  • privacy.trackingprotection.enabled true

除了隐私方面的优势,启用追踪保护[死链 2025-11-16—HTTP 404] 还可以将加载时间减少 44%。

请注意,这不能替代 uBlock Origin 等广告拦截扩展,并且它可能与 Firefox 分支版本(如Firefox 分支)兼容,也可能不兼容。如果您已运行具有正确列表的广告拦截器,追踪保护可能就冗余了。

反指纹识别

当您的隐私设置设置为“标准”(默认)或“严格”时,Firefox 的追踪保护会阻止已知“指纹识别器”的列表。指纹识别保护是一项不同的、仍在 Firefox 中大力开发的实验性功能。

Mozilla 已启动一项Firefox 反指纹识别项目,这是将 Tor Browser 的功能引入主线项目的一部分。许多这些反指纹识别功能通过 about:config 中的此设置启用:

  • privacy.resistFingerprinting true
警告 这是一个实验性功能,可能会导致某些网站出现问题,时区将变为 UTC0,并且网站将倾向于使用浅色主题。请注意,文本转语音引擎将被禁用(bug #1636707),并且某些网站图标会损坏(bug #1452391)。

更多信息请参阅:Firefox 的指纹识别保护

更改浏览器时区

您的系统时区可用于浏览器指纹识别。要将 Firefox 的时区设置为 UTC,请这样启动它:

$ TZ=UTC firefox

或者,设置一个脚本来启动上述命令(例如,在 /usr/local/bin/firefox)。

更改用户代理和平台

您可以通过 about:config 中的 general.useragent.override 偏好设置来覆盖 Firefox 的用户代理。

键的值是您的浏览器用户代理。选择一个已知的常用值。

提示
  • Tor 浏览器使用的用户代理是 Mozilla/5.0 (Windows NT 10.0; rv:102.0) Gecko/20100101 Firefox/102.0,因此这是一个非常常见的值。
  • #反指纹识别 选项还启用了 Tor 浏览器用户代理并自动更改您的浏览器平台。
警告 不更改对应平台而更改用户代理会使您的浏览器变得独一无二。

要更改 Firefox 的平台,请在 about:config 中添加以下 string 键:

general.platform.override

选择一个与您的用户代理相匹配的、已知的常用平台。

提示 值为 Win32 的平台用于 Tor 浏览器,与上述用户代理相对应。

WebRTC 泄露局域网 IP 地址

为防止网站通过 WebRTC 的 P2P(和 JavaScript)获取您的本地 IP 地址,请打开 about:config 并设置:

  • media.peerconnection.ice.default_address_onlytrue
  • media.peerconnection.enabledfalse。(仅当您想完全禁用 WebRTC 时)

您可以使用此 WebRTC 测试页面WebRTC IP Leak VPN / Tor IP Test 来确认您的内部/外部 IP 地址不再泄露。

禁用 HTTP Referer

HTTP Referer 是一个可选的 HTTP 标头字段,用于标识链接到当前请求页面的前一个网页的地址。

根据您的偏好,将 network.http.sendRefererHeader 设置为 01

注意 某些网站使用 Referer 标头来控制源条件。完全禁用此标头可能会导致网站出现问题。在这种情况下,调整 network.http.referer.XOriginPolicy 可能会提供更好的解决方案。

禁用连接测试

默认情况下,Firefox 会定期尝试连接到 Amazon 和/或 Akamai 服务器以测试您的连接(参见 定期 间隔)。例如,酒店、餐厅或其他企业可能要求您输入密码才能访问互联网。如果存在此类强制门户并阻止流量,此功能会阻止所有其他连接尝试。这可能会泄露您的使用习惯。

要在 about:config 中禁用强制门户测试,请设置:

  • network.captive-portal-service.enabledfalse
注意报告指出Mozilla VPN 在禁用此选项时无法连接。

禁用遥测

toolkit.telemetry.enabled 设置为 false,和/或在“首选项 > 隐私与安全 > Firefox 数据收集与使用”下禁用它。

启用“请勿追踪”标头

privacy.donottrackheader.enabled 设置为 true,或在“首选项 > 隐私与安全 > 追踪保护”中切换它。

注意 远程服务器可以选择不遵守“请勿追踪”请求。
警告 “请勿追踪”标头 (DNT) 实际上可能被用于浏览器指纹识别,因为大多数用户会保持该选项禁用状态。

禁用/强制执行“受信任的递归解析器”

Firefox 60 引入了一项名为受信任的递归解析器 (TRR) 的功能。它绕过了系统中配置的 DNS 服务器,而是通过 HTTPS 将所有 DNS 请求发送到 Cloudflare 服务器。虽然这在安全性上显著提高(因为“经典” DNS 请求以明文形式通过网络发送,沿途的任何人都可以窥探它们),但这也使得您的所有 DNS 请求都可以被 Cloudflare(提供 TRR 服务器)读取。

  • 如果您比 Cloudflare 的 DNS 服务器更信任自己配置的 DNS 服务器,则可以通过在 about:config 中将 network.trr.mode(整数,如果不存在则创建)设置为 5 来禁用 TRR。(值为 0 表示默认禁用,并且可能会被将来的更新覆盖 - 值为 5 表示手动禁用,不会被覆盖。)
  • 如果您信任 Cloudflare DNS 服务器并希望获得额外的隐私(得益于加密的 DNS 请求),则可以通过将 network.trr.mode 设置为 3(完全禁用经典 DNS 请求)或 2(默认使用 TRR,如果失败则回退到经典 DNS 请求)来强制执行 TRR。请记住,如果您正在使用任何内联网网站或尝试通过主机名访问本地网络中的计算机,启用 TRR 可能会在这些情况下破坏名称解析。
  • 如果您想加密 DNS 请求但不使用 Cloudflare 服务器,则可以通过将 network.trr.uri 设置为您的解析器 URL 来指向新的 DNS over HTTPS 服务器。当前可用的解析器列表可以在 curl wiki 中找到,以及 TRR 的其他配置选项。

加密客户端问候(Encrypted Client Hello)

要启用加密客户端问候 (ECH)(以前称为加密服务器名称指示 (eSNI)),以便在网络监听者无法看到您建立 TLS 连接的服务器名称,请设置:

  • network.dns.echconfig.enabledtrue
  • network.dns.http3_echconfig.enabledtrue

您可能还需要将 network.trr.mode 设置为 23

禁用地理定位

about:config 中将 geo.enabled 设置为 false

注意 这可能会破坏需要访问您位置的网站。您可以选择仅为每个站点允许位置访问,而不是完全禁用此功能。

禁用“安全浏览”服务

安全浏览提供网络钓鱼保护和恶意软件检查,但它可能会将用户信息(例如 URL、文件哈希等)发送给 Google 等第三方。

要在 about:config 中禁用安全浏览服务,请设置:

  • browser.safebrowsing.malware.enabledfalse
  • browser.safebrowsing.phishing.enabledfalse

此外,通过将 browser.safebrowsing.downloads.enabled 设置为 false 来禁用下载检查。

禁用 WebGL

WebGL 是一个潜在的安全风险。[1] 如果您想禁用它,请在 about:config 中将 webgl.disabled 设置为 true

扩展

请参见 浏览器扩展#隐私

禁用 WebAssembly(和 JavaScript)

WebAssembly,也称为 Wasm,是一种相对较新的语言。与 JavaScript 不同,Wasm 在浏览器中本地执行预编译的代码,用于高性能模拟和应用程序。它因隐藏恶意软件的途径而受到批评,并且与 JavaScript 一样,可用于追踪用户。Tor Browser 会阻止 JavaScript 和 Wasm。

请参阅浏览器扩展#隐私中的NoScript,以像 Tor Browser 那样阻止 JavaScript,并且在需要时可以快速启用。要在 about:config 中禁用 Wasm,请设置:

  • javascript.options.wasmfalse
  • javascript.options.wasm_baselinejitfalse
  • javascript.options.wasm_ionjitfalse

移除系统级隐藏扩展

一些扩展在 /usr/lib/firefox/browser/features 中是隐藏的且默认安装的。许多可以通过 rm extension-name.xpi 安全地删除。它们可能默认未启用,并且可能有菜单选项来启用或禁用。请注意,任何删除的文件将在 firefox 包更新时恢复。要保持这些扩展被移除,请在 /etc/pacman.conf 中将相关目录添加到 NoExtract。一些扩展包括:

  • doh-rollout@mozilla.org.xpi - DoH 推出(如果您选择使用#禁用/强制执行“受信任的递归解析器”,请勿删除)。
  • screenshots@mozilla.org.xpi - Firefox 截图。
  • webcompat-reporter@mozilla.org.xpi - 用于报告 Firefox 中出现问题的网站,以便 Mozilla 可以改进 Firefox 或通过 webcompat@mozilla.org.xpi 扩展动态修补网站。
  • 所有组合的用户和系统扩展都列在 about:support 中。有关系统扩展的完整列表,包括描述其功能的 README 文件,请参阅 [2]

安装到如 /opt 等路径的 Firefox 安装,其系统扩展安装在 /firefox/firefox/browser/features

通过 Searx 进行网络搜索

本文或本章节已过时。

原因: SearX 自 2023 年 9 月起不再维护。活跃的分支是SearxNG。(请在 Talk:Firefox/Privacy 中讨论)

可以通过减少您提供给单一实体的**信息量**来提高隐私。例如,通过一个不同且随机选择的代理发送每一次新的网络搜索,使得单个搜索引擎几乎不可能建立您的个人资料。我们可以使用公共的 Searx 实例(或站点)来实现这一点。Searx 是一个 AGPL-3.0开源的站点构建器,它生成站点,称为“实例”。每个公共“实例”都可以充当您和众多不同搜索引擎之间的中间人。

这个公共实例列表其他站点中,随意添加您希望的书签(如果 JavaScript 被禁用,您需要暂时启用它才能加载列表)。为了快速访问这些书签,请考虑在书签的名称字段中添加 SX1SX2...SX(n),其中 (n) 是您收藏的 searx 实例的数量。

完成书签添加后,只需在 URL 栏中输入 sx,后跟一个数字,然后按 Enter 即可加载一个实例。

注意 请不时更新上述书签,或在实例变得不可靠时更新,以减少您的在线指纹。
提示
  • 如果您拥有 Web 服务器和可用带宽,请考虑运行一个公共 Searx 实例以帮助其他人提高隐私(更多信息)。
  • 为了增加隐私,请与 Tor Browser 一起使用 Searx 实例,它使用洋葱路由提供一定程度的匿名性。
  • 您可以通过在本地运行私有的 Searx 实例来进一步提高隐私。请安装 searxng-gitAUR 包。

有关其他选项,请参阅 https://www.privacyguides.org/en/search-engines/

通过 Invidious 观看视频

Invidious 实例作为 YouTube 的替代前端。它们是基于开源代码构建的网站。通常很难限制用户在访问内容时发送给 YouTube (Google) 的信息量。

使用 Invidious 的好处包括:

  • 无需运行脚本即可访问视频。YouTube 会强制用户运行脚本。
  • 视频可以保存以供将来观看,或供他人观看,包括离线观看。这减少了发送给 Google 的有关何时观看或重复观看内容的反馈。
  • 可选的仅音频模式,可减少带宽使用。与 Tor 等浏览器结合使用时,在更轻量级的网站上使用更少的数据包可能会提高您的匿名性。
  • Invidious 是一个免费开源的界面,可以更轻松地设置独立的、私有的视频托管服务。因此,存在一些使用 Invidious 来托管其自身内容或已从 YouTube 中移除内容的网站。因此,它可能有助于限制 YouTube 未来构建您个人资料的能力(参见注释)。

从以下列表中尽可能多地收藏正常运行的 Invidious 实例(这里这里这里[死链 2024-01-13—HTTP 404])。请注意,其中一些实例可能托管在 Cloudflare 上。

您可以通过简单地将 youtube.com 部分替换为您要使用的实例的域名,将任何 YouTube 视频 URL 更改为 Invidious URL。

注意 Invidious 不索引 Facebook 或 Cloudflare 服务器上的视频。此外,内容通常仍从 Google 服务器发送给用户。为了增强隐私,请参阅 Tor Browser

企业策略

可以通过使用企业策略来建立网络和系统范围的策略,这些策略同时补充和覆盖用户配置的偏好设置。例如,没有已记录的用户偏好来禁用对 Beta 版本发布的更新检查。但是,存在一个可以通过 policies.json 有效部署的策略作为解决方法。可以通过 policies.json 管理单个和/或多个策略,如下所示:

  • 禁用应用程序更新
  • 强制启用硬件加速
{
 "policies": {
  "DisableAppUpdate": true,
  "HardwareAcceleration": true
 }
}

about:support 中验证 Enterprise Policies 是否设置为 Active,并在 about:policies 中查看特定于版本的策略。

清理过的配置文件

prefs.js

构成 Firefox 配置文件的文件可以被剥离某些元数据。例如,典型的 prefs.js 包含标识客户端和/或用户的字符串。

user_pref("app.normandy.user_id", "6f469186-12b8-50fb-bdf2-209ebc482c263");
user_pref("security.sandbox.content.tempDirSuffix", "2a02902b-f25c-a9df-17bb-501350287f27");
user_pref("toolkit.telemetry.cachedClientID", "22e251b4-0791-44f5-91ec-a44d77255f4a");

可以通过多种方法重置这些字符串,但前提是必须首先创建一个没有这些标识符的主 prefs.js 文件,并将其同步到工作配置文件中。最简单的解决方案是关闭 Firefox,然后将其 prefs.js 复制到单独的位置。

$ cp ~/.mozilla/firefox/example.default-release/prefs.js ~/prefs.sanitized.js

通过将所有标识符字符串和日期代码设置为 0 或从复制的 prefs.js 中完全删除条目来剥离它们。根据需要将已清理的 prefs.js 同步到工作配置文件。

$ rsync -v ~/.prefs.sanitized.js ~/.mozilla/firefox/example.default-release/prefs.js
注意 在下次启动 Firefox 时,必需的标识符和日期代码条目和/或字符串将自动重新填充并重置为新值。

还可以获得次要的隐私效果,可以通过在 Fingerprint JS API Demo 上检查已清理的 prefs.js 和工作中的 prefs.js 之间的字符串结果来观察。

extensions.json

假设已安装扩展,extensions.json 文件会列出所有配置文件扩展及其设置。值得注意的是用户主目录的位置,默认情况下 .mozillaextensions 文件夹存在于此。可以通过将 applyBackgroundUpdates 设置为适当的 0 值来禁用不必要的后台更新。installDateupdateDate 的备注较少。 Bubblewrap 可以有效地隐藏用户名和主目录的位置,此时可以清理并修改 extensions.json 文件以指向沙盒化的 HOME 位置。

{"schemaVersion":31,"addons":[{"id":"uBlock0@raymondhill.net","syncGUID":"{0}","version":"0","type":"extension","optionsURL":"dashboard.html","optionsType":3,"optionsBrowserStyle":true,"visible":true,"active":true,"userDisabled":false,"appDisabled":false,"embedderDisabled":false,"installDate":0,"updateDate":0,"applyBackgroundUpdates":0,"path":"/home/r/.mozilla/firefox/example.default-release/extensions/uBlock0@raymondhill.net.xpi","skinnable":false,"softDisabled":false,"foreignInstall":true,"strictCompatibility":true}}

addonStartup.json.lz4search.json.mozlz4 中移除类似的元数据也可以完成。mozlz4 是一个命令行工具,它提供 Mozilla(非标准)LZ4 文件的压缩/解压缩支持。

移除子系统

崩溃报告相关的遥测可以通过删除以下文件来禁用:

/usr/lib/firefox/crashreporter
/usr/lib/firefox/minidump-analyzer
/usr/lib/firefox/pingsender

删除的文件在升级包后会重新出现,请将它们添加到 NoExtract 以便持久化。

对于那些选择从官方 Mozilla 源手动安装 Firefox 的用户,可以通过删除 firefox 目录中的 updater 来禁用更新程序系统。

编辑 omni.ja 的内容

注意 修改 omni.ja 的内容可能会导致某些功能受限或丢失。此外,它会在每个 Firefox 版本更新时被更新/覆盖。用户需要自行判断隐私方面的收益是否值得牺牲预期的可用性。

文件 /usr/lib/firefox/omni.ja 包含 Firefox 使用的大部分默认配置设置。例如,从 Firefox 73 开始,无法通过扩展或将首选项 URL 设置为 ""); 来阻止对 firefox.settings.services.mozilla.com 和/或 content-signature-2.cdn.mozilla.net 的网络调用。除了使用 DNS 汇聚点或防火墙阻止已解析的 IP 地址外,一种解决方案是使用 grep(1) 扫描 omni.ja 的提取内容,然后删除所有对 firefox.settings.services.mozilla.com 和/或 cdn.mozilla.net 的引用。还可以删除额外的模块,例如未使用的词典和连字符文件,以出于安全和性能原因减小 omni.ja 的大小。

要重新打包/压缩,请使用命令 zip -0DXqr omni.ja *,并确保您的工作目录是来自 omni.ja 文件的根目录。

加固的 user.js 模板

几个活跃的项目以 user.js 配置文件的形式维护全面的加固 Firefox 配置,可以将其放入 Firefox 配置文件目录:

  • arkenfox/user.jsarkenfox-user.jsAUR
  • pyllyukko/user.js
  • ffprofile.comgithub)- 在线 user.js 生成器。您可以选择要启用和禁用的功能,最后您将获得一个包含配置文件模板的 zip 文件的下载链接。例如,您可以禁用发送数据到 Mozilla 和 Google 的某些功能,或者禁用一些令人讨厌的 Firefox 功能,如 Mozilla Hello 或 Pocket 集成。

参见