SearXNG
SearXNG 是一个开源的元搜索引擎,聚合来自 Google、Bing、Brave、DuckDuckGo、百度、B站 等 279 个搜索服务1) 的搜索结果,去重后统一展示。项目在 GitHub 上有 33.5K 星标2),Docker 镜像下载超 5000 万次3),是社区最活跃的元搜索引擎之一。
Docker Compose 配置
name: searxng services: core: container_name: searxng image: docker.io/searxng/searxng:latest restart: unless-stopped ports: - "127.0.0.1:8080:8080" environment: - UWSGI_WORKERS=1 volumes: - ./config:/etc/searxng:rw - ./data:/var/cache/searxng:rw mcp: container_name: searxng-mcp image: knucklessg1/searxng-mcp:latest restart: unless-stopped depends_on: - core ports: - "127.0.0.1:4445:8000" environment: - SEARXNG_URL=http://core:8080 command: searxng-mcp -t streamable-http -H 0.0.0.0 -p 8000
配置要点:
- 所有端口绑定 127.0.0.1,仅限本地访问
- UWSGI_WORKERS=1 降低内存占用
- MCP 环境变量用 SEARXNG_URL 而非 SEARXNG_BASE_URL
- 无需 Redis/Valkey
初始化
1. 创建配置目录
mkdir -p searxng/config searxng/data
2. 启用 JSON API SearXNG 默认只返回 HTML,需要在 config/settings.yml 中启用 JSON 格式4):
use_default_settings: true search: formats: - html - json server: secret_key: "<生成随机密钥>" image_proxy: true
3. 启动并测试
docker compose up -d curl 'http://localhost:8080/search?q=树莓派&format=json'
MCP 客户端接入
MCP 桥接容器 knucklessg1/searxng-mcp5) 将 SearXNG 的 JSON API 转换为 MCP 协议,供 LLM 客户端调用。
SSH 隧道转发(端口绑定 127.0.0.1):
ssh -L 4445:127.0.0.1:4445 -f -N root@<VPS_IP>
客户端 MCP 配置:
{
"searxng": {
"url": "http://localhost:4445/",
"timeout": 120
}
}
硬件占用
| 容器 | 内存 | CPU |
|---|---|---|
| searxng (core) | ~127MB | <0.1% 空闲,<1% 搜索时 |
| searxng-mcp | ~40MB | <0.1% |
| 总计 | ~167MB |
一次搜索在 7 个引擎同时查询,耗时约 1-2 秒。
内置引擎
SearXNG 自带 279 个内置引擎6),包括:
- 通用搜索:Google、Bing、Brave、DuckDuckGo、百度、搜狗、360
- 学术搜索:Google Scholar、arXiv、PubMed、Semantic Scholar、Crossref
- 视频:YouTube、Bilibili、Niconico、Vimeo、Dailymotion
- 图片:Google Images、Bing Images、Pixabay、Unsplash、Flickr
- 社交:Reddit、Hacker News、Mastodon、Lemmy
- 开发:GitHub、GitLab、PyPI、npm、Docker Hub、Stack Exchange
- 百科:Wikipedia、Wikidata、百度百科
安全
- 所有端口绑定 127.0.0.1,不对外暴露
- settings.yml 中需设置 secret_key
- 可通过 Tor 匿名化搜索请求7)
- Valkey(Redis)非必需,可不部署
1)
https://docs.searxng.org/|SearXNG 官方文档
2)
https://github.com/searxng/searxng|SearXNG GitHub
3)
https://hub.docker.com/r/searxng/searxng|Docker Hub