跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI 生图工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
Shell / BashAI

OpenWebUI 接入 SearXNG:让本地大模型获取实时信息(含国内引擎配置)

通过部署 SearXNG 元搜索引擎,解决本地大模型知识截止问题。配置支持百度、360 等国内源,结合 OpenWebUI 实现实时联网搜索。提供 Docker Compose 优化方案及 settings.yml 详细配置,确保隐私保护与访问稳定性。

栈溢出发布于 2026/3/23更新于 2026/10/1890 浏览

OpenWebUI 接入 SearXNG:让本地大模型获取实时信息

如果你在本地运行大模型,比如用 Ollama 部署了 Qwen、Llama 或者 DeepSeek,可能会发现一个尴尬的问题:模型的知识截止日期是固定的,它不知道今天股市涨跌,不清楚最新的科技新闻,甚至不知道明天是什么节日。这种'信息孤岛'的感觉,让本地大模型的实用性大打折扣。

我最初搭建 OpenWebUI 环境时,也遇到了这个痛点。看着模型一本正经地分析过时的数据,那种无力感让我开始寻找解决方案。市面上有不少联网搜索方案,但要么配置复杂,要么对国内网络环境不友好。经过几周的折腾和测试,我发现 SearXNG 这个开源元搜索引擎,配合 OpenWebUI 的联网搜索功能,是目前最稳定、最灵活的方案之一。

更重要的是,通过合理配置 SearXNG,我们可以让本地大模型直接调用百度、360 等国内搜索引擎,获取符合中文用户习惯的实时信息。这不仅仅是技术上的连接,更是让本地 AI 真正'接地气'的关键一步。下面我就把自己踩过的坑、验证过的配置,以及实际效果对比,毫无保留地分享给你。

为什么需要 SearXNG?OpenWebUI 联网搜索的现状与痛点

在深入配置之前,我们得先搞清楚一个问题:为什么不能直接用 OpenWebUI 内置的搜索引擎?答案藏在网络环境和搜索质量的双重限制里。

OpenWebUI 确实提供了多种联网搜索选项,比如 DuckDuckGo、Google PSE、Bing 等。但在实际使用中,你会发现这些选项各有各的问题:

  • DuckDuckGo:开箱即用,但搜索结果对中文内容支持有限,经常返回一些相关性不高的英文页面
  • Google PSE:需要 API 密钥,免费版限制严格(每天 100 次搜索),而且搜索结果质量与网页版 Google 相差甚远
  • Bing:API 申请流程复杂,新用户基本无法通过,老用户也经常遇到部署失败的问题
  • Mojeek:速度慢得让人怀疑人生,有时候一个查询要等上十几秒

我在 GitHub 的 OpenWebUI 讨论区看到不少开发者都在抱怨这个问题。有人尝试了各种方案,最后发现要么效果差,要么根本用不了。更让人头疼的是,这些搜索引擎大多对国内网络环境不友好,要么访问不稳定,要么直接被屏蔽。

这时候 SearXNG 的优势就体现出来了。它是一个元搜索引擎,本身不维护搜索索引,而是聚合其他搜索引擎的结果。这意味着:

  1. 隐私保护:SearXNG 不会跟踪用户,所有搜索请求都经过匿名化处理
  2. 高度可定制:你可以自由选择启用哪些搜索引擎,包括百度、360、搜狗等国内引擎
  3. API 友好:提供 JSON 格式的输出,非常适合程序化调用
  4. 自托管:完全控制在自己手里,不用担心服务突然不可用

但 SearXNG 也不是完美无缺。最大的问题是官方 Docker 镜像默认不包含国内搜索引擎的配置文件。如果你直接部署,很可能会遇到这样的错误:

[Errno 2] No such file or directory: '/usr/local/searxng/searx/engines/baidu.py'

这就是为什么很多人在配置 SearXNG 时卡住的原因。不过别担心,后面的章节我会详细讲解如何解决这个问题。

SearXNG 部署详解:从零搭建可用的元搜索引擎

