如何使用SearXNG:从首次搜索到自助托管精通
如果您一直想要类似 Google 的搜索结果,但又不想被追踪,那么 SearXNG 就是您首选的隐私至上的元搜索引擎。它聚合来自数十个来源的结果,且不会对您进行用户画像,并让您可以完全控制过滤器、引擎甚至托管。在本指南中,我们将介绍三种途径:使用公共实例、自定义您的搜索体验以及部署您自己的私有 SearXNG 以实现最大程度的控制。
为了保持本指南的实用性,我们将采用一种注重实践和解决方案的方法,提供可操作的步骤、您可以复制的设置以及需要避免的常见陷阱。
什么是 SearXNG 以及为什么要使用它?
SearXNG 是一个开源的元搜索引擎。它不会自己抓取网络,而是查询其他搜索引擎,并在统一的界面中呈现结果。不同之处在于:它默认丢弃跟踪,移除广告(在大多数实例上),并让您可以精细地控制要包含哪些引擎,要搜索哪些类别(网页、图像、视频、文件、IT、新闻、科学)以及如何呈现结果。
快速入门:使用公共 SearXNG 实例
您可以从公共实例开始(由志愿者运行的 SearXNG 服务器)。典型流程:
- 打开一个可靠的公共实例(搜索“SearXNG instances list”或社区帖子以查找活跃、信誉良好的服务器)。评估正常运行时间、速率限制和隐私声明。
- 输入您的查询,并通过顶部选项卡选择类别(例如,网页、图像、新闻)。
!g your query 强制使用 Google 引擎(如果该实例上已启用)
!ddg、!bing、!yt、!wp 等,具体取决于实例配置
- 标准操作符(如引号、
site:、filetype:pdf、inurl:、intitle:)在许多引擎上都有效
- 如果您喜欢的 UI 支持,请将您喜欢的实例添加为书签,并将“偏好设置”导出/导入为 JSON blob。
小提示:公共实例可能会对匿名用户进行速率限制,以保护自己免受滥用。如果您看到验证码或速度减慢,请尝试其他实例或自托管。
界面中的高级用户操作
- 动态切换引擎:在“偏好设置”→“引擎”中,按类别切换特定来源。
- 调整结果:隐藏重复项,更改时间范围(例如,过去一年),按相关性或日期排序。
- 隐私切换:禁用您不想查询的任何引擎。某些引擎需要 API 密钥;如果缺少,它们将不会被使用。
- 键盘快捷键:许多 SearXNG 主题都支持
/ 以聚焦搜索框,并使用箭头键导航结果。
如何自托管 SearXNG(Docker 方式)
自托管使您可以控制使用哪些引擎,并确保可靠性、速度。
要求
- 一个 Linux VPS 或家庭服务器(2 个 vCPU/2 GB RAM 对于轻度使用来说是足够的)
- 已安装 Docker 和 Docker Compose
- 一个域名/子域名,以及可选的反向代理(Caddy/Traefik/Nginx)用于 HTTPS
步骤
- 克隆 SearXNG 部署 repo(或使用最小的 Compose 文件):
version: "3.8"
services:
searxng:
image: searxng/searxng:latest
container_name: searxng
environment:
- BASE_URL=
- SEARXNG_SECRET_KEY=change_me_to_a_long_random_value
volumes:
- ./searxng:/etc/searxng
ports:
- "8080:8080"
restart: unless-stopped
- 生成一个强
SEARXNG_SECRET_KEY(例如,openssl rand -hex 32)。
- 配置具有 HTTPS 的反向代理(Caddy 示例):
search.example.com {
reverse_proxy 127.0.0.1:8080
}
Caddy 将通过 Let’s Encrypt 自动配置 TLS。
- 访问 `<your_domain>` 并确认它已加载。
核心配置:settings.yml
首次运行后,您将在挂载的卷下获得配置(例如,./searxng/settings.yml)。主要部分:
示例代码段:
general:
instance_name: "My Private SearXNG"
server:
secret_key: "<same as env or longer>"
image_proxy: true
rate_limit: "60/minute"
search:
safe_search: 1 # 0 off, 1 moderate, 2 strict
autocomplete: "duckduckgo"
ui:
default_theme: "simple"
infinite_scroll: true
engines:
- name: duckduckgo
engine: duckduckgo
categories: .
### Quick Example
- Endpoint: `/search`
- Methods: GET or POST
- Parameters: `q` (query), `categories`, `language`, `format=json`, `time_range`, `safesearch`
```bash
curl "
响应包括自然结果、使用的引擎和计时。非常适合构建研究自动化、本地仪表板和自定义 UI。
调整引擎和类别
- 首选快速、隐私友好的来源(例如,Wikipedia、Stack Exchange、MDN、DuckDuckGo、Brave(如果允许)、YouTube/Reddit/Mastodon 的官方 API)。
- 使用每个类别的默认值;例如,在“IT”下启用 GitHub、Stack Overflow 和 PyPI,在“科学”下启用 arXiv/Crossref,并将
time_range 设置为“新闻”的最新。
故障排除清单
- 看到验证码或空结果?减少或轮换导致阻止的引擎;稍微增加超时;启用缓存。
- API 请求失败?检查反向代理标头和 CORS;确认
format=json。
- UI 速度慢?降低每页的结果数;禁用繁重的引擎;启用 Redis 缓存。
- Docker 重启循环?验证
settings.yml 语法和您的环境变量。
团队和高级用户的最佳实践
- 导出和版本控制您的
settings.yml(不含密钥)以跟踪更改。
- 使用密钥管理器或
.env 文件来管理 API 密钥。
- 如果您在应用程序中嵌入 SearXNG,请减少重试次数并随机化延迟,以避免被禁止。
可选:将 SearXNG 连接到其他工具
- 在您的研究笔记本或聊天工作流程中使用 JSON API。
- 通过您的私有实例路由基于应用程序的网络搜索,以保持隐私。
- 某些 AI/Web UI 可以插入 SearXNG 以通过您自己的端点进行浏览(相应地配置基本 URL 和 API 参数)。
值得注意的是:如果您正在大规模地制作研究工作流程或总结结果,像 Sider.AI 这样的工具可以简化跨多个选项卡或查询的阅读和总结步骤。您可以将浏览指向私有 SearXNG 端点,然后使用 Sider.AI 自动捕获见解、起草简报或编译引文,这可以节省您连续运行多个搜索的时间。 安全和伦理
- 不要将您的实例暴露于公共滥用;进行速率限制,并在需要时限制访问。
- 告知团队成员有关隐私期望;可以配置日志以避免存储 IP 或查询。
您的首次 15 分钟设置:一个迷你清单
- 启动 Docker 并创建一个 Compose 文件
- 编辑
settings.yml 以启用您信任的引擎
主要要点
- SearXNG 使您无需编写爬虫即可获得隐私、控制和灵活性。
- JSON API 使 SearXNG 成为研究和自动化的理想选择。
- 使用 HTTPS、速率限制和最小日志记录来加强您的部署。
参考资料和进一步阅读
- 分步自托管演练和社区教程对于 Docker 和 Windows 设置可能会有所帮助。
- 将 SearXNG 集成到应用程序工作流程和工具中通常遵循与上面使用的相同的 API 模式。
常见问题解答
Q1:What is SearXNG and how does it work?
SearXNG is a privacy-focused metasearch engine that queries multiple sources and aggregates the results, without tracking users. You can use a public instance or self-host for full control over engines, filters, and privacy settings.
Q2:How do I self-host SearXNG with Docker?
Create a Docker Compose service using the official image, set a strong secret key, and expose it behind a reverse proxy with HTTPS. Edit settings.yml to enable engines, configure categories, and adjust privacy options.
Q3:Can I use SearXNG for programmatic searches via API?
Yes. Call /search with parameters like q, categories, and format=json to receive JSON results for automations and apps. This is ideal for research pipelines and internal tools.
Q4:How do I choose a safe public SearXNG instance?
Look for active, reputable instances with clear privacy statements, good uptime, and minimal captchas. You can also switch instances or self-host if you encounter rate limits or reliability issues.
Q5:Which search operators work in SearXNG?
Common operators like quotes, site:, filetype:, inurl:, and intitle: generally work and are passed to underlying engines. You can also use bang shortcuts (e.g., !g, !ddg, !yt) if the instance supports them.