自建搜索引擎
搭建你的私人搜索引擎:SearXNG 部署详解
在这个数据为王的时代,网络搜索巨头通过记录我们的每一次点击来构建用户画像。如果你渴望一个更私密、无广告、可定制的搜索体验,那么自建一个元搜索引擎是绝佳的选择。SearXNG 就是其中的佼佼者。
本文将详细介绍如何在你的 NAS 或 VPS 上使用 Docker 快速部署 SearXNG 服务。
什么是 SearXNG?
SearXNG 是一个免费、开源的元搜索引擎。它不会自己索引互联网,而是将你的搜索请求匿名转发到多个(超过70个)主流搜索引擎(如 Google, Bing, DuckDuckGo 等),然后将结果汇总呈现给你。它就像一个保护你隐私的搜索中介。
优缺点与适用场景
优点
- 绝对隐私:所有搜索请求都在你自己的服务器上处理,不会记录你的 IP 地址和搜索历史,彻底告别用户追踪和“过滤气泡”。
- 高度可定制:你可以自由选择要使用的后端搜索引擎、主题界面、默认语言、搜索类别等。
- 聚合结果:一次搜索,多重结果源,信息更全面,有助于摆脱单一引擎的结果偏见。
- 无广告:干净纯粹的搜索结果页。
缺点
- 需要维护:作为服务的所有者,你需要负责其稳定运行和后续更新。
- 速度可能稍慢:由于需要向多个引擎请求数据,其响应速度通常会比直接访问 Google 慢一点。
- 可能被上游封锁:如果请求过于频繁,你的服务器 IP 有可能被某些搜索引擎暂时限制访问。
适用场景
- 注重个人数据隐私的个人用户。
- 希望为家人或小型团队提供一个干净、安全的搜索门户。
- 喜欢折腾、享受自托管(Self-Hosted)乐趣的技术爱好者。
- 希望摆脱“信息茧房”,获取更多元化搜索结果的用户。
部署教程 (基于 Docker)
使用 Docker 和 Docker Compose 是部署 SearXNG 最简单、最推荐的方式,无论是在群晖、威联通等 NAS 还是在任何 VPS 上都同样适用。
步骤 1: 准备工作
确保你的设备已经安装了 Docker 和 Docker Compose。
步骤 2: 创建项目目录和文件
首先,通过 SSH 连接到你的服务器或 NAS,然后创建一个新的文件夹来存放 SearXNG 的配置文件。
1 | # 创建一个目录并进入 |
接着,在该目录中创建一个名为 docker-compose.yml 的文件。
1 | touch docker-compose.yml |
步骤 3: 编写 Docker Compose 配置
使用 vim 或你喜欢的文本编辑器,将以下内容粘贴到 docker-compose.yml 文件中:
1 | version: '3.8' |
配置解释:
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 的主页了!
如何自定义?
- 进入挂载的配置目录:
cd searxng - 编辑配置文件:
vim settings.yml
你可以修改 settings.yml 文件来进行深度定制,例如:
- 修改
instance_name来给你的搜索引擎取个名字。 - 在
search->language中设置默认搜索语言(如zh-CN)。 - 在
engines部分,通过!来禁用某些你不需要的搜索引擎。
修改并保存 settings.yml 后,需要重启容器才能让设置生效:
1 | # 回到 docker-compose.yml 所在的目录 |
(可选) 配置反向代理和域名
为了更方便地访问,你可以设置一个反向代理并绑定一个域名,这样就可以通过 https://search.yourdomain.com 这样的方式访问,并自动拥有 HTTPS 加密。
这通常通过 Nginx, Caddy 或 Traefik 等工具实现。你需要将你的域名解析到服务器 IP,然后配置反向代理将来自域名的流量转发到 http://localhost:8080。
如果你配置了反向代理,切记要回到 docker-compose.yml 文件,将 SEARXNG_BASE_URL 的值修改为你的域名(例如 https://search.yourdomain.com/),然后重启容器。
结论
通过短短几个步骤,你就拥有了一个完全由自己掌控的私人搜索引擎。它不仅是保护数字隐私的利器,也是一个了解和体验开源软件魅力的绝佳项目。现在,开始享受纯净、无追踪的搜索之旅吧!
