专栏首页一键私密的搜索引擎搭建
原创

私密的搜索引擎搭建

说明:之前介绍过一个多平台聚合搜索服务Searx,都是以Google等国外搜索为主→传送门,然后这里说的秘迹搜索就是基于Searx二次开发,主要是聚合国内的百度、360、搜狗等搜索服务,专为国人开发,而且秘迹搜索可以最大程度的保护个人搜索隐私,Ta不会根据搜索关键词追踪用户,也不会通过历史搜索内容做广告推荐,目前该搜索源码开源,看见很多人想搭建个,发现教程挺简单的,这里就水个搭建教程。

截图

📷
📷

安装

Github地址:https://github.com/entropage/mijisou

官方网站:https://mijisou.com,不想自己搭建的直接就使用这个地址搜索。

1、安装依赖 CenOS 6系统:

#安装EPEL
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm
#安装Python3和Redis
yum install python34 redis git screen -y
#安装pip3
wget https://bootstrap.pypa.io/get-pip.py
python3 get-pip.py
#启动Redis
service redis start
#设置Redis开机自启
chkconfig redis on

CenOS 7系统:

#安装EPEL
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
#安装Python3和Redis
yum install python36 redis git screen -y
#配置Python3软链接
ln -s /usr/bin/python3.6 /usr/bin/python3
#安装pip3
wget https://bootstrap.pypa.io/get-pip.py
python3 get-pip.py
#启动Redis
systemctl start redis
#设置Redis开机自启
systemctl enable redis

Debian/Ubuntu系统:

#安装pip3和Redis
apt update
apt install python3-pip redis-server git screen -y

2、安装搜索

#拉取源码
git clone https://github.com/entropage/mijisou.git
#安装依赖
cd mijisou && pip3 install -r requirements.txt
#编辑配置文件
nano searx/settings_et_dev.yml

这里只说主要配置,先填写Reids服务器IP,参数如下:

cache_server : "127.0.0.1"

然后设置匿名访问,这个之前没有在Searx教程提过,主要是秘迹搜索以隐私为主,所以就配合下,这里就说下配置过程,具体方法看后面,当然你不设置也是不影响基本使用的。

运行的话,貌似Github只给了flask开发运行方法,这里不建议使用,所以就不写出来了,然后博主提供个gunicorn运行方法,使用命令:

#修改下配置文件
mv searx/settings_et_dev.yml searx/settings.yml
#启动,端口可以自行修改
gunicorn searx.webapp:app -b 127.0.0.1:8888 -D

此时访问地址为127.0.0.1:8888,还需要使用域名反代才能访问,如果你要使用ip访问,将运行命令改成0.0.0.0:8888即可。

域名反代

反代可以用NginxApacheCaddy,这里只说宝塔和Caddy。如果你网站有宝塔,就可以使用宝塔进行反代,如果没有,建议使用第2种的Caddy反代,配置很快。

1、宝塔反代 先进入宝塔面板,然后点击左侧网站,添加站点,然后再点击添加好了的域名名称,这时候就进入了站点配置,点击反向代理,目标URL填入http://127.0.0.1:8888,再启用反向代理即可。至于启用SSL就不说了,直接在站点配置就可以启用。

2、Caddy反代 安装Caddy

wget -N --no-check-certificate https://raw.githubusercontent.com/ToyoDAdoubiBackup/doubi/master/caddy_install.sh && chmod +x caddy_install.sh && bash caddy_install.sh
#备用地址
wget -N --no-check-certificate https://www.moerats.com/usr/shell/Caddy/caddy_install.sh && chmod +x caddy_install.sh && bash caddy_install.sh

配置Caddy

#以下全部内容是一个整体,请修改域名后一起复制到SSH运行!

#http访问,该配置不会自动签发SSL
echo "www.moerats.com {
 gzip
 proxy / 127.0.0.1:8888 
}" >> /usr/local/caddy/Caddyfile

#https访问,该配置会自动签发SSL,请提前解析域名到VPS服务器
echo "www.moerats.com {
 gzip
 tls admin@moerats.com
 proxy / 127.0.0.1:8888
}" >> /usr/local/caddy/Caddyfile

tls参数会自动帮你签发ssl证书,如果你要使用自己的ssl,改为tls /root/xx.crt /root/xx.key即可。后面为ssl证书路径。

启动Caddy

/etc/init.d/caddy start

就可以打开域名进行访问了。

3、Nginx配置 如果你使用其它的,这里就大概发个Nginx反代配置,直接添加到配置文件即可。

