隐私极客进阶指南:手把手搭建自托管SearXNG元搜索引擎

本文详细指导如何在Linux和macOS系统上自托管SearXNG元搜索引擎,包括环境配置、安装步骤和个性化设置,旨在帮助用户通过完全控制搜索流程来增强网络隐私,避免向第三方泄露查询数据。

极端隐私更新:自托管SearXNG指南

在我的书籍《极端隐私》和《OSINT技术》中,我将SearXNG作为获取搜索引擎结果的一个选择进行了讨论。SearXNG本身不是一个搜索引擎。它是一个元搜索引擎,聚合了来自Google、Bing等多个搜索引擎的结果,但不会将用户信息共享给被查询的引擎。它也是开源的,并且可以自托管。最简单的入门方法是访问 https://searx.space/ 并测试一些公共实例。

在你试用过任何SearXNG公共实例后,现在你可能看到了聚合搜索服务的好处。你可能也在考虑与此行为相关的风险。让我们从未自托管的公共实例的好处开始。

  • 所有查询都是从第三方服务器提交给搜索引擎的。
  • 引擎收集的IP地址是服务器的IP地址,而不是你的。
  • 你的查询不容易被引擎关联到某个特定用户。

这可能听起来很棒,但公共实例也存在风险。请考虑以下几点。

  • 实例的托管者可能监控你的查询。
  • 如果托管者很受欢迎,某些引擎可能会阻止访问。
  • 如果托管者出现服务中断,你将无法使用该服务。

总的来说,我认为SearXNG托管者监控查询是非常罕见的。使用标准的SearXNG软件无法做到这一点,托管者必须费很大功夫才能收集用户数据。我只是看不出这样做的动机。然而,一切皆有可能。就我个人而言,我更喜欢自托管我自己的SearXNG实例。请考虑以下好处。

  • 所有查询都是直接从你的机器提交给引擎的。
  • 引擎网站上的追踪代码会从SearXNG页面中移除。
  • 最小化使用量确保了所有选项都能可靠运行。
  • 不依赖在线实例的正常运行时间来执行我的查询。

一如既往,也存在风险。我的IP地址会随着我进行的每一次查询提交出去,但我总是使用VPN,所以我并不为此烦恼。对我来说,能够托管自己的代码并知道没有其他人截获这些数据更为重要。你永远无法向搜索引擎本身隐藏查询,但你可以通过不直接访问它们的网站来限制加载到浏览器中的信息。同时从多个搜索引擎接收结果是非常有利的。花些时间确定你是更适合使用公共实例还是自建实例。我在我的Linux机器上采取了以下步骤来在本地配置我自己的主机。如果你决定复制这些步骤,你应该完整地复制并粘贴命令到终端中。请注意,这些步骤偏离了大部分已过时的官方安装指南。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
sudo -H apt-get install -y python3-pip python3-dev python3-babel \
python3-venv uwsgi uwsgi-plugin-python3 \
git build-essential libxslt-dev zlib1g-dev \
libffi-dev libssl-dev
mkdir ~/Documents/searxng && cd ~/Documents/searxng
git clone "https://github.com/searxng/searxng"
python3 -m venv searxngEnvironment
source searxngEnvironment/bin/activate
pip install -U pip
pip install -U setuptools
pip install -U wheel
pip install -U pyyaml
cd searxng && pip install --use-pep517 --no-build-isolation -e .
sudo -H mkdir -p "/etc/searxng"
sed -i "s|ultrasecretkey|$(openssl rand -hex 32)|g" searx/settings.yml
sudo -H cp searx/settings.yml /etc/searxng/settings.yml
export SEARXNG_SETTINGS_PATH="/etc/searxng/settings.yml"
deactivate

现在我的机器已经配置好可以运行SearXNG软件了。以下命令用于执行程序。

1
2
3
4
cd ~/Documents/searxng
source searxngEnvironment/bin/activate
cd searxng
python searx/webapp.py

