如何在Amazon EC2服务器上搭建代理服务器
因为系统不一致,所以操作的内容上会有一点差异,本文就把差异的部分写出来。
首先进系统,先升级下apt-get
apt-get update
安装squid squid-common的时候,提示squid-common找不到,所以只能安装squid
apt-get install squid
在添加ssl支持的时候,出现了版本的差异,原文中是squid3-3119,而我这是squid3-338,所以一些命令就变化了:
cd squid3-338/
“debuild -us -uc -b” 这句时间会比较长一点
sudo dpkg -i squid3_3119-1ubuntu312042_amd64deb squid3-common_3119-1ubuntu312042_alldeb squid3-dbg_3119-1ubuntu312042_amd64deb
变成了下面这句
dpkg -i squid3_338-1ubuntu61_amd64deb squid3-common_338-1ubuntu61_alldeb squid3-dbg_338-1ubuntu61_amd64deb
auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid3/passwd
变成了下面这句,这个不改会造成squid3服务无法启动
auth_param basic program /usr/lib/squid3/basic_ncsa_auth /etc/squid3/passwd
本地安装了stunnel之后,按照原文配置,再结合Chrome和SwitchSharp插件使用就可以愉快地上国际互联网了!
Squid是Linux下最为流行的代理服务器软件,它功能强大,支持对HTTP、FTP、Gopher、SSL、WAIS等协议的代理; 设置简单,只需对配置文件稍稍改动就可使代理服务器运转起来。此外,Squid具有页面缓存功能,它接受用户的下载申请,并自动处理所下载的数据。 前期准备 Squid对硬件的要求是: 内存不应小于128M,硬盘转速越快越好,最好使用服务器专用SCSI硬盘,对CPU的要求不高,400MHz以上即可。笔者所管理的代理服务器是Inter2150,安装了Red Hat Linux 72,安装时就带有Squid。有两块网卡,一块eth0配外部地址(比如211889966),一块eth1配内网地址(比如19216851)。如果安装了Gnome或其他图形界面,就可以在netconfig中给两块网卡配置IP地址,不然的话,可在/etc/sysconfig/network-script路径下更改文件ifcfg-eth0和ifcfg-eth1。 首先编辑ifcfg-eht0,有以下几项: DEVICE=eth0 (表示用哪块网卡) IPADDR=211889966 (设置该网卡的IP地址) NETMASK=255255255252 (设置子网掩码) 同样编辑ifcfg-eth1,然后运行命令network restart就可以使配置生效了。对eth0、eth1进行配置后,可以用ifconfig命令来查看是不是配置成功。 如果服务器只有一张网卡,也不用担心,Linux可以在一块网卡上绑定多个IP地址。在图形界面下配置很简单,不赘述。如果在文本状态下配置,可以将ifcfg-eth0复制并命名为ifcfg-eth0:1,把它完全当成两块网卡来配就可以了。 Squid的安装 1 安装Linux 安装Linux在硬盘分区时要注意,最好不要让系统自己分区,而是手动分区。通常,在Linux系统中有且仅有一个交换分区(在文件系统形式中选择Linux swap),它用做虚拟内存,建议将交换分区的大小设置为内存的两倍。当硬盘的大小超过了8G,要再建立一个128M(稍稍大一点,不会出错)的boot分区,这是为了避免将系统内核文件放到1024磁道以外,如果将boot作为root分区的一个子目录,内核文件就会安装在root分区的任何地方。因为要用做代理服务器,建议再分一个分区“var”,作为Squid的缓冲区,所以根据磁盘大小尽量分配大一点,最后将硬盘的剩余空间全部分给root分区。 2 安装Squid 新手安装Squid,建议在安装Linux时就选中Squid,它并不是默认选中项,而且也不在选择的大类中,要在详细列表中查找。如果没有安装,又不想重装系统,可以从 下载Squid软件。 Squid代理服务器的设置 安装好Squid后几乎就可以用了,用编辑器打开/etc/squid/squidconf文件(以root登录),Squid的配置文件共有125个配置项,但是一般来说,只要修改几个配置项即可。找到“http_access deny all”并改为“http_access allow all”令所有的电脑都能通过代理服务访问互联网资源。其实只要修改该项,Squid服务就可以启动了。 为了更好地控制代理服务器的行为,还有几个可配置项需要考虑: 1 cache_mem: 设置代理服务使用的内存大小,一般推荐为物理内存的三分之一。 2 cache_dir:设定缓存的位置、大小。一般格式如下: cache_dir /var/spool/squid/cache 100 16 256 cache_dir指定cache目录的路径,默认为/var/spool/squid/cache。 /var/spool/squid/cache代表缓存的位置,使用squid -z指令会在这个目录下建立存储交换文件(swap files)的目录。100表示缓存最大为100M,16和256代表一级和二级目录数。实际使用时,100M是不够的,如果硬盘够大,可以增加存储空间,比如:cache_dir /var/spool/squid/cache 2000 16 256。 3 http_port:代理服务使用的端口号,默认为3128,可以使用其他的端口,注意将前面的注释符号“#”去掉。另外,使用端口不能和其他的服务重复,如果使用1024以下的端口,Squid必须以root身份运行。 4 maximum_object_size: 指定Squid可以接收的最大对象的大小。Squid缺省值为4M,可以根据自己的需要进行设定。 启动Squid Squid可以设置为自动启动。运行命令setup,在System services选项中选中Squid。设置后每次重新开机,都会自动执行Squid。 如果是第一次启动,要建立/var/spool/squid下的暂存资料目录,先输入squid -z,再启动Squid(直接运行Squid即可)。 启动Squid后,在另一台Windows电脑上(以Internet Explorer 50为例)运行IE,单击“工具”,接着单击“Internet选项”,再单击“连接”选项卡,选择“局域网设置”。在“局域网设置”窗口中的“地址”处填上Squid服务器的IP地址,在“端口”处填上“3218”(Squid软件默认代理的端口号),确定后退出。接下来,随意浏览一些网站检查Squid的运行情况,也可以查看logs下的accesslog和cachelog,看看代理是否运行正常。
自己搭建高质量亿级IP的HTTP/Socks5隧道代理
一、前言
在做爬虫、数据采集、账号搜索项目时,需要用到高质量代理IP。目前比较流行也是最常见的代理IP服务,大部分是通过api链接提取。通过不断的访问api接口,api服务器返回一个或多个可用代理IP,然后将代理IP应用于自己的程序或软件中。api服务器维护了一个可用IP池,并且不断在更新加入新的可用IP。客户端访问时,则返回最新可用IP。
API提取方式简单实现,但也有一定弊端,主要是客户端需要不断的访问api接口获取最新代理,需要一直循环。根据代理质量的不同,获取到的代理不一定全部可用,影响了爬虫的效率。这里推荐 酷鱼代理IP(https://kuyukuyucom),有动态代理和私密代理,速度和可用率都比较好。
那么,有没有不需要api的代理方式呢,那我们来看看隧道代理。
二、隧道代理是什么
隧道代理只需设置固定接口,云端自动切换不同IP,省去了客户端频繁获取的麻烦。并且通过隧道代理的多路负载技术,大大提高的代理速度和可用率。隧道代理没有一次提取多少个IP的概念,主要是通过对不同客户的并发请求数进行限制。一般可达到50-100次/秒的并发请求。
三、隧道代理架构
如上图,隧道代理工作步骤为:
代理使用者向隧道代理服务器发出请求。例如酷鱼隧道代理地址为:tunnelkuyukuyucom。
隧道代理服务器收到代理使用者请求后,会选择最优线路进行转发,在代理使用者和动态代理节点之间建立隧道连接。
动态代理服务器请求代理使用者指定的目标站。
动态代理服务器将目标站返回的结果,直接返回给代理使用者。
四、获取代理IP池
隧道代理有多个可用路径进行转发,采用多路复用、择优选择技术,提高代理成功率。经测试成功率可达99%以上。
代理服务器返回结果时没有经过隧道代理,而是直接返回给代理使用者。因为隧道代理仅起到建立隧道连接的作用,并不参与数据传输。保障了代理执行效率。
使用方便,需要频繁切换代理。
支持高并发,多客户端同时使用。
五、实现步骤
首先需要找到一个可持续供给的代理IP池,代理IP最好是同时支持HTTP(s)和Socks5协议的,这样我们的隧道代理也可以支持socks5。这里推荐酷鱼私密代理 https://kuyukuyucom/mains/secret ,可用率99%以上,速度快。
购买后在用户中心获取API提取链接,然后设置白名单和提取数量。
将获取到的代理写入Squid配置文件。/etc/squid/squidconf
重载配置文件,使用配置生效。
每隔1秒重复一次,并不断循环。
六、Squid使用方法
将squid 做为代理服务器
备份源文件 cp /etc/squid/squidconf /etc/squid/squidconfsource,用于脚本自动更新
在squid所在服务器运行脚本。
七、进一步优化
由于squid只支持http(s),不支持socks5协议,所有就算购买的代理池支持socks5,隧道代理也不支持。如需支持socks5,只需要使用其他软件替代squid。如果有这方面的需要可以联系酷鱼代理客服。
可以在隧道代理上使用iptables进行限制访问,达到白名单功能。
iptables还可以对单个客户端请求数量或流量限制,达到限流功能。
文章来源:网页链接
0条评论