搭建你的私人搜索引擎:SearXNG 部署详解

在这个数据为王的时代,网络搜索巨头通过记录我们的每一次点击来构建用户画像。如果你渴望一个更私密、无广告、可定制的搜索体验,那么自建一个元搜索引擎是绝佳的选择。SearXNG 就是其中的佼佼者。

本文将详细介绍如何在你的 NAS 或 VPS 上使用 Docker 快速部署 SearXNG 服务。

什么是 SearXNG?

SearXNG 是一个免费、开源的元搜索引擎。它不会自己索引互联网,而是将你的搜索请求匿名转发到多个(超过70个)主流搜索引擎(如 Google, Bing, DuckDuckGo 等),然后将结果汇总呈现给你。它就像一个保护你隐私的搜索中介。

优缺点与适用场景

优点

  1. 绝对隐私:所有搜索请求都在你自己的服务器上处理,不会记录你的 IP 地址和搜索历史,彻底告别用户追踪和“过滤气泡”。
  2. 高度可定制:你可以自由选择要使用的后端搜索引擎、主题界面、默认语言、搜索类别等。
  3. 聚合结果:一次搜索,多重结果源,信息更全面,有助于摆脱单一引擎的结果偏见。
  4. 无广告:干净纯粹的搜索结果页。

缺点

  1. 需要维护:作为服务的所有者,你需要负责其稳定运行和后续更新。
  2. 速度可能稍慢:由于需要向多个引擎请求数据,其响应速度通常会比直接访问 Google 慢一点。
  3. 可能被上游封锁:如果请求过于频繁,你的服务器 IP 有可能被某些搜索引擎暂时限制访问。

适用场景

  • 注重个人数据隐私的个人用户。
  • 希望为家人或小型团队提供一个干净、安全的搜索门户。
  • 喜欢折腾、享受自托管(Self-Hosted)乐趣的技术爱好者。
  • 希望摆脱“信息茧房”,获取更多元化搜索结果的用户。

部署教程 (基于 Docker)

使用 Docker 和 Docker Compose 是部署 SearXNG 最简单、最推荐的方式,无论是在群晖、威联通等 NAS 还是在任何 VPS 上都同样适用。

步骤 1: 准备工作

确保你的设备已经安装了 Docker 和 Docker Compose。

步骤 2: 创建项目目录和文件

首先,通过 SSH 连接到你的服务器或 NAS,然后创建一个新的文件夹来存放 SearXNG 的配置文件。

1
2
3
# 创建一个目录并进入
mkdir searxng-deployment
cd searxng-deployment

接着,在该目录中创建一个名为 docker-compose.yml 的文件。

1
touch docker-compose.yml

步骤 3: 编写 Docker Compose 配置

使用 vim 或你喜欢的文本编辑器,将以下内容粘贴到 docker-compose.yml 文件中:

1
2
3
4
5
6
7
8
9
10
11
12
13
version: '3.8'

services:
searxng:
image: searxng/searxng:latest
container_name: searxng
restart: unless-stopped
ports:
- "8080:8080" # 将服务器的 8080 端口映射到容器的 8080 端口
volumes:
- ./searxng:/etc/searxng # 将配置和数据持久化到当前目录下的 searxng 文件夹
environment:
- SEARXNG_BASE_URL=http://localhost:8080/ # 如果你后续使用域名,请修改这里

配置解释:

  • image: 指定使用官方的 SearXNG 镜像。
  • ports: 将你服务器的 8080 端口映射到 SearXNG 容器。如果你想用其他端口,可以修改前面的 8080
  • volumes: 这是最关键的一步,它将容器内的 /etc/searxng 目录(存放settings.yml等配置文件)挂载到你当前目录下的 searxng 子目录中,确保你的所有设置在容器重启或更新后依然保留。
  • environment: SEARXNG_BASE_URL 是 SearXNG 用来生成正确链接地址的基础 URL。如果只通过 IP 访问,保持默认或设置为 http://<你的服务器IP>:8080/ 即可。

步骤 4: 启动 SearXNG 服务

保存好 docker-compose.yml 文件后,在当前目录下运行以下命令来启动服务:

1
docker-compose up -d

Docker 会自动拉取最新的 SearXNG 镜像并以后台模式(-d)启动容器。第一次启动时,它会自动在 ./searxng 目录下生成默认的 settings.yml 配置文件。

步骤 5: 访问并自定义你的搜索引擎

现在,打开浏览器,访问 http://<你的服务器IP>:8080。如果一切顺利,你应该能看到 SearXNG 的主页了!

如何自定义?

  1. 进入挂载的配置目录:cd searxng
  2. 编辑配置文件:vim settings.yml

你可以修改 settings.yml 文件来进行深度定制,例如:

  • 修改 instance_name 来给你的搜索引擎取个名字。
  • search -> language 中设置默认搜索语言(如 zh-CN)。
  • engines 部分,通过 ! 来禁用某些你不需要的搜索引擎。

修改并保存 settings.yml 后,需要重启容器才能让设置生效:

1
2
3
4
# 回到 docker-compose.yml 所在的目录
cd ..
# 重启容器
docker-compose restart

(可选) 配置反向代理和域名

为了更方便地访问,你可以设置一个反向代理并绑定一个域名,这样就可以通过 https://search.yourdomain.com 这样的方式访问,并自动拥有 HTTPS 加密。

这通常通过 Nginx, Caddy 或 Traefik 等工具实现。你需要将你的域名解析到服务器 IP,然后配置反向代理将来自域名的流量转发到 http://localhost:8080

如果你配置了反向代理,切记要回到 docker-compose.yml 文件,将 SEARXNG_BASE_URL 的值修改为你的域名(例如 https://search.yourdomain.com/),然后重启容器。

结论

通过短短几个步骤,你就拥有了一个完全由自己掌控的私人搜索引擎。它不仅是保护数字隐私的利器,也是一个了解和体验开源软件魅力的绝佳项目。现在,开始享受纯净、无追踪的搜索之旅吧!