SearXNG极简部署教程, 自建隐私搜索引擎
在数据隐私日益受到关注的今天,拥有一个私有的、可定制的元搜索引擎显得格外有吸引力。SearXNG 作为 SearX 的现代化社区分支,支持聚合数十种搜索引擎结果、内置翻译功能且默认无跟踪,是自托管搜索服务的上佳选择。本文将分享一个极简的 Docker 部署方案,让你在几分钟内跑起属于自己的隐私搜索实例。

1. 环境准备
首先,在服务器上创建一个专用目录用于存放 SearXNG 的持久化配置。这里我们选择 ~/services/searxng,并设置服务将使用的端口:
mkdir -p ~/services/searxng && cd $_
export SEARXNG_PORT=8080
端口可按需修改,确保未被其他服务占用即可。
2. 容器化部署
SearXNG 官方提供了维护良好的 Docker 镜像,一条命令即可完成拉取与运行。
2.1 拉取官方镜像
docker pull searxng/searxng
2.2 启动容器
推荐使用以下命令启动容器,并绑定本地配置文件目录以实现持久化:
docker run -d --restart=unless-stopped \
-p ${SEARXNG_PORT}:8080 \
-v "${PWD}/config:/etc/searxng" \
-e "BASE_URL=http://your-domain.com" \
-e "INSTANCE_NAME=PrivateSearch" \
searxng/searxng
2.3 参数说明
-v "${PWD}/config:/etc/searxng"
将容器内的/etc/searxng目录挂载到宿主机的当前目录下的config文件夹,所有配置文件(如settings.yml、engines列表)都会持久化保存,容器重建后配置不丢失。--restart=unless-stopped
保证服务异常退出或宿主机重启后自动重新拉起容器,实现开机自启。-e "BASE_URL=..."
设置服务对外暴露的访问地址,后续若通过反向代理或域名访问,需将其替换为实际域名。若暂不确定也可先留空,部署完成后再修改配置文件。-e "INSTANCE_NAME=..."
定义实例名称,会显示在页面标题和页脚中,便于辨识。
启动成功后,通过浏览器访问 http://<服务器IP>:8080 即可看到 SearXNG 的搜索界面。
3. 高频问题排雷
在实际使用中,可能会遇到一些典型问题,这里提前给出解决方案。
3.1 镜像拉取失败
现象
Error response from daemon: pull access denied 或拉取速度极慢。
解决方案
Docker Hub 在国内访问不稳定是常见问题,可参考先前 Overleaf Toolkit 踩坑记录为 Docker 配置国内镜像加速源(如阿里云、中科大镜像站)。修改 /etc/docker/daemon.json 后重启 Docker 服务即可。
3.2 Google 频繁拦截
现象
搜索时频繁出现 Too Many Requests 错误,特别是使用 Google 引擎时。
原因与对策
这属于搜索引擎反爬机制的常见问题。Google 对来自数据中心 IP 的请求限制较严,更换干净的代理是目前较为有效的缓解手段。笔者在美国、香港、日本等地均部署有 VPS 作为代理节点,通过轮换尝试总能找到当前可用的线路。
在 SearXNG 的配置文件 settings.yml 中设置全局代理:
outgoing:
proxies:
all://:
- http://<代理IP>:<端口>
保存配置后重启容器生效。
4. 效果展示与体验
- 多引擎结果聚合对比
一次性搜索 Google、Bing、DuckDuckGo 等多个来源,支持分引擎查看结果。 - 支持 30+ 语言实时翻译
内置翻译引擎,搜索结果页可直接翻译标题与摘要。

- 零 Cookie 跟踪的隐私模式
默认不存储用户搜索记录,不注入跟踪代码,真正做到隐私优先。 - 主题切换
内置浅色/深色主题,可按个人喜好调整。

5. 进阶优化建议
5.1 反向代理配置
若需通过域名并提供 HTTPS 访问,可使用 Nginx 或 Caddy 配置反向代理。网上相关教程丰富,此处不再赘述。笔者的实例即通过位于香港的 VPS 反代至公网,同时开启了 Let's Encrypt 证书实现 HTTPS 加密。
5.2 定期维护命令
为保持搜索引擎列表与最新支持同步,可定期执行以下命令更新引擎信息:
docker exec -it searxng python -m searx.engines --update
该命令会扫描并刷新可用引擎的配置,避免因上游引擎变更导致部分搜索失效。
5.3 监控指标集成
SearXNG 内置 Prometheus 指标端点(默认路径 /metrics),可轻松集成监控。使用以下命令启动 Prometheus 容器并与 SearXNG 网络联通:
docker run -d --network=searxng-net \
-v "${PWD}/metrics:/metrics" \
prom/prometheus --config.file=/metrics/searxng.yml
在 Prometheus 配置文件中添加 SearXNG 的抓取任务,即可获得搜索请求数、引擎响应时间等统计信息,便于掌握服务运行状态。
6. 结语
通过 Docker 部署 SearXNG 仅需数条命令,却能换来一个功能强大、隐私友好的私有搜索门户。无论是个人日常使用还是为小团队提供内网搜索服务,这套方案都足够轻量且易于维护