使用Tornado+Redis维护ADSL拨号服务器代理池

我们尝试维护过一个免费的代理池,但是代理池效果用过就知道了,毕竟里面有大量免费代理,虽然这些代理是可用的,但是既然我们能刷到这个免费代理,别人也能呀,所以就导致这个代理同时被很多人使用来抓取网站,所以当我们兴致勃勃地拿他来抓取某个网站的时候,会发现它还是被网站封禁的状态,所以在某些情况下免费代理池的成功率还是比较低的。

当然我们也可以去购买一些代理,比如几块钱提取几百几千个的代理,然而经过测试后质量也是很一般,也可以去购买专线代理,不过价格也是不菲的。那么目前最稳定而且又保证可用的代理方法就是设置ADSL拨号代理了。

本篇来讲解一下ADSL拨号代理服务器的相关设置。

什么是ADSL

大家可能对ADSL比较陌生,ADSL全称叫做Asymmetric Digital Subscriber Line,非对称数字用户环路,因为它的上行和下行带宽不对称。它采用频分复用技术把普通的电话线分成了电话、上行和下行三个相对独立的信道,从而避免了相互之间的干扰。

有种主机叫做动态拨号VPS主机,这种主机在连接上网的时候是需要拨号的,只有拨号成功后才可以上网,每拨一次号,主机就会获取一个新的IP,也就是它的IP并不是固定的,而且IP量特别大,几乎不会拨到相同的IP,如果我们用它来搭建代理,既能保证高度可用,又可以自由控制拨号切换。

经测试发现这也是最稳定最有效的代理方式,本节详细介绍一下ADSL拨号代理服务器的搭建方法。

购买动态拨号VPS主机

所以在开始之前,我们需要先购买一台动态拨号VPS主机,这样的主机在百度搜索一下,服务商还是相当多的,在这里推荐一家云立方http://www.yunlifang.cn/dynamicvps.asp,感觉还是比较良心的,非广告。

配置的话可以自行选择,看下带宽是否可以满足需求就好了。

购买完成之后,就需要安装操作系统了,进入拨号主机的后台,首先预装一个操作系统。

使用Tornado+Redis维护ADSL拨号服务器代理池_第1张图片

在这里推荐安装CentOS7系统。

然后找到远程管理面板找到远程连接的用户名和密码,也就是SSH远程连接服务器的信息。

比如我这边的IP端口分别是 153.36.65.214:20063,用户名是root。

命令行下输入:

ssh root@153.36.65.214 -p 20063

然后输入管理密码,就可以连接上远程服务器了。

进入之后,可以发现有一个可用的脚本文件,叫做ppp.sh,这是拨号初始化的脚本,运行它会让我们输入拨号的用户名和密码,然后它就会开始各种拨号配置,一次配置成功,后面的拨号就不需要重复输入用户名和密码了。

运行ppp.sh脚本,输入用户名密码等待它的配置完成。

使用Tornado+Redis维护ADSL拨号服务器代理池_第2张图片

都提示成功之后就可以进行拨号了。

在拨号之前如果我们测试ping任何网站都是不通的,因为当前网络还没联通,输入拨号命令:

adsl-start

可以发现拨号命令成功运行,没有任何报错信息,这就证明拨号成功完成了,耗时约几秒钟。接下来如果再去ping外网就可以通了。

如果要停止拨号可以输入:

adsl-stop

停止之后,可以发现又连不通网络了。

所以只有拨号之后才可以建立网络连接。

使用Tornado+Redis维护ADSL拨号服务器代理池_第3张图片

所以断线重播的命令就是二者组合起来,先执行adsl-stop再执行adsl-start,每拨一次号,ifocnfig命令观察一下主机的IP,发现主机的IP一直是在变化的,网卡名称叫做ppp0。

使用Tornado+Redis维护ADSL拨号服务器代理池_第4张图片

所以,到这里我们就可以知道它作为代理服务器的巨大优势了,如果将这台主机作为代理服务器,如果我们一直拨号换IP,就不怕遇到IP被封的情况了,即使某个IP被封了,重新拨一次号就好了。

所以接下来我们要做的就有两件事,一是怎样将主机设置为代理服务器,二是怎样实时获取拨号主机的IP。

设置代理服务器

之前我们经常听说代理服务器,也设置过不少代理了,但是可能没有自己设置吧,自己有一台主机怎样设置为代理服务器呢?接下来我们就亲自试验下怎样搭建HTTP代理服务器。

在Linux下搭建HTTP代理服务器,推荐TinyProxy和Squid,配置都非常简单,在这里我们以TinyProxy为例来讲解一下怎样搭建代理服务器。

安装TinyProxy

当然第一步就是安装TinyProxy这个软件了,在这里我使用的系统是CentOS,所以使用yum来安装,如果是其他系统如Ubuntu可以选择apt-get等命令安装,都是类似的。

命令行执行yum安装指令:

yum install -y epel-release

你可能感兴趣的:(python,代理池,拨号代理)