部署 SearXNG 有多种方式,包括 Kubernetes、手动安装和 Docker Compose。考虑到易用性和维护性,我强烈推荐使用 Docker Compose 方案。下面是我优化后的配置流程,已经避开了大部分常见的坑。

环境准备与基础部署

首先确保你的服务器已经安装了 Docker 和 Docker Compose。如果还没有,可以参考官方文档进行安装。这里假设你使用的是 Ubuntu 22.04 或更高版本的系统。

# 更新系统包
sudo apt update && sudo apt upgrade -y

# 安装 Docker(如果尚未安装)
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh

# 安装 Docker Compose
sudo apt install docker-compose-plugin -y

# 验证安装
docker --version
docker compose version

接下来创建 SearXNG 的工作目录并获取配置文件:

# 创建专用目录
mkdir -p ~/searxng-docker && cd ~/searxng-docker

# 克隆官方仓库(包含 Docker 配置)
git clone https://github.com/searxng/searxng-docker.git .

注意:如果你在国内,GitHub 克隆可能会很慢。可以考虑使用镜像源,或者先下载 ZIP 包再解压。

Docker Compose 配置优化

官方提供的 docker-compose.yaml 文件包含 Caddy 反向代理,但对于大多数内网部署场景来说,这个组件不是必需的。我建议使用简化版的配置,只保留核心服务。

创建或修改 docker-compose.yaml 文件:

version: "3.7"
services:
  redis:
    container_name: redis
    image: docker.io/valkey/valkey:8-alpine
    command: valkey-server --save 30 1 --loglevel warning
    restart: unless-stopped
    networks:
      - searxng
    volumes:
      - valkey-data:/data
    logging:
      driver: "json-file"
      options:
        max-size: "1m"
        max-file: "1"

  searxng:
    container_name: searxng
    image: searxng/searxng:latest
    restart: unless-stopped
    networks:
      - searxng
    ports:
      - "8080:8080" # 可以根据需要修改端口
    volumes:
      - ./searxng:/etc/searxng:rw
      - ./engines:/usr/local/searxng/searx/engines:rw # 关键:持久化引擎目录
    environment:
      - SEARXNG_BASE_URL=http://${SEARXNG_HOSTNAME:-localhost}:8080/
      - UWSGI_WORKERS=${SEARXNG_UWSGI_WORKERS:-4}
      - UWSGI_THREADS=${SEARXNG_UWSGI_THREADS:-4}
      - SEARXNG_SETTINGS_PATH=/etc/searxng/settings.yml
    logging:
      driver: "json-file"
      options:
        max-size: "1m"
        max-file: "1"

networks:
  searxng:

volumes:
  valkey-data:
    driver: local
    driver_opts:
      type: none
      o: bind
      device: /data/searxng-docker/redis

这里有几个关键点需要注意:

  1. 移除了 Caddy 服务:对于内网部署,直接用 Nginx 或直接访问端口更简单
  2. 持久化引擎目录:这是支持国内搜索引擎的关键,后面会详细说明
  3. 使用 Valkey 替代 Redis:Valkey 是 Redis 的分支,兼容性更好,性能也有所提升
  4. 网络配置:使用自定义网络,方便后续与 OpenWebUI 容器通信
配置文件深度定制

SearXNG 的配置文件位于 ./searxng/settings.yml。首次启动容器时会自动生成默认配置,但我们需要对其进行定制以支持国内搜索引擎。

首先创建必要的目录结构:

# 创建配置目录
mkdir -p searxng engines

# 首次启动以生成默认配置
docker compose up -d
sleep 10
# 等待容器启动
docker compose down
# 停止容器以修改配置

现在我们来修改 searxng/settings.yml 文件。以下是我经过多次测试优化的配置:

# 使用默认设置作为基础
use_default_settings: true

server:
  # base_url 在环境变量 SEARXNG_BASE_URL 中定义
  secret_key: "你的安全密钥" # 使用 openssl rand -hex 32 生成
  limiter: false # 私有实例可以禁用限制器
  image_proxy: true # 启用图片代理,保护用户隐私

ui:
  static_use_hash: true

redis:
  url: redis://redis:6379/0

search:
  formats:
    - html
    - json # 必须启用 JSON 格式,OpenWebUI 需要

