极端隐私更新:自托管SearXNG指南
在我的书籍《极端隐私》和《OSINT技术》中,我将SearXNG作为获取搜索引擎结果的一个选择进行了讨论。SearXNG本身不是一个搜索引擎。它是一个元搜索引擎,聚合了来自Google、Bing等多个搜索引擎的结果,但不会将用户信息共享给被查询的引擎。它也是开源的,并且可以自托管。最简单的入门方法是访问 https://searx.space/ 并测试一些公共实例。
在你试用过任何SearXNG公共实例后,现在你可能看到了聚合搜索服务的好处。你可能也在考虑与此行为相关的风险。让我们从未自托管的公共实例的好处开始。
- 所有查询都是从第三方服务器提交给搜索引擎的。
- 引擎收集的IP地址是服务器的IP地址,而不是你的。
- 你的查询不容易被引擎关联到某个特定用户。
这可能听起来很棒,但公共实例也存在风险。请考虑以下几点。
- 实例的托管者可能监控你的查询。
- 如果托管者很受欢迎,某些引擎可能会阻止访问。
- 如果托管者出现服务中断,你将无法使用该服务。
总的来说,我认为SearXNG托管者监控查询是非常罕见的。使用标准的SearXNG软件无法做到这一点,托管者必须费很大功夫才能收集用户数据。我只是看不出这样做的动机。然而,一切皆有可能。就我个人而言,我更喜欢自托管我自己的SearXNG实例。请考虑以下好处。
- 所有查询都是直接从你的机器提交给引擎的。
- 引擎网站上的追踪代码会从SearXNG页面中移除。
- 最小化使用量确保了所有选项都能可靠运行。
- 不依赖在线实例的正常运行时间来执行我的查询。
一如既往,也存在风险。我的IP地址会随着我进行的每一次查询提交出去,但我总是使用VPN,所以我并不为此烦恼。对我来说,能够托管自己的代码并知道没有其他人截获这些数据更为重要。你永远无法向搜索引擎本身隐藏查询,但你可以通过不直接访问它们的网站来限制加载到浏览器中的信息。同时从多个搜索引擎接收结果是非常有利的。花些时间确定你是更适合使用公共实例还是自建实例。我在我的Linux机器上采取了以下步骤来在本地配置我自己的主机。如果你决定复制这些步骤,你应该完整地复制并粘贴命令到终端中。请注意,这些步骤偏离了大部分已过时的官方安装指南。
|
|
现在我的机器已经配置好可以运行SearXNG软件了。以下命令用于执行程序。
|
|
该软件现在正在后台运行。你可以最小化这个终端窗口。只要它没有完全关闭,服务就在运行。你可以启动Firefox并导航到 http://127.0.0.1:8888 来加载你自己的实例。与公共实例类似,你对SearXNG所做的任何修改在你关闭Firefox时都会被清除,除非你将 http://127.0.0.1 添加到存储的cookie中(或者直接修改settings.yml文件)。你可以执行以下命令来获取任何更新。
|
|
如果需要,你可以将这两个命令添加到《极端隐私》一书中介绍的Linux更新脚本中。你也可以将启动命令添加到书中的维护脚本中。下图显示了一个查询示例。请注意,我同时收到了来自Google、Bing、Brave和DuckDuckGo的结果。
从任何搜索结果页面,我喜欢点击最右边的“Preferences”选项并进行一些修改。我禁用任何自动完成选项;禁用安全搜索;切换到浅色主题;启用在新标签页中打开结果;并在所有主题中启用首选搜索引擎。你甚至可以修改URL的呈现方式。这允许你移除嵌入的URL追踪代码,强制使用旧版或移动版网站,甚至移除联盟追踪链接。当你控制代码时,你的选择是无限的。如果你想存储这些更改,以便在重启Firefox后它们能保留下来,你必须进行以下操作。
- 导航到Firefox的设置菜单,点击“隐私与安全”选项。
- 点击“删除cookie…”旁边的“管理例外情况”。
- 输入你的SearXNG实例的URL,例如“https://127.0.0.1”。
- 点击“允许”和“保存更改”。
我目前在我的笔记本电脑上运行着一个自托管的SearXNG实例,这使我能够从浏览器中同时查询数十个搜索引擎,而无需信任任何第三方中间人。由于我很少从移动设备上搜索或浏览网站,我只需依赖其上的公共SearXNG实例。
让我们为那些想要在macOS上自托管SearXNG的用户重复一遍这个过程。请确保你已经按照书中的说明配置好了Homebrew。
|
|
现在我的机器已经配置好可以运行SearXNG软件了。以下命令用于执行程序。
|
|
该软件现在正在后台运行。你可以最小化这个终端窗口。只要它没有完全关闭,服务就在运行。你可以启动Firefox并导航到 http://127.0.0.1:8888 来加载你自己的实例。与公共实例类似,你对SearXNG所做的任何修改在你关闭Firefox时都会被清除,除非你将 http://127.0.0.1 添加到存储的cookie中(或者直接修改settings.yml文件)。你可以执行以下命令来获取任何更新。
|
|
如果需要,你可以将这两个命令添加到书中解释的macOS更新脚本中。你也可以将启动命令添加到那里介绍的维护脚本中。如果对在Windows上自托管有足够的兴趣,我会请Jason在他的Windows机器上研究相关步骤。