Windows系统通过容器化本地部署SearXNG为Openclaw提供搜索功能

Zou, Ning 发布于 7 小时前 技术实践 2116 字 9 次阅读


SearXNG 配置指南 - Windows 容器化部署完整教程

一、SearXNG 简介

SearXNG 是一个免费开源的元搜索引擎,它聚合了来自多个搜索引擎的结果,同时保护用户隐私。与直接使用 Google、Bing 等搜索引擎不同,SearXNG 不会追踪用户搜索历史,不收集个人信息,是注重隐私用户的理想选择。

主要特性:

  • 支持 70+ 搜索引擎(Google、Bing、DuckDuckGo、Wikipedia 等)
  • 无用户追踪、无搜索历史存储
  • 支持自定义搜索引擎组合
  • 提供多种结果类型(通用、图片、视频、新闻、地图等)
  • 支持多语言界面
  • 可通过 Docker 轻松部署

二、Windows 安装 Docker Desktop

2.1 系统要求

推荐配置

  • Windows 10 64 位(版本 21H2 或更高)或 Windows 11
  • 启用 Hyper-V 和容器功能
  • 至少 4GB RAM(推荐 8GB)
  • 至少 10GB 可用磁盘空间

当前配置

  • Windows 10
  • 启用 Hyper-V
  • 32G RAM
  • 256G可用空间

2.2 安装步骤

步骤 1:启用 WSL 2 功能

以管理员身份打开 PowerShell,执行以下命令:

# 启用 WSL 功能
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

# 启用虚拟机平台功能
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

# 重启计算机
shutdown /r /t 0
{F8A68A1D D4FD 4115 8F57 2637A7184663}

步骤 2:安装 WSL 2 内核更新包

访问 Microsoft 官网下载并安装 WSL 2 Linux 内核更新包:
https://aka.ms/wsl2kernel

步骤 3:设置 WSL 2 为默认版本

wsl --set-default-version 2

步骤 4:下载并安装 Docker Desktop

  1. 访问 Docker 官网:https://www.docker.com/products/docker-desktop/
  2. 下载 Docker Desktop for Windows
  3. 运行安装程序,按向导完成安装
  4. 启动 Docker Desktop,等待初始化完成

步骤 5:验证安装

# 检查 Docker 版本
docker --version

# 检查 Docker Compose 版本
docker compose version

# 运行测试容器
docker run hello-world

三、Docker 基础命令详解

3.1 镜像管理命令

# 搜索镜像
docker search searxng

# 拉取镜像
docker pull searxng/searxng:latest

# 查看本地镜像
docker images

# 删除镜像
docker rmi <image_id>

# 查看镜像详细信息
docker inspect <image_name>

3.2 容器管理命令

# 创建并启动容器
docker run -d --name <container_name> <image_name>

# 查看运行中的容器
docker ps

# 查看所有容器(包括已停止的)
docker ps -a

# 停止容器
docker stop <container_name>

# 启动已停止的容器
docker start <container_name>

# 重启容器
docker restart <container_name>

# 删除容器
docker rm <container_name>

# 查看容器日志
docker logs <container_name>

# 实时查看日志
docker logs -f <container_name>

# 进入容器内部
docker exec -it <container_name> /bin/bash

# 查看容器资源使用
docker stats

3.3 网络与端口命令

# 查看网络
docker network ls

# 创建网络
docker network create <network_name>

# 查看端口映射
docker port <container_name>
{6816B1AA 8C97 4A21 8A03 048F6B3DCD93}

四、SearXNG 容器化部署

4.1 创建项目目录结构

# 创建项目目录
mkdir C:\searxng
cd C:\searxng

# 创建配置目录
mkdir searxng
mkdir redis

4.2 创建 Docker Compose 配置文件

在项目根目录创建 docker-compose.yml

version: '3.8'

services:
  searxng:
    image: searxng/searxng:latest
    container_name: searxng
    ports:
      - "8080:8080"
    volumes:
      - ./searxng:/etc/searxng:rw
    environment:
      - SEARXNG_BASE_URL=http://localhost:8080/
      - SEARXNG_SECRET_KEY=your_secret_key_here_change_it
    depends_on:
      - redis
    restart: unless-stopped
    networks:
      - searxng_network

  redis:
    image: redis:alpine
    container_name: searxng_redis
    command: redis-server --save "" --appendonly no
    restart: unless-stopped
    networks:
      - searxng_network

networks:
  searxng_network:
    driver: bridge

4.3 创建 SearXNG 配置文件

创建 searxng/settings.yml 配置文件:

# SearXNG 主配置文件

general:
  # 实例名称
  instance_name: "My SearXNG"
  # 启用调试模式(生产环境设为 false)
  debug: false
  # 启用 HTTPS(如果前面有反向代理)
  https_proxy: false
  # 输出格式
  output_format: html

server:
  # 监听端口
  port: 8080
  # 绑定地址
  bind_address: "0.0.0.0"
  # 秘密密钥(用于会话加密,必须修改)
  secret_key: "your_secret_key_here_change_it"
  # 基础 URL
  base_url: "http://localhost:8080/"
  # 是否启用公共实例
  public_instance: false

search:
  # 安全搜索级别(0=关闭,1=中等,2=严格)
  safe_search: 0
  # 默认语言
  default_lang: "zh-CN"
  # 启用自动检测语言
  autocomplete: "google"
  # 默认搜索引擎类别
  default_categories:
    - general
    - images
    - news
    - videos