#在配置文件里添加
  location / {
      proxy_pass http://127.0.0.1:8888;
      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-Remote-Port        $remote_port;
      proxy_set_header        X-Forwarded-Proto    $scheme;
      proxy_redirect          off;
  }

就可以打开域名进行访问了。

配置匿名访问

Morty项目地址:https://github.com/asciimoo/morty

该功能主要用的Morty,大致就是重写网页以排除恶意HTML标记和属性,还替换外部资源引用以防止第三方信息泄露。

1、安装Golang环境

#Debian/Ubuntu系统
apt-get -y install golang
#创建目录并定义GOPATH环境变量指向该目录
mkdir ~/mjsmorty
echo 'export GOPATH="$HOME/mjsmorty"' >> ~/.bashrc
source ~/.bashrc

#CentOS/RHEL系统
yum -y install golang
#创建目录并定义GOPATH环境变量指向该目录。
mkdir ~/mjsmorty
echo 'export GOPATH="$HOME/mjsmorty"' >> ~/.bashrc
source ~/.bashrc

2、安装Morty

#安装
go get github.com/asciimoo/morty
mv ~/mjsmorty/bin/morty /usr/local/bin

#查看版本,有版本输出信息即按照成功
morty -version

3、启动Morty 先随机生成一个十六进制的key,使用命令:

openssl rand -hex 16

启动命令:

#监听端口和key值自行修改
screen -dmS morty morty -listen 127.0.0.1:3000 -key moerats

此时Morty监听地址为http://127.0.0.1:3000,然后再使用一个二级域名,比如morty.moerats.com对该地址反代,反代参考上面的教程,建议加上SSL

然后修改配置文件searx/settings.yml,大致修改如下:

#这里的key值修改成上面随机生成的十六进制值
secret_key : "moerats"

#填入你的morty地址、key值、秘迹搜索地址,这里的key需要和上面的一致
result_proxy:
    url : https://morty.moerats.com
    key : moerats
    server_name : https://www.moerats.com

然后重启秘迹搜索生效。最后主题目录为searx/static/themes,设置方法可以自己参考Github地址的提示。

最后博主想说的是,只要人在国内,就不谈隐私保护这事,该喝茶的还是得乖乖的去喝茶。

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 解读 | 6个问题深度解读CPU漏洞

    近日,谷歌Project Zero安全团队公布了两组CPU特性漏洞,分别命名为Meltdown和Spectre,安恒信息应急响应中心于日前已关注此漏洞并发布漏洞...

    安恒信息
  • 「首席架构师推荐」深度学习软件比较

    深度学习(DL, Deep Learning)是机器学习(ML, Machine Learning)领域中一个新的研究方向,它被引入机器学习使其更接近于最初的目...

    首席架构师智库
  • 实践: Jenkins Core Api & Job DSL创建项目

    在大规模的Jenkins实践中创建项目也是一个问题,如何通过模板自动化的创建Jenkins项目呢? 可以通过安装Job Dsl插件后,通过 Dsl直接创建项目。...

    泽阳
  • 下围棋、打德扑算什么?AI可能很快就要学会打麻将了

    从 AI 研究的早期阶段,游戏就开始充当许多 AI 技术和想法的试验台,例如跳棋、国际象棋、围棋、扑克、星际争霸。

    刀刀老高
  • Android 中心区域选中图表 WheelChart

    产品要做一个支持横向滚动、中心区域选中、惯性滚动、停止时回滚到中心位置、点击选中、处理嵌套滚动的图表需求

    Android技术干货分享
  • PHP任意文件上传漏洞(CVE-2015-2348)

    安全研究人员今天发布了一个中危漏洞——PHP任意文件上传漏洞(CVE-2015-2348)。 在上传文件的时候只判断文件名是合法的文件名就断定这个文件不是恶意文...

    FB客服
  • 软件吃软件,编程工作会越来越多吗?

    作者认为,大型软件和通用软件越来越强大,将会取代小软件和专门软件,相当于把后者都吃掉了。

    ruanyf
  • Java Web学习总结(五)——Servlet开发(一)

      Servlet是sun公司提供的一门用于开发动态web资源的技术。   Sun公司在其API中提供了一个servlet接口,用户若想用发一个动态web资源(...

    Java团长
  • NAB SHOW 2018前瞻丨三星将带来VR直播,IBM将为电视广播应用AI技术

    VRPinea
  • 谁在关心toString的性能?

    谁在关心toString的性能?没有人!除非当你有大量的数据在批量处理,使用toString产生了许多日志。然后,你去调查为何如此之慢,才意识到大部分的toS...

    哲洛不闹

扫码关注云+社区

领取腾讯云代金券