# 搜索引擎配置 - 重点部分
engines:
  # 启用国内搜索引擎
  - name: baidu
    categories: [web, news, general]
    engine: baidu
    shortcut: bd
    timeout: 9.0
    disabled: false
    enable_http: false # 强制使用 HTTPS

  - name: 360search
    categories: [web, news, general]
    engine: 360search
    shortcut: 360so
    timeout: 9.0
    disabled: false
    enable_http: false

  - name: sogou
    categories: [web, news, general]
    engine: sogou
    shortcut: sg
    timeout: 9.0
    disabled: false

  # 禁用部分不常用或访问慢的国外引擎
  - name: google
    engine: google
    disabled: true # 国内访问困难,建议禁用

  - name: bing
    engine: bing
    disabled: true # API 限制严格

  - name: duckduckgo
    engine: duckduckgo
    disabled: true

  - name: startpage
    engine: startpage
    disabled: true

  # 保留一些有用的国外引擎(可选)
  - name: wikipedia
    engine: wikipedia
    disabled: false
    timeout: 15.0 # 维基百科可以慢一点

  - name: github
    engine: github
    disabled: false
    shortcut: gh

提示:secret_key 需要自己生成,可以使用命令 openssl rand -hex 32。Windows 用户可通过 WSL 或 PowerShell 执行等效命令。

完成上述配置后,重新启动容器即可生效。此时 SearXNG 已经准备好为 OpenWebUI 提供实时的国内搜索能力了。

目录

  1. OpenWebUI 接入 SearXNG:让本地大模型获取实时信息
  2. 为什么需要 SearXNG?OpenWebUI 联网搜索的现状与痛点
  3. SearXNG 部署详解:从零搭建可用的元搜索引擎
  4. 环境准备与基础部署
  5. 更新系统包
  6. 安装 Docker(如果尚未安装)
  7. 安装 Docker Compose
  8. 验证安装
  9. 创建专用目录
  10. 克隆官方仓库(包含 Docker 配置)
  11. Docker Compose 配置优化
  12. 配置文件深度定制
  13. 创建配置目录
  14. 首次启动以生成默认配置
  15. 等待容器启动
  16. 停止容器以修改配置
  17. 使用默认设置作为基础
  18. baseurl 在环境变量 SEARXNGBASE_URL 中定义
  19. 搜索引擎配置 - 重点部分
  20. 启用国内搜索引擎
  21. 禁用部分不常用或访问慢的国外引擎
  22. 保留一些有用的国外引擎(可选)

更多推荐文章

查看全部
  • 基于 FastGPT 与 MCP 协议构建工具增强型 AI Agent
  • FastAPI:Python 高性能 Web 框架深度解析
  • VSCode Copilot 认证失败排查与修复指南
  • Flutter Web 开发解决跨域(CORS)问题指南
  • 中国大模型落地应用案例集(医疗、教育、金融等 52 个领域)
  • Spec-Kit 与 Copilot 实现 AI 规格驱动开发
  • OpenClaw 开源 AI 智能体框架:技术架构、生态与部署实战
  • Ground Slow, Move Fast: Dual-System VLN
  • Python self 关键字详解:与 Java this 对比及方法类型区分
  • # 2026年3月科技圈大事件盘点:AI智能体爆发、芯片战争升级与行业大洗牌
  • DeerFlow 基础教程:控制台 UI 与 Web UI 双模式使用详解
  • Windows WSL Ubuntu 安装 OpenClaw 配置飞书与百炼模型全流程
  • 绿联云 NAS 配置 WebDAV 实现公网同步
  • 基于 Python 与 AI 的智能害虫识别系统实战
  • Spring Cloud Gateway 微服务统一入口实战
  • 企业裁员前的十大征兆
  • Dify AI 智能体部署与使用指南
  • GitHub 编程初学者项目筛选指南与资源推荐
  • GitHub Copilot Agent Skills 跨项目配置与工程化实践
  • 基于 LSTM 神经网络的学生学习情况分析系统

相关免费在线工具

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • 随机西班牙地址生成器

    随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online