说明:现在百毒各种犀利操作导致很多人都转向了谷歌,不过由于谷歌在国内被墙,对一些人来说访问起来是有点困难的,除了挂梯子以外,反代谷歌也可以,很久前就发过这种教程→传送门,不过最近找到了个好项目Searx
,一个基于Python
的完全开源免费搜索引擎平台,为你提供来自Google
、Bing
、Yahoo
等70
多种各大视频、图片、搜索、磁力等网站结果展示,并对搜索结果进行优化,同时不会存储你的任何搜索信息,搭建也很方便,有兴趣的可以搭建给需要谷歌的同事或朋友用下。
截图
手动安装
项目地址:https://github.com/asciimoo/searx
1、安装pip
#CentOS 6.x 32位
rpm -ivh http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
yum install -y python-pip
#CentOS 6.x 64位
rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
yum install -y python-pip
#CentOS 7.x
yum install -y epel-release
yum install -y python-pip
#如果CentOS 7安装出现No package python-pip available,可以用以下命令进行安装
wget https://bootstrap.pypa.io/get-pip.py
python get-pip.py
#Debian/Ubuntu系统
apt-get -y update
apt-get -y install python-pip
2、安装git
#Debian/Ubuntu系统
apt-get -y install git
#CentOS系统
yum -y install git
3、编辑Searx
#拉取源码
git clone https://github.com/asciimoo/searx.git
#安装依赖
cd searx
pip install -r requirements.txt
#编辑配置文件
nano searx/settings.yml
修改名称什么参数,应该都看的懂,自行设置,这里只说下4
种参数:
language:为搜索语言,默认en-US,如果你的搜索以中文为主,那就改成zh-CN,当然这个语言在搜索界面也可以设置
port:为监听端口,默认8888,可自行修改。
bind_address:为监控地址,默认为127.0.0.1,如果需要让ip地址能被外网访问,就修改为0.0.0.0,这里建议默认,然后再用域名反代即可。
secret_key:该参数为加密密匙,可自行设置,数值可以在ssh客户端使用openssl rand -hex 16命令生成。
这里你也可以不用nano
编辑器,直接使用命令修改:
#修改language,默认为中文搜索结果
sed -i 's/language : "en-US"/language : "zh-CN"/g' searx/settings.yml
#修改secret_key
sed -i "s/ultrasecretkey/`openssl rand -hex 16`/g" searx/settings.yml
#修改bind_address,改了后就可以使用ip访问了,如果你使用域名的话,可以不修改
sed -i 's/bind_address : "127.0.0.1"/bind_address : "0.0.0.0"/g' searx/settings.yml
#修改port,比如修改成8000
sed -i "s/port : 8888/port : 8000/g" searx/settings.yml
更多参数设置可以参考→传送门。
4、运行Searx
安装screen
:
#CentOS系统
yum install screen -y
#Debian/Ubuntu系统
apt-get install screen -y
后台运行:
screen -dmS searx python searx/webapp.py
然后使用ip:port
访问,如果你的bind_address
地址没修改,可能浏览器会访问不了,就需要反代了,方法后面会说。
如果你修改了bind_address
地址为0.0.0.0
,还打不开媒体界面的话,还需要开启防火墙端口,使用命令:
#CentOS 6
iptables -I INPUT -p tcp --dport 8888 -j ACCEPT
service iptables save
service iptables restart
#CentOS 7
firewall-cmd --zone=public --add-port=8888/tcp --permanent
firewall-cmd --reload
如果你开了端口还不能打开,可能还需要去服务商后台开启对应的端口。
Docker安装
这里貌似用官方的Dockerfile
文件构建镜像的时候会报错,所以博主自己写了个Dockerfile
文件,安装也很快。
Github地址:https://github.com/iiiiiii1/Docker-Searx
1、安装Docker
#CentOS 6
rpm -iUvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
yum update -y
yum -y install docker-io
service docker start
chkconfig docker on
#CentOS 7、Debian、Ubuntu
curl -sSL https://get.docker.com/ | sh
systemctl start docker
systemctl enable docker
2、安装git
#Debian/Ubuntu系统
apt-get -y install git
#CentOS系统
yum -y install git
3、构建镜像
#拉取源码
git clone https://github.com/iiiiiii1/Docker-Searx
#构建镜像,搜索语言默认已改成中文
cd Docker-Searx
docker build -t searx .
4、启动镜像
docker run -d --name searx -p 8888:8888 searx
启动命令被我简化了,详细可参考→传送门,然后使用ip:8888
,访问即可,映射端口可自行修改,比如-p 8000:8888
。
域名反代
这里是建议使用域名反代的,反代可以用Nginx
、Apache
、Caddy
,这里只说宝塔和Caddy
。如果你网站有宝塔,就可以使用宝塔进行反代,如果没有,建议使用第2
种的Caddy
反代,配置很快。
1、宝塔反代
先进入宝塔面板,然后点击左侧网站,添加站点,然后再点击添加好了的域名名称,这时候就进入了站点配置,点击反向代理,目标URL
填入http://127.0.0.1:8888
,再启用反向代理即可。至于启用SSL
就不说了,直接在站点配置就可以启用。
2、Caddy反代
安装Caddy
:
wget -N --no-check-certificate https://raw.githubusercontent.com/iiiiiii1/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 {
header_upstream Host {host}
header_upstream X-Real-IP {remote}
header_upstream X-Forwarded-For {remote}
header_upstream X-Forwarded-Port {server_port}
header_upstream X-Forwarded-Proto {scheme}
}
}" > /usr/local/caddy/Caddyfile
#https访问,该配置会自动签发SSL,请提前解析域名到VPS服务器
echo "www.moerats.com {
gzip
tls admin@moerats.com
proxy / 127.0.0.1:8888 {
header_upstream Host {host}
header_upstream X-Real-IP {remote}
header_upstream X-Forwarded-For {remote}
header_upstream X-Forwarded-Port {server_port}
header_upstream X-Forwarded-Proto {scheme}
}
}" > /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;
}
最后使用的时候,记得在高级设置那里将搜索语言设置成你需要的就行了,不然搜出来的结果可能不会让你满意。
如果想设置匿名访问,可以查看该教程→传送门,参考配置匿名访问即可。
版权声明:本文为原创文章,版权归 Rat's Blog 所有,转载请注明出处!
本文链接:https://www.moerats.com/archives/875/
如教程需要更新,或者相关链接出现404,可以在文章下面评论留言。
国内服务器搜索google内容timeout,服务器用了魔法还是这个结果,请问下怎样能解决?
大佬大佬 根据您的docker流程配了一遍 构建完了image镜像是个none...容器也没起起来 docker小白想问下是哪步做的不对吗?
老铁,这个怎么解决?
引擎无法获取结果:
archive is (request exception), duden (timeout)
我弱弱的问一句 我主要想用学术搜索,但是搭建后发现 搜索学术要么是没有内容 要么就是报错 是什么原因导致的呢? 是因为我没有配置ssl么? 报错内容是这个:Internal Server Error
The server encountered an internal error and was unable to complete your request. Either the server is overloaded or there is an error in the application.
请问用nginx反代以后 页面中首选项的
"当前保存选项的搜索链接 "
还是以 "http://127.0.0.1:8888" 本地地址开头 修改了配置中的 "base_url" 也没用,这个该设置哪里呢
docker搭建成功,请问如何更新searx?官网已经更新了0.16,不知道怎么更新。
最简单的就是,清空旧的,然后重新装,docker默认使用最新源码
我又来这边了。。。
from searx import loggersearx python searx/webapp.py 的时候报错是说缺少模块
Traceback (most recent call last):
File "searx/webapp.py", line 33, in <module>
File "/usr/local/searx/searx/__init__.py", line 18, in <module>
import certifiImportError: No module named certifi
安装好以后有显示Successfully installed babel-2.7.0 certifi-2019.3.9 flask-1.0.2 flask-babel-0.12.2 idna-2.8 jinja2-2.10.1 lxml-4.3.3 pygments-2.1.3 pyopenssl-19.0.0 python-dateutil-2.8.0 pyyaml-5.1 requests-2.22.0,这个包明明有的。
实际查看了下这个包就在
/usr/local/lib/python3.6/site-packages/里面。。。。
你这是python3的包,貌似不适用于searx
自从看了RAT大佬的博客,发现域名明显不够用了。
vps从免费的用到收费的。,。。。
多折腾,你懂的就多,这是很值得的
好像不能使用了,正常搭建报错:
错误! 引擎无法获取结果。
google (超时), wikidata (超时)
请稍后再试,或寻找其它的 searx 实例替代。
一直都这样么?你是国内服务器还是
想注册个账号联系你都联系不上
我很少放联系方式,你加我微信吧,*。