engines:
  # Google 搜索
  - name: google
    engine: google
    shortcut: g
    disabled: false

  # Bing 搜索
  - name: bing
    engine: bing
    shortcut: b
    disabled: false

  # DuckDuckGo
  - name: duckduckgo
    engine: duckduckgo
    shortcut: ddg
    disabled: false

  # Wikipedia
  - name: wikipedia
    engine: wikipedia
    shortcut: wp
    disabled: false

  # YouTube
  - name: youtube
    engine: youtube_noapi
    shortcut: yt
    disabled: false

ui:
  # 默认主题
  default_theme: simple
  # 可用主题
  themes:
    - simple
    - oscar
  # 默认语言
  default_locale: zh-CN
  # 结果每页数量
  results_on_page: 20

# Redis 缓存配置
redis:
  url: redis://redis:6379/0

4.4 启动 SearXNG

# 进入项目目录
cd C:\searxng

# 启动所有服务
docker compose up -d

# 查看启动日志
docker compose logs -f

# 查看服务状态
docker compose ps

4.5 访问 SearXNG

打开浏览器访问:http://localhost:8080


五、高级配置选项

5.1 配置反向代理(Nginx)

如果需要从外网访问,建议配置 Nginx 反向代理:

server {
    listen 80;
    server_name searxng.yourdomain.com;

    location / {
        proxy_pass http://localhost:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

5.2 启用 HTTPS(Let's Encrypt)

使用 Certbot 获取免费 SSL 证书:

# 安装 Certbot(需要 Chocolatey)
choco install certbot

# 获取证书
certbot certonly --standalone -d searxng.yourdomain.com

5.3 自定义搜索引擎

settings.yml 中添加自定义引擎:

engines:
  - name: github
    engine: json_engine
    shortcut: gh
    base_url: https://api.github.com/search/repositories
    url_query: q={query}
    results: items
    title: full_name
    url: html_url
    content: description

六、常用运维命令

6.1 日常维护

# 查看容器状态
docker compose ps

# 查看实时日志
docker compose logs -f searxng

# 重启服务
docker compose restart

# 停止服务
docker compose down

# 完全清理(包括卷)
docker compose down -v

6.2 更新 SearXNG

# 拉取最新镜像
docker pull searxng/searxng:latest

# 停止当前服务
docker compose down

# 重新启动(使用新镜像)
docker compose up -d

# 清理旧镜像
docker image prune -f

6.3 备份配置

# 备份配置文件
Copy-Item -Path C:\searxng\searxng\settings.yml -Destination C:\searxng\backup\settings_$(Get-Date -Format "yyyyMMdd").yml

# 备份整个配置目录
Compress-Archive -Path C:\searxng\searxng\* -DestinationPath C:\searxng\backup\searxng_config_$(Get-Date -Format "yyyyMMdd").zip

6.4 故障排查

# 查看容器详细信息
docker inspect searxng

# 进入容器调试
docker exec -it searxng /bin/bash

# 检查网络连接
docker exec searxng ping -c 4 google.com

# 查看容器资源使用
docker stats searxng

# 检查端口占用
netstat -ano | findstr :8080

七、安全建议

7.1 基本安全配置

  1. 修改默认密钥:务必更改 SEARXNG_SECRET_KEY
  2. 限制访问:使用防火墙限制访问 IP
  3. 启用 HTTPS:生产环境必须使用 HTTPS
  4. 定期更新:保持 Docker 镜像最新

7.2 防火墙配置

# Windows 防火墙允许 Docker
New-NetFirewallRule -DisplayName "Docker Desktop" -Direction Inbound -Action Allow -Program "C:\Program Files\Docker\Docker\Docker Desktop.exe"

# 限制 8080 端口访问(仅本地)
New-NetFirewallRule -DisplayName "SearXNG Local" -Direction Inbound -Action Allow -LocalPort 8080 -Protocol TCP -RemoteAddress 127.0.0.1

7.3 日志管理

# 限制日志大小(在 docker-compose.yml 中添加)
logging:
  driver: "json-file"
  options:
    max-size: "10m"
    max-file: "3"

八、常见问题排查

问题 1:容器无法启动

# 检查 Docker 服务
Get-Service Docker

# 查看错误日志
docker compose logs searxng

# 检查端口冲突
netstat -ano | findstr :8080

问题 2:无法访问 Web 界面

# 检查容器是否运行
docker ps | findstr searxng

# 检查端口映射
docker port searxng

# 测试本地连接
curl http://localhost:8080

问题 3:搜索结果为空

# 检查引擎配置
docker exec searxng cat /etc/searxng/settings.yml

# 检查网络连接
docker exec searxng curl -I https://google.com

# 重置配置
docker compose down -v
docker compose up -d

九、性能优化建议

  1. 增加 Redis 缓存:已包含在默认配置中
  2. 调整并发连接:根据服务器性能调整
  3. 启用结果缓存:减少重复查询
  4. 限制搜索引擎数量:只启用需要的引擎
  5. 使用 SSD 存储:提高配置读取速度

十、总结

本指南详细介绍了在 Windows 系统上通过 Docker 容器化部署 SearXNG 的完整流程。通过遵循本指南,您可以:

  • 在 Windows 上成功安装和配置 Docker Desktop
  • 理解常用的 Docker 和 Docker Compose 命令
  • 部署一个功能完整的 SearXNG 实例
  • 进行日常维护和故障排查
  • 实施基本的安全措施

SearXNG 是一个强大的隐私保护搜索引擎,适合个人使用或小型团队部署。如有更多高级需求,建议参考官方文档:https://docs.searxng.org/


文档版本: 1.0
最后更新: 2026-06-25
适用系统: Windows 10/11 + Docker Desktop

十一、不懂的问AI

欢迎来到XiaoZou123,这里是一个电脑极客、数码爱好者网站。我平时喜欢关注数码新闻,研究计算机技术。如果你看我头像觉得我是二次元,那我其实还算不上!
最后更新于 2026-06-25