这是什么
SearXNG 是一款免费、可自行托管的元搜索引擎,它会聚合来自 70 多个来源(Google、Bing、DuckDuckGo、Wikipedia 等)的搜索结果,既不存储你的查询记录,也不会向这些上游引擎透露任何可识别身份的数据。它能带来媲美 Google 的搜索结果质量,同时充当隐私缓冲层,让搜索服务商只能看到你服务器的 IP,而永远看不到你本人的 IP。
为何选择离岸托管
自建搜索引擎的隐私程度,取决于它运行所在的服务器本身——使用离岸、无需 KYC 的 VPS,意味着该实例永远不会与任何身份绑定,任何本地司法辖区都无法强制要求你交出搜索日志。以加密货币付款,并托管在隐私友好地区(NL/CH/RO/IS/MD/LU),能让从注册到查询的整条链路都不涉及身份信息,并远离监控严密的司法辖区。
部署过程
一套可用的参考配置
将其复制到全新的 ChainVPS 实例中。替换占位符后即可启动。
# 1. Create the config dir and a settings.yml (SearXNG generates one on first boot).
# 2. Generate a real secret: openssl rand -hex 32
# 3. docker compose up -d
#
# docker-compose.yml
services:
searxng:
image: docker.io/searxng/searxng:latest
container_name: searxng
restart: unless-stopped
ports:
- "127.0.0.1:8080:8080" # bind to loopback; put a TLS proxy in front
volumes:
- ./searxng:/etc/searxng:rw
environment:
- SEARXNG_BASE_URL=https://search.example.com/
- SEARXNG_SECRET=REPLACE_WITH_openssl_rand_hex_32
- UWSGI_WORKERS=4
- UWSGI_THREADS=4
depends_on:
- valkey
cap_drop:
- ALL
cap_add:
- CHOWN
- SETGID
- SETUID
logging:
driver: json-file
options:
max-size: "1m"
max-file: "1"
valkey:
image: docker.io/valkey/valkey:8-alpine
container_name: searxng-valkey
restart: unless-stopped
command: valkey-server --save 30 1 --loglevel warning
volumes:
- valkey-data:/data
cap_drop:
- ALL
cap_add:
- SETGID
- SETUID
- DAC_OVERRIDE
volumes:
valkey-data:
# After first boot, edit ./searxng/settings.yml:
# server.secret_key: <same 32-byte hex>
# server.limiter: true
# valkey.url: redis://searxng-valkey:6379/0
# then: docker compose restart searxng
防火墙
需开放的端口
| 端口 | 协议 | 用途 |
|---|---|---|
| 8080 | TCP | SearXNG uwsgi HTTP —— 请始终绑定在 127.0.0.1,切勿直接对外暴露 |
| 443 | TCP | 通过反向代理(Caddy/nginx)搭配 Let's Encrypt 证书提供的 HTTPS |
| 6379 | TCP | 用于限流器的 Valkey/Redis —— 仅限 Docker 内部网络,切勿对外发布 |
按需调配规格
您需要哪种套餐
VPS Nano/Small(1 vCPU,1-2 GB RAM)
对于私人单用户实例来说绰绰有余;SearXNG 空闲时几乎不占用资源,只有在处理查询时才会短暂出现峰值。
VPS Pro(2-4 vCPU,4-8 GB RAM)
将 UWSGI_WORKERS 提高到与核心数匹配;主要的 CPU 开销来自上游引擎的并发查询,而非存储。
VPS Max 或独立服务器(8+ vCPU,16+ GB RAM)
公开实例会吸引大量爬虫机器人;这种场景下,无限流量带宽和 DDoS 防护比单纯的 CPU 性能更重要。
最佳地区: SearXNG 是一款隐私工具,因此应选择隐私友好的机房地点:瑞士(CH)和冰岛(IS)拥有严格的数据保护法律,且不强制要求留存日志;荷兰(NL)和卢森堡(LU)为欧洲用户提供出色的欧盟对等互联和低延迟;罗马尼亚(RO)和摩尔多瓦(MD)则不在“十四眼联盟”监控范围内,是司法管辖抗性最强的选择。若追求搜索速度,可选择离你最近的地点;若更看重司法中立性,则选择监管最中立的地点。
全面加固安全
安全加固清单
- 切勿将 8080 端口发布到 0.0.0.0——请让它保持绑定在 127.0.0.1,并在反向代理(Caddy 或 nginx)上终止 TLS,证书通过离岸/无身份邮箱申请自 Let's Encrypt。
- 设置唯一的 server.secret_key(openssl rand -hex 32),并启用 server.limiter: true 同时接入 Valkey——这是阻止机器人把你的实例变成公开抓取中转站的关键。
- 让实例保持私密:使用不易被猜到的主机名,并将其置于 HTTP 基本身份验证 / VPN 之后,或者不将其加入公开实例列表,以避免被搜索引擎收录并遭到机器人频繁访问。
- 在 settings.yml 中禁用你用不到的引擎和功能,如无需要,也应关闭图片代理或 metrics 接口,以缩小攻击面。
- 限制容器日志大小(如上文 max-size 所示),并移除除必要项之外的所有 Linux capabilities——SearXNG 本身不保存任何用户数据,目标是打造一个最小化、少日志、非持久化的运行痕迹,让人无从查扣。
问题
主机服务 SearXNG — 常见问题
SearXNG 会保留搜索日志吗?
不会。SearXNG 默认不存储任何查询历史或用户画像——它只在 Valkey 中保留一个短期的限流计数器。再结合离岸、无需 KYC 的主机,根本就不存在可与身份关联的搜索日志可供交出。
Google 或 Bing 会封锁我的服务器吗?
偶尔某个上游引擎会对繁忙的 IP 进行限流,但在轻量级/个人实例上这种情况很少见。即便发生,SearXNG 也允许你禁用出问题的引擎,或改用它聚合的众多替代引擎,搜索结果依然能持续获取。
我需要 Valkey/Redis 容器吗?
没有它 SearXNG 也能运行,但要启用内置的限流器和机器人防护功能,就需要 Valkey。只要实例可从公网访问,就应保留它——这是防止实例被滥用的关键。
我可以把它当作私有搜索 API,供自己的应用或 AI 工具使用吗?
可以。只需在 settings.yml 中启用 JSON 输出格式,然后查询 /search?q=...&format=json 即可。请将其保留在内部网络或身份验证之后,确保只有你自己的服务能够访问。
它会消耗多少带宽?
每次查询消耗的带宽都很少——SearXNG 抓取的是文本结果,而非媒体内容。个人实例每月最多也就用掉几个 GB,而 ChainVPS 的带宽是无限流量的,因此即便公开实例面对机器人流量,也不会产生超额费用。
我可以不透露身份直接付款吗?
可以。ChainVPS 无需 KYC,且支持加密货币付款,因此你可以搭建一个 SearXNG 实例,而无需将其与你的姓名绑定——这正是自建私有搜索引擎的意义所在。