概述
Google 搜索结果里夹杂着广告,百度首页堆满推广链接。你有没有想过,自己搭一个搜索引擎,只返回纯链接、不带任何追踪?
SearXNG 就是这样一个工具。它不是一个独立的搜索引擎,而是一个元搜索引擎——你输入关键词后,它同时去 Google、Bing、DuckDuckGo 等多个引擎搜索,然后把结果汇总展示给你。整个过程不记录你的 IP、不跟踪你的搜索历史、不在页面上夹带广告。
用 Docker 部署 SearXNG 非常简单,十几分钟就能搞定。
准备工作
你需要以下条件:
- 一台 VPS(2GB 内存足够,1核CPU也行)
- Docker 和 Docker Compose 已安装
- 一个域名(可选,建议配置 HTTPS)
- 基础 Linux 命令行操作能力
如果你还没装 Docker,跑一行命令:
curl -fsSL https://get.docker.com | sh
装好 Docker 后,记得把当前用户加入 docker 组:
sudo usermod -aG docker $USER
newgrp docker
安装步骤
第一步:创建项目目录
mkdir -p ~/searxng && cd ~/searxng
第二步:创建配置文件
新建 settings.yml 文件:
cat > settings.yml << 'EOF'
use_default_settings: true
general:
instance_name: "我的 SearXNG"
contact_url: false
enable_metrics: false
search:
safe_search: 0
default_lang: zh-CN
formats:
- html
server:
port: 8080
bind_address: "0.0.0.0"
secret_key: "替换成随机字符串"
engines:
- name: google
enabled: true
- name: bing
enabled: true
- name: duckduckgo
enabled: true
- name: baidu
enabled: true
EOF
secret_key 那一行,换成你生成的随机字符串:
python3 -c "import secrets; print(secrets.token_hex(32))"
把输出的字符串贴到 settings.yml 里。
第三步:创建 Docker Compose 文件
cat > docker-compose.yml << 'EOF'
services:
searxng:
image: searxng/searxng:latest
container_name: searxng
ports:
- "8080:8080"
volumes:
- ./settings.yml:/etc/searxng/settings.yml:ro
restart: unless-stopped
environment:
- SEARXNG_BASE_URL=http://localhost:8080/
cap_drop:
- ALL
cap_add:
- CHOWN
- SETGID
- SETUID
EOF
这里做了一个安全限制:容器不开放任何系统能力(cap_drop: ALL),只保留必要的几个。
第四步:启动容器
docker compose up -d
第五步:检查运行状态
docker compose ps
看到 searxng 状态是 Up 就说明启动成功了。
第六步(推荐):配反向代理和 HTTPS
如果你有自己的域名,用 Caddy 或 Nginx 反代一下,让外部能访问。
Nginx 反代配置示例:
server {
listen 443 ssl http2;
server_name searx.example.com;
ssl_certificate /etc/letsencrypt/live/searx.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/searx.example.com/privkey.pem;
location / {
proxy_pass http://127.0.0.1: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;
proxy_read_timeout 300s;
proxy_send_timeout 300s;
}
}
没有域名?直接用 IP:8080 访问也行,但只能在局域网内用。
验证搭建成功
打开浏览器访问 http://你的IP:8080(或你的域名),你会看到 SearXNG 的搜索界面。
在搜索框输入任意关键词,比如 “Docker 教程”,看看结果页面:
- 结果来自多个搜索引擎的聚合
- 页面无广告、无追踪脚本
- 右上角可以切换搜索引擎偏好
还能点击"关于"页面,确认运行的是 SearXNG 以及启用了哪些引擎。
常见问题
Q: 搜索结果是空的怎么办?
SearXNG 依赖后端引擎的返回。如果某些引擎被封或限流,结果可能为空。在 settings.yml 里调整 engines 列表,多开几个引擎,结果会更好。
Q: 容器启动后访问不了页面?
检查防火墙:sudo ufw allow 8080/tcp 或云服务器安全组放行 8080 端口。
Q: 如何更新 SearXNG?
docker compose pull && docker compose up -d
Q: 别人能通过我的 IP 搜索吗?
会。如果不想被别人滥用,建议只在内网使用,或者加一层基本认证。用 Nginx 加 auth 很简单:
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/.htpasswd;
Q: 内存占用多少?
容器默认占 100~300MB 内存,完全够用。
搭好自己的搜索引擎后,每次搜索都不需要忍受广告和追踪了。要不要试试在手机上把 SearXNG 设为默认搜索引擎?