Whoogle-Search 私有化部署:3 条路线让自托管隐私搜索引擎跑起来
【免费下载链接】whoogle-searchA self-hosted, ad-free, privacy-respecting metasearch engine项目地址: https://gitcode.com/GitHub_Trending/wh/whoogle-search
每次打开搜索框,广告排在结果前面,点开的链接还带着追踪参数——这是现在多数人的搜索日常。Whoogle-Search 是一个自托管的元搜索引擎:它不建自己的索引,而是替你向 Google 要结果,再把广告、JavaScript、AMP 链接、Cookie 和 IP 追踪全部过滤掉,交还一个干净的结果页。说白了,就是部署在你自己机器上的一台隐私搜索前端,无广告、不留你的痕迹。
"自托管"指服务跑在你掌控的硬件上;"元搜索引擎"指结果仍来自 Google,只是你不直连 Google,中间隔了一层清洗。你看到的搜索结果和直接搜谷歌是同一批,只是路径干净了。
开工之前:把要求核对一遍
Whoogle 很轻,低配机器就能跑:
| 项目 | 最低要求 | 推荐 |
|---|---|---|
| CPU | 1 核 | 2 核 |
| 内存 | 256MB | 512MB 以上 |
| 磁盘 | 约 100MB | 1GB 以上 |
| 软件 | Docker(+Compose)或 Python 3.7+ | Docker |
| 端口 | 默认 5000 | 防火墙放行 5000/tcp |
唯一要提前确认的是:机器本身能访问 Google。网络直连不通的话,后面部署得再漂亮也拿不到结果,这是整个隐私搜索方案的前提。
选一条部署路线:Docker、Compose 还是 Python
三条路线各有取舍,按你的情况挑:
| 路线 | 适合谁 | 难度 | 后续维护 |
|---|---|---|---|
| Docker 单容器 | 快速验证、个人自用 | 低 | 低 |
| Docker Compose | 要改配置、挂 HTTPS、长期跑 | 中 | 中 |
| Python 直接运行 | 没有 Docker、想改源码 | 高 | 高 |
建议:先跑 Docker 单命令,够用就不必折腾;打算挂域名、加认证,直接上 Compose;想读代码做魔改,再考虑 Python 路线。
路线一(推荐):Docker 部署,一条命令跑通
先确认 Docker 可用:
docker --version docker-compose --version然后拉镜像、起容器:
docker pull benbusby/whoogle-search docker run --publish 5000:5000 --detach --name whoogle-search benbusby/whoogle-search:latest浏览器打开 http://localhost:5000,看到搜索框就算完成了无广告搜索引擎搭建的第一步。--publish左边是主机端口、右边是容器端口,想换端口只改左边那个数字。
路线二:Docker Compose,方便日后加配置
长期使用建议 Compose。克隆仓库并启动:
git clone https://gitcode.com/GitHub_Trending/wh/whoogle-search cd whoogle-search docker-compose up -d仓库自带的 docker-compose.yml 已经配好内存上限(256MB)、非特权用户、重启策略,不用自己写。想加功能时改动environment段即可,比如启用基础认证:
environment: - WHOOGLE_USER=your_username - WHOOGLE_PASS=your_password其余变量——代理、站点替代地址等——在模板文件 whoogle.template.env 里都能查到名字。
路线三:Python 直接运行,最灵活
适合没有 Docker 的环境。以 Ubuntu/Debian 为例,先装系统依赖:
sudo apt-get install -y python3 python3-venv python3-pip libcurl4-openssl-dev libssl-dev再建虚拟环境并安装:
git clone https://gitcode.com/GitHub_Trending/wh/whoogle-search cd whoogle-search python3 -m venv venv source venv/bin/activate pip install -r requirements.txt ./runrequirements.txt 里有少数包需要本机编译(如 cryptography),卡在 gcc 报错时先补上工具链:sudo apt-get install -y build-essential。换端口则用./run --port 8080。
避坑手册:先看现象,再动手
部署后撞到的问题基本集中在三处,出现时照下面对:
🚧 现象一:5000 端口被占用
现象:容器起不来,报错Bind for 0.0.0.0:5000 failed: port is already allocated。
原因:机器上别的程序先占了 5000。
处理:不用争,直接改主机端映射:
docker run --publish 8080:5000 --detach --name whoogle-search benbusby/whoogle-search:latestCompose 用户改 docker-compose.yml 里ports的左侧数字即可,容器内端口不动。
现象二:容器在跑,浏览器却打不开
现象:docker ps里容器状态正常,远程浏览器访问 http://服务器IP:5000 一直转圈。
原因:绝大多数情况是防火墙。
处理:放行端口:
# Ubuntu/Debian sudo ufw allow 5000/tcp # CentOS/RHEL sudo firewall-cmd --add-port=5000/tcp --permanent && sudo firewall-cmd --reload现象三:容器过一会儿自己停了
现象:容器从 running 变成 exited。
原因:资源不够或配置有误。容器不会主动说明死因,日志会。
处理:先看日志再判断:
docker logs whoogle-searchPython 部署的可以看journalctl -u whoogle(systemd 托管时)。修完顺手做个健康检查:
curl -I http://localhost:5000看到HTTP/1.1 200 OK就是活着的。
进阶选项:HTTPS、Tor、开机自启
基础功能跑通后,想再舒服一点,按场景挑:
挂上域名加 HTTPS(Traefik)
想让 https 访问:仓库里有一份现成的 docker-compose-traefik.yaml,Traefik 和 Let's Encrypt 自动续签都配好了。用前改两处:change@domain.name换成你的邮箱、change.host.name换成你的域名,然后:
docker-compose -f docker-compose-traefik.yaml up -d走 Tor,让查询不直接暴露本机 IP
想达到的效果:向 Google 发出的请求经 Tor 中转,本机 IP 不出现在 Google 侧。
怎么配:
- Docker 部署:加一个环境变量
WHOOGLE_CONFIG_TOR=1(Compose 的environment里加),镜像内置 Tor 服务,随容器一起启动。 - Python 部署:宿主机要自己跑 Tor。仓库带了一份 Tor 配置示例(已启用
ControlPort 9051和 cookie 认证)和启动脚本,配好后同样设WHOOGLE_CONFIG_TOR=1让 Whoogle 接入。
systemd 开机自启 + 基础认证
想达到的效果:服务器重启后服务自动恢复(Python 部署场景)。
怎么配:把下面的单元文件写入/etc/systemd/system/whoogle.service,替换其中的用户名和路径:
[Unit] Description=Whoogle Search After=network.target [Service] Type=simple User=your_username WorkingDirectory=/path/to/whoogle-search ExecStart=/path/to/whoogle-search/run --host 127.0.0.1 --port 5000 Restart=always RestartSec=3 [Install] WantedBy=multi-user.target然后启用:
sudo systemctl daemon-reload sudo systemctl enable whoogle sudo systemctl start whoogleDocker 用户不需要这一步,docker-compose.yml 里的restart: unless-stopped已经覆盖重启场景。再配上前面提到的基础认证两个变量,这个隐私搜索入口就可以放心暴露给常用设备了。
长期维护:更新与日志
长期跑两件事:
定期更新。上游迭代很快,也包含安全修复。Compose 部署最省事:
docker-compose pull && docker-compose up -d纯docker run部署的顺序是:docker pull benbusby/whoogle-search,接着docker stop whoogle-search && docker rm whoogle-search,然后重跑第一步的 run 命令。
一个要知晓的风险:2025 年 1 月起,Google 对"无 JS 结果页"的支持变得不稳,而 Whoogle 恰好依赖这类页面做过滤。开发者仍在跟进变通方案,留意仓库 README 的更新即可,不必现在焦虑。
跑起来之后,不用改默认搜索引擎也能用;如果打算每天用它,把 http://localhost:5000 加进浏览器自定义搜索引擎,搜索地址格式为http://localhost:5000/search?q=%s即可。
到这一步,一台无广告、不追踪的搜索引擎已经在你自己的机器上跑了。
【免费下载链接】whoogle-searchA self-hosted, ad-free, privacy-respecting metasearch engine项目地址: https://gitcode.com/GitHub_Trending/wh/whoogle-search
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考