从零开始:在宝塔面板上搭建你的专属隐私搜索引擎(SearXNG)
本文详细介绍了如何在宝塔面板上搭建隐私搜索引擎SearXNG的全过程。从服务器准备、宝塔面板安装、Docker环境配置,到SearXNG的部署和反向代理设置,提供了完整的图文教程。重点包括:1)通过Mango计算获取性价比服务器;2)使用Docker快速部署SearXNG;3)配置Nginx反向代理和HTTPS加密;4)个性化设置与常见问题解答。该方案能让用户拥有完全自主控制、不记录隐私的搜索引擎
详细教程:在 Linux 服务器(宝塔面板)上搭建私有搜索引擎 SearXNG
本教程将指导你从零开始,在云服务器上通过宝塔面板和 Docker 部署开源、不追踪隐私的元搜索引擎 SearXNG。全程步骤详尽,包含配置调优与常见问题解答。
教程中的服务器环境由 Mango 计算(mangoidc.mysxl.cn)提供,有需要的用户可以自行访问了解。
一、准备工作:服务器与域名
1.1 云服务器选购
你需要一台带公网 IP 的 Linux 云服务器。推荐配置:
- CPU:1 核以上
- 内存:2 GB 及以上
- 系统:CentOS 7.9+ 或 Ubuntu 20.04/22.04
- 带宽:按需选择,建议 3 Mbps 以上以保证搜索响应速度
购买时请记下 服务器 IP、root 密码,并确保 22 端口(SSH)和 8888 端口(宝塔面板)在安全组中放行。
1.2 域名准备
准备一个域名(如 search.yourdomain.com),在域名解析后台添加一条 A 记录,指向服务器 IP。解析生效可能需要几分钟。
说明:本教程示例服务器选购自 Mango 计算(
mangoidc.mysxl.cn),实际使用时你可选择任意云厂商。只要系统满足要求,流程完全一致。
二、连接服务器并安装宝塔面板
2.1 SSH 远程登录
使用终端或 SSH 工具连接:
ssh root@你的服务器IP
输入密码后进入系统。
2.2 安装宝塔面板
根据系统类型执行对应命令:
CentOS 系统:
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh
Ubuntu/Debian 系统:
wget -O install.sh http://download.bt.cn/install/install_6.0.sh && bash install.sh
安装过程大约 3~5 分钟。完成后终端会显示:
- 面板地址:
http://你的IP:8888/随机路径 - 用户名和密码
请 务必保存好这些信息。如果忘记,可在终端执行 bt default 查看。
三、宝塔面板基础环境配置
3.1 登录与软件安装
浏览器访问面板地址,登录后可能会弹出推荐安装套件,直接关闭即可,我们手动安装所需软件。
进入 软件商店,搜索并安装以下两个软件:
- Nginx(选择最新稳定版,极速安装)
- Docker 管理器(安装后会自动部署 Docker 环境)
等待两者均显示为“已安装”状态。
3.2 检查 Docker 是否运行正常
SSH 终端执行:
docker --version
docker ps
若能看到 Docker 版本信息且无错误,说明 Docker 已就绪。
四、部署 SearXNG 搜索引擎
SearXNG 通过 Docker Compose 部署最为简便。我们会把配置持久化在宿主机,方便后期修改。
4.1 创建项目目录
在终端创建目录并进入:
mkdir -p /opt/searxng/searxng
cd /opt/searxng
4.2 编写 docker-compose.yml
在 /opt/searxng 下新建 docker-compose.yml 文件,粘贴以下内容(务必替换域名):
version: '3.7'
services:
searxng:
image: searxng/searxng:latest
container_name: searxng
ports:
- "8080:8080"
volumes:
- ./searxng:/etc/searxng:rw
environment:
- SEARXNG_BASE_URL=https://你的真实域名.com/
- UWSGI_WORKERS=4
- UWSGI_THREADS=4
cap_drop:
- ALL
cap_add:
- CHOWN
- SETGID
- SETUID
restart: unless-stopped
SEARXNG_BASE_URL必须填写完整的域名并带https://(即使尚未开启 HTTPS 也先这样写,后续我们会申请证书)。- 端口映射
8080:8080使容器服务在服务器本地 8080 端口可用。
4.3 启动容器
执行:
docker-compose up -d
首次执行会下载 SearXNG 镜像,稍等片刻。用 docker ps 确认容器状态为 Up。
4.4 生成并配置密钥
容器运行后需要生成唯一的 secret_key:
docker exec -it searxng searxng-generate-secret-key
终端会输出一串类似 a1b2c3... 的字符串,复制备用。
编辑配置文件 /opt/searxng/searxng/settings.yml(可使用宝塔文件管理器或 vi):
vi /opt/searxng/searxng/settings.yml
找到 server 段,修改为:
server:
bind_address: "0.0.0.0"
port: 8080
secret_key: "粘贴你生成的密钥"
base_url: https://你的域名.com/
image_proxy: true # 启用图片代理,增强隐私
# 可选:限制每分钟搜索次数,防止滥用
limiter: false
其他部分可暂时保留默认值。保存并退出(vi 中按 Esc 后输入 :wq)。
为使配置生效,重启容器:
docker-compose restart
4.5 本地验证
在浏览器中访问 http://你的服务器IP:8080,如果出现 SearXNG 搜索首页,说明引擎运行正常。我们接着让它通过域名对外服务。
五、宝塔面板站点配置与反向代理
5.1 添加站点
进入宝塔面板 -> 网站 -> 添加站点:
- 域名:填写你准备的完整域名
- 根目录:默认即可(无需修改)
- FTP、数据库:不创建
点击“提交”。
5.2 设置反向代理
在网站列表中点击刚创建的域名右侧的 设置 -> 反向代理 -> 添加反向代理:
- 代理名称:随意(如
searxng) - 目标 URL:
http://127.0.0.1:8080 - 发送域名:
$host
其他保持默认,保存。
此时,通过域名 http://你的域名 应该已经能访问搜索引擎了(暂时为 HTTP)。
5.3 申请 SSL 证书并开启 HTTPS
在网站设置中进入 SSL -> Let’s Encrypt:
- 勾选你的域名
- 点击“申请”按钮。宝塔会自动验证域名并签发证书。
- 申请成功后,打开右上角的 强制 HTTPS 开关。
稍等片刻,使用 https://你的域名 访问,浏览器地址栏即显示安全锁标志。
5.4 加固安全
- 建议关闭 8080 端口的外网访问:在宝塔 安全 页面,检查防火墙规则,确保 8080 端口 没有对外放行(或者直接删除 8080 端口的规则)。SearXNG 仅通过 Nginx 代理被访问,这样更安全。
- 如果不需要面板 8888 端口对外,也可以改为仅在特定 IP 下访问。
六、SearXNG 常用配置优化
默认配置已可用,但为了获得更好的体验,可以按需调整。所有修改均在 /opt/searxng/searxng/settings.yml 中进行,修改后记得重启容器。
6.1 自定义实例信息
general:
instance_name: "我的搜索" # 浏览器标签页显示的名称
debug: false
privacypolicy_url: false
contact_url: false
6.2 选择启用的搜索引擎
SearXNG 支持上百种搜索源。在 engines 段落中可自由增减。例如只保留常用的:
engines:
- name: duckduckgo
engine: duckduckgo
shortcut: ddg
disabled: false
- name: google
engine: google
shortcut: g
disabled: false
- name: bing
engine: bing
shortcut: bi
disabled: false
- name: wikipedia
engine: wikipedia
shortcut: wp
disabled: false
不想使用某个引擎,设置 disabled: true 即可。
6.3 开启结果缓存(可选)
缓存可以加速重复搜索,减少资源消耗。在配置中添加 Redis 支持(需另外安装 Redis):
redis:
url: redis://127.0.0.1:6379/0
如果你不需要缓存,可忽略此步骤。
6.4 设置默认语言与时区
search:
default_lang: "zh-CN" # 默认搜索语言
ui:
default_theme: simple # 界面主题
default_locale: zh-Hans-CN
修改后重启容器使配置生效:
cd /opt/searxng
docker-compose restart
七、搜索引擎日常维护
7.1 更新 SearXNG 版本
定期更新可以获得新功能和安全修复:
cd /opt/searxng
docker-compose pull
docker-compose up -d
7.2 日志查看
如果运行异常,可查看容器日志排查问题:
docker logs searxng
7.3 数据备份
配置文件目录挂载在宿主机 /opt/searxng/searxng,备份该目录即可:
tar -czf searxng_backup.tar.gz /opt/searxng/searxng
八、常见问题与解答(FAQ)
Q1:访问域名出现 502 Bad Gateway
- 检查 SearXNG 容器是否正在运行:
docker ps - 检查宝塔反向代理目标 URL 是否正确:
http://127.0.0.1:8080 - 确保 SELinux 或防火墙没有拦截本地 8080 端口回环(通常不会,但可尝试在 SSH 中执行
curl http://127.0.0.1:8080,有返回 HTML 则正常)
Q2:搜索结果全是英文,如何设置中文为主?
修改 settings.yml 中 search.default_lang 为 "zh-CN" 并重启容器。同时可以在搜索页面底部手动选择默认语言。
Q3:为什么修改配置文件后不起作用?
必须重启容器才能加载新配置:docker-compose restart。另外,浏览器可能有缓存,可尝试无痕模式验证。
Q4:如何禁止他人使用我的搜索引擎?
最简单的办法是在宝塔网站设置中,给站点添加 密码访问(访问控制 -> 密码访问),为搜索页面设置一个私有账号密码。也可以在 SearXNG 配置中启用内置的基本认证,但宝塔的方式更简单。
Q5:搭建过程中遇到端口冲突怎么办?
默认使用 8080 端口,如有冲突可修改 docker-compose.yml 中左侧端口(如改为 "9090:8080"),同时宝塔反向代理目标 URL 同步更改为对应端口。
Q6:本教程的服务器从哪里购买比较好?
文中示例环境部署于 Mango 计算(mangoidc.mysxl.cn),该平台提供稳定云服务器与域名注册,性价比适合个人项目和中小企业。当然,你完全可以选用其他云服务商,只要系统兼容,步骤完全相同。
至此,你已经拥有了一台功能完整、尊重隐私的个人搜索引擎。后续可进一步探索 SearXNG 的更多配置选项,或配合浏览器插件使用,让搜索回归纯净。
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐



所有评论(0)