SearXNG 自建搜索引擎:Google 被封了怎么办?换 Brave + Startpage 替代方案

前言

SearXNG 是开源元搜索引擎,自托管后可以聚合 Google、Bing、DuckDuckGo 等多个搜索引擎的结果,不跟踪、不记录、不投广告。

但用着用着你会遇到一个经典问题:Google 引擎突然返回 403,提示封禁 24 小时。

“不是我的问题吧?换个 IP 就行?“—— 换了大概率也没用。因为 Google 不只看 IP。

为什么 Google 会封 SearXNG

四个原因叠加:

1. 请求频率太高

SearXNG 一次搜索会并发请求多个引擎。多用户共享一个出口 IP 时,Google 看到同一 IP 在短时间内发起大量搜索请求 —— 触发速率限制。

2. 请求指纹异常

即使换了 IP,这些特征不变:

  • 没有浏览器 Cookie
  • User-Agent 被识别为 Bot
  • TLS 指纹异常(常见于 VPS)
  • 请求头过于干净

Google 的反爬系统不只认 IP,更认「行为指纹」。一个没有浏览器环境、不会加载 JS、Cookie 为空的请求 —— 怎么看都不像真人。

3. 数据中心 IP 是” 劣质公民”

搬瓦工、DigitalOcean、Oracle Cloud、AWS—— 这些 VPS 的 IP 段在 Google 的信任等级天生就低。因为历史上爬虫和滥用大多出自这些网段。

4. Google 引擎走 HTML Scraping

SearXNG 的 google 引擎是解析 Google 的 HTML 页面,不是走 API。HTML 结构一变动,引擎就失效;反爬机制一升级,直接封。

解决方案(按推荐优先级)

方案一:禁用 Google,用替代引擎组合

最稳的方案 —— 不用 Google 了。编辑 settings.yml

engines:
- name: google
disabled: true
- name: brave
engine: brave
- name: bing
engine: bing
- name: duckduckgo
engine: duckduckgo
- name: startpage
engine: startpage

这四家组合的搜索质量实测不比 Google 差:

  • Brave Search:独立索引,不封 IP,响应快
  • Bing:微软搜索,英文结果质量高
  • DuckDuckGo:隐私优先,中文还行
  • Startpage:本质是 Google 的代理服务,拿 Google 结果但不会被封

方案二:优化 Google 配置(治标不治本)

如果非要保留 Google,做这些优化能降低封禁频率但不保证稳定:

# 限速
search:
max_request_timeout: 10.0
server:
limiter: true
outgoing:
max_connections: 2 # 降低并发
useragent_suffix: "Mozilla/5.0"
proxies:
http:
- http://user:pass@residential-proxy:port # 住宅 IP
engines:
2 collapsed lines
- name: google
request_delay: 2.0 # 每次请求间隔 2 秒

配了住宅代理能好很多,但住宅代理要花钱 —— 不如直接用方案一。

方案三:Google Custom Search API

Google 官方的搜索 API,不会被封。但要付费($5 / 1000 次查询),个人用不划算。

总结

SearXNG + Google = 迟早被封。这不是你的问题,是 Google 反爬机制的正常反应。

最省心的方案:禁用 Google,用 Brave + Bing + DuckDuckGo + Startpage 组合。搜索质量不降级,还不用担心封禁。

对于自建搜索引擎的个人用户来说,稳定比「非得用 Google」重要得多。