不花一分钱!Docker部署 SearXNG + OpenClaw 接入指南

不花一分钱!Docker部署 SearXNG + OpenClaw 接入指南如果你在用 AI ChatGPT 本地大模型 Agent 一定会遇到一个问题 AI 不会主动上网搜索 信息可能过时 解决方案通常有三种 1 付费 API SerpAPI Bing 2 自建搜索接口 3 使用开源搜索代理 今天介绍一个 完全免费 隐私友好 可本地部署的方案 SearXNG OpenClaw 实现效果 AI 可以实时搜索互联网 完全本地部署

大家好,我是讯享网,很高兴认识大家。这里提供最前沿的Ai技术和互联网信息。



如果你在用 AI(ChatGPT / 本地大模型 / Agent),一定会遇到一个问题:

AI 不会主动上网搜索,信息可能过时。

解决方案通常有三种:

今天介绍一个 完全免费、隐私友好、可本地部署的方案

SearXNG + OpenClaw

实现效果:

  • AI 可以实时搜索互联网
  • 完全本地部署
  • 不依赖任何付费 API
  • 支持 Google / Bing / DuckDuckGo 等搜索源
  • Docker 一键部署

本教程基于:

  • MacOS
  • Docker
  • SearXNG
  • OpenClaw

整体结构非常简单:

AI / Agent

 │ │ 

OpenClaw

 │ │ 

SearXNG (本地搜索引擎)

 │ │ 

Google / Bing / DuckDuckGo

流程:

优势:

  • 免费
  • 可控
  • 隐私友好
  • 支持自定义搜索源

第一步:安装 SearXNG(2分钟)

# SearXNG Docker 部署过程记录

1. 目录结构准备

bash

mkdir searxng-standalone && cd searxng-standalone

2. 创建 docker-compose.yml

yaml

services:

searxng:

image: searxng/searxng:latest

container_name: searxng

restart: unless-stopped

ports:

- "7777:8080"

volumes:

- ./settings.${SEARXNG_ENV:-default}.yml:/etc/searxng/settings.yml:ro

environment:

- SEARXNG_BASE_URL=http://localhost:7777/

- GRANIAN_LOG_ACCESS_ENABLED=true

- GRANIAN_LOG_ACCESS_FMT=%(addr)s "%(method)s %(path)s?%(query_string)s" %(status)s %(dt_ms)sms

说明:

- 端口映射:宿主机 7777 → 容器内 8080

- SEARXNG_ENV 控制使用哪套配置文件,默认 default

-
GRANIAN_LOG_ACCESS_ENABLED



开启访问日志,可以看到搜索请求内容

- GRANIAN_LOG_ACCESS_FMT 自定义日志格式,包含完整 query string

3. 创建配置文件

国内环境 settings.cn.yml

yaml

use_default_settings:

engines:

keep_only:

- bing

- bing images

- bing news

- bing videos

- sogou

- sogou images

- sogou videos

- sogou wechat

- wikipedia

server:

port: 8080

bind_address: "0.0.0.0"

secret_key: "your-secret-key"

search:

formats:

- html

- json

engines:

- name: bing

disabled: false

weight: 2

- name: bing images

disabled: false

- name: bing news

disabled: false

- name: bing videos

disabled: false

- name: sogou

disabled: false

weight: 1

- name: sogou images

disabled: false

- name: sogou videos

disabled: false

- name: sogou wechat

disabled: false

国外环境 settings.global.yml

yaml

use_default_settings:

engines:

keep_only:

- google

- google images

- google news

- google videos

- google scholar

- bing

- bing images

- bing news

- bing videos

- wikipedia

server:

port: 8080

bind_address: "0.0.0.0"

secret_key: "your-secret-key"

search:

formats:

- html

- json

engines:

- name: google

disabled: false

weight: 2

- name: google images

disabled: false

- name: google news

disabled: false

- name: google videos

disabled: false

- name: google scholar

disabled: false

- name: bing

disabled: false

weight: 1

- name: bing images

disabled: false

- name: bing news

disabled: false

- name: bing videos

disabled: false

配置文件说明

-
use_default_settings.engines.keep_only



:白名单模式,只保留列出的引擎,其他全部忽略

- engines 块:对 keep_only 中的引擎做额外配置(disabled、weight 等)

- bing / sogou 在 SearXNG 默认配置里是 disabled: true,必须在 engines 块里显式设置 disabled: false 才会生效

4. 启动服务

bash

# 国内环境

SEARXNG_ENV=cn docker compose up -d --force-recreate

# 国外环境

SEARXNG_ENV=global docker compose up -d --force-recreate

> 注意:切换环境必须加 --force-recreate,否则 Docker 不会重建容器,挂载的配置文件不会更新。

5. 验证服务

bash

# 基础测试

curl "http://localhost:7777/search?q=test&format=json"

# 查看实际调用了哪些引擎及结果数

curl -s "http://localhost:7777/search?q=test&format=json" | python3 -c "

import json, sys

data = json.load(sys.stdin)

engines = {}

for r in data.get('results', []):

for e in r.get('engines', []):

engines[e] = engines.get(e, 0) + 1

print('实际调用的引擎:')

for e, c in sorted(engines.items(), key=lambda x: -x[1]):

print(f' {e}: {c}条')

print('unresponsive:', data.get('unresponsive_engines', []))

print('timed_out:', data.get('timed_out_engines', []))

"

第二步:配置 OpenClaw(1分钟)

找到配置文件 `~/.openclaw/openclaw.json`,添加:

json

{

“tools”: {

“web”: {

“fetch”: {

“enabled”: true

}

}

},

“browser”: {

“ssrfPolicy”: {

“dangerouslyAllowPrivateNetwork”: true

}

}

}

这两个配置的作用:

- `tools.web.fetch.enabled` - 启用 HTTP 请求工具

- `
dangerouslyAllowPrivateNetwork` - 允许访问本地网络(SearXNG 在本地)



第三步:搞定网络互通(1分钟)

这是唯一的坑点。OpenClaw 和 SearXNG 都在 Docker 里,怎么互访?

Docker Desktop(Mac/Windows)

直接用内置域名:

http://host.docker.internal:7777

第四步:验证(30秒)

bash

curl “
http://host.docker.internal:7777/search?q=测试&format=json”



返回 JSON 结果就 OK!

使用示例

普通搜索

bash

curl “http://host.docker.internal:7777/search?q=OpenClaw&format=json”

图片搜索

bash

curl “http://host.docker.internal:7777/search?q=test&category_images=on&format=json”

返回结果中results[].img_src` 是图片直链。

小讯
上一篇 2026-04-25 22:14
下一篇 2026-04-25 22:12

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/273044.html