作者:小仙人
引言:
为什么需要代理池呢?那是因为我们日常在渗透测试的过程中,使用扫描器或者频繁访问站点会触发网站的反爬机制,最典型的反爬手段就是把你的IP给Ban了,一旦IP给Ban了,那么你就无法正常进行渗透了。这个时候就需要用到代理池了。当然,如果你的VPN节点足够多也可以解决这个问题,再或者使用黑洞代理,动态切换IP,但是这些手段都要收费。本文的代理池是开源的,搭建成功即可使用,接下来进入正题吧。
这里我使用的是崔庆才前辈的ProxyPool,此代理池提供如下功能:
•定时抓取免费代理网站,简易可扩展。
•使用Redis对代理进行存储并对代理可用性进行排序。
•定时测试和筛选,剔除不可用代理,留下可用代理。
•提供代理API,随机取用测试通过的可用代理。
此代理池由四个模块实现的,这里简单介绍一下,分别是存储模块、获取模块、检测模块、接口模块。具体每一个模块是怎么实现的可以看看前辈对其项目的描述:
https://cuiqingcai.com/7048.html
项目地址:
https://Github.com/Python3WebSpider/ProxyPool
这里我使用Docker来运行代理池,需要安装如下环境:
•Docker
•Docker-Compose
这里不介绍常规方式,大家自己研究。
【Docker环境搭建】
首先检查内核版本,因为Docker CE支持64位版本CentOS 7,并且要求内核版本不低于3.10,而我所使用的环境如下:VPS CentOS 7(在开始之前,我重装了系统以保证系统环境的干净)
//查看内核
[root@localhost ~]# uname -a
[root@localhost ~]# yum install -y yum-utils device-mapper-persistent-data lvm2
//鉴于国内网络问题,强烈建议使用国内源执行下面的命令添加yum软件源
[root@localhost ~]# yum-config-manager --add-repo
https://mirrors.ustc.edu.cn/docker-ce/linux/centos/docker-ce.repo
//否则后面你就会出现读取超时的错误提示,就像悲惨的我一样。要不是我英语过八级,我估计是解决不了这个问题。如果大家在后面安装过程中遇到此情况,不要慌,先拿出手机拍照发个朋友圈。然后解决这个问题的方式就是找个网络好点的地方然后不停地重复执行命令。
//安装Docker CE
[root@localhost ~]# yum makecache fast
[root@localhost ~]# yum install docker-ce
//启动Docker CE
[root@localhost ~]# systemctl enable docker
[root@localhost ~]# systemctl start docker
//查看Docker运行状态
[root@localhost ~]# systemctl status docker
//建立Docker用户组
[root@localhost ~]# groupadd docker
//将当前用户加入Docker组
[root@localhost ~]# usermod -aG docker $USER
//测试Docker是否安装正确
[root@localhost ~]# docker run hello-world
//进行到这里,我的Docker已经安装成功了。
这里还是提一下,我已经安装失败3次,直至这一次我才安装成功的,本人在CSDN上面找到的安装教程非常有问题,所以如果大家要看怎么正确安装Docker的话,建议把本文收藏了,虽然本文是教你如何搭建代理池,但也无妨。
//查看Docker版本
[root@localhost ~]# docker version
【Docker Compose安装】
//安装依赖包
[root@localhost ~]# yum install gcc python-devel // A
[root@localhost ~]# yum -y install epel-release python-pip
//安装Docker Compose
[root@localhost ~]# pip install docker-compose
//此步骤出了少许错误的,主要是在进入setup.py文件,进行编译的时候报错,造成这种原因一般都是因为gcc或提示中相关东西未安装,所以注释A处,是我后来补充上去的。如果按照步骤走,还是出现报错,那么大家只能根据错误提示去百度搜相对应解决办法,或者可以去"安全武器库"中私信我。这里我已经安装成功啦!美滋滋~现在好像又不是很难的亚子了~
//验证是否安装成功
[root@localhost ~]# docker-compose version
// 如果安装经常出错,也可以使用Docker官方提供的一套便捷的安装脚本,此环节不属于我的安装流程。
// [root@localhost ~]# curl -fsSL get.docker.com -o get-docker.sh
// [root@localhost ~]# sh get-docker.sh --mirror Aliyun
(如上部分内容摘自https://juejin.im/post/5dc241ce6fb9a04aa333c1bd#heading-9)
//将项目git clone下来
[root@localhost ~]# git clone https://github.com/Python3WebSpider/ProxyPool.git
[root@localhost ~]# cd ProxyPool
[root@localhost ProxyPool]# docker-compose up
接着我们访问http://localhost:5555/random即可获取一个随机可用代理。