该软件现在正在后台运行。你可以最小化这个终端窗口。只要它没有完全关闭,服务就在运行。你可以启动Firefox并导航到 http://127.0.0.1:8888 来加载你自己的实例。与公共实例类似,你对SearXNG所做的任何修改在你关闭Firefox时都会被清除,除非你将 http://127.0.0.1 添加到存储的cookie中(或者直接修改settings.yml文件)。你可以执行以下命令来获取任何更新。

1
2
cd ~/Documents/venv/searxng/searxng
git pull "https://github.com/searxng/searxng"

如果需要,你可以将这两个命令添加到《极端隐私》一书中介绍的Linux更新脚本中。你也可以将启动命令添加到书中的维护脚本中。下图显示了一个查询示例。请注意,我同时收到了来自Google、Bing、Brave和DuckDuckGo的结果。

从任何搜索结果页面,我喜欢点击最右边的“Preferences”选项并进行一些修改。我禁用任何自动完成选项;禁用安全搜索;切换到浅色主题;启用在新标签页中打开结果;并在所有主题中启用首选搜索引擎。你甚至可以修改URL的呈现方式。这允许你移除嵌入的URL追踪代码,强制使用旧版或移动版网站,甚至移除联盟追踪链接。当你控制代码时,你的选择是无限的。如果你想存储这些更改,以便在重启Firefox后它们能保留下来,你必须进行以下操作。

  • 导航到Firefox的设置菜单,点击“隐私与安全”选项。
  • 点击“删除cookie…”旁边的“管理例外情况”。
  • 输入你的SearXNG实例的URL,例如“https://127.0.0.1”。
  • 点击“允许”和“保存更改”。

我目前在我的笔记本电脑上运行着一个自托管的SearXNG实例,这使我能够从浏览器中同时查询数十个搜索引擎,而无需信任任何第三方中间人。由于我很少从移动设备上搜索或浏览网站,我只需依赖其上的公共SearXNG实例。

让我们为那些想要在macOS上自托管SearXNG的用户重复一遍这个过程。请确保你已经按照书中的说明配置好了Homebrew。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
brew install python3.13 git
mkdir ~/Documents/venv
cd ~/Documents/venv
python3.13 -m venv searxng
source searxng/bin/activate
cd searxng
git clone "https://github.com/searxng/searxng"
pip3.13 install -U pip
pip3.13 install -U setuptools
pip3.13 install -U wheel
pip3.13 install -U pyyaml
pip3.13 install -U lxml
cd searxng
pip3.13 install --use-pep517 --no-build-isolation -e .
cd searx
sudo mkdir "/etc/searxng"
sudo cp settings.yml /etc/searxng/settings.yml
sed -i '' "s/ultrasecretkey/00ef3039748274b4f2b93d16fb9695de00a4bb35e4c02b7704a167c7aeb274bd/g" /etc/searxng/settings.yml
deactivate

现在我的机器已经配置好可以运行SearXNG软件了。以下命令用于执行程序。

1
2
3
4
cd ~/Documents/venv
source searxng/bin/activate
cd searxng/searxng
python3.13 searx/webapp.py

该软件现在正在后台运行。你可以最小化这个终端窗口。只要它没有完全关闭,服务就在运行。你可以启动Firefox并导航到 http://127.0.0.1:8888 来加载你自己的实例。与公共实例类似,你对SearXNG所做的任何修改在你关闭Firefox时都会被清除,除非你将 http://127.0.0.1 添加到存储的cookie中(或者直接修改settings.yml文件)。你可以执行以下命令来获取任何更新。

1
2
cd ~/Documents/venv/searxng/searxng
git pull "https://github.com/searxng/searxng"

如果需要,你可以将这两个命令添加到书中解释的macOS更新脚本中。你也可以将启动命令添加到那里介绍的维护脚本中。如果对在Windows上自托管有足够的兴趣,我会请Jason在他的Windows机器上研究相关步骤。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计