常见爬虫/BOT 对抗技术简介(二)

上一篇文章分别从网络协议,Robots文件,JS渲染,行为分析等多方面讲了些“反爬虫”,“反-反爬虫”技术。
本文将主要介绍各种IP地址的获取及接入方式
2.2 VPN
VPN是一个大家耳熟能详的技术。VPN最常用于连接办公网,以及规避流量审计。在WIKI中, VPN的定义如下:
虚拟私人网络(英语:Virtual Private Network,缩写为VPN)是一种常用于连接中、大型企业或团体与团体间的私人网络的通讯方法。它利用隧道协议(Tunneling Protocol)来达到保密、发送端认证、消息准确性等私人消息安全效果,这种技术可以用不安全的网络(例如:互联网)来发送可靠、安全的消息。需要注意的是,加密消息与否是可以控制的,如果是没有加密的虚拟专用网消息依然有被窃取的危险。
我们都知道,我们的网络模型用OSI来描述是7层,分别是应用层、表达层、会话层、传输层、网络层、链路层、物理层。
正常的网络连接, 是完整的7层网络,VPN的原理是通过其中某一层,重新从链路层开始传输。
举个例子,PPTP协议就是把第二层的PPP帧,用GRE协议包装,在IP层上传输。所以PPTP是 PPP over IP . L2TP是把PPP帧封装为UDP包,所以是 PPP over UDP。
用这种方式,也可以理解代理的工作方式,例如,Socks5代理就是 TCP over TCP, HTTP代理是 TCP over HTTP。
只要涉及到改变IP,必然涉及到网络通信协议的重新组装,并在一个层面上重新实现了这个层面或者比这个层面更底层的功能。
由于连接了VPN的用户可以将本地的数据通过VPN路由,所以VPN也是一种“改变IP”的方式。
2.2.1 简单 VPN
简单的VPN组网非常直观,即客户计算机连接至远程服务器,在本地产生一个虚拟网卡,并将本地的所有流量路由至该网卡。
远程的服务器将用户流量从其中一个网卡(可能是物理的、也有可能是PPP的)发出。
2.2.2 混合网络VPN
有意思的是目前国内存在一种混合网络VPN的产品, 本质上是各地的服务器加入到同一个VPN中,用户的VPNClient连接至中心服务器后,
中心服务器在路由表中为此用户随机指定一个VPN网关,实现用户连接同一个VPN服务器,但出口IP是全国随机的
2.3 VPS
VPS 是目前非常常见的一种IT服务, 向用户提供一个远程的服务器,本质上是KVM虚拟机。
通常,在提供VPS服务时,还会向用户提供一个外网IP地址,所以很多爬虫就利用VPS提供的IP地址来解决IP问题。
目前国内有许多优秀的VPS提供商,比如我们已经很熟悉的阿里云、腾讯云,还有不太常见的青云、华为云等等。
2.3.1 混拨VPS
国内还有一个很有意思的VPS服务,叫做混拨VPS。 它的效果是, 你在它提供的VPS服务器上发起PPP连接(拨号), 每次可以通过这个PPP连接为你提供不同地区的IP地址。 它的实现方式是EtherIP。
何谓PPPOE?
2.4 PPPoE (家庭宽带)
PPP协议也叫点对点协议(英语:Point-to-Point Protocol,PPP),是一个历史悠久的协议,定义于1992年,备忘录编号RFC 1331。
它的另外一个名字更为我们所熟知——宽带拨号。 当前我们所用的宽带连接技术,无论ADSL还是光纤接入,在数据链路层上,都使用PPP技术。我们在运营商办理宽带时,如果采用ADSL接入, 运营商会为我们提供一个ADSL Modem,如果使用光纤接入, 运营商为我们提供一个光猫,也叫ONU。 ONU 与 ADSL Modem 为我们建立了与ISP通信的物理层,我们会发现,直接将光猫或ADSL Modem上面的以太网口接入电脑是不行的, 这是因为由于运营商需要AAA,也就是 验证、授权和记账(Authentication、Authorization、Accounting )。 在我们看来,我们需要“拨号” 才能上网。 “拨号”,就是建立了一个PPP连接。 PPP协议提供了认证的能力, 这也就是为什么我们在“拨号”的时候,可以输入 用户名、密码。 而运营商可以通过用户名和密码来对我们进行认证的原因。
在建立了PPP连接之后, 在操作系统看来, PPP连接表现为一个网卡,当然这个网卡并不是物理上的网卡,而是一个虚拟的逻辑网卡, 与这个逻辑的网卡进行通信,PPP协议的驱动程序会自动为我们完成PPP协议的封包和拆包工作, 在我们看来,除了由于PPP协议的8个字节开销,导致MTU比正常的要小一些之外, 这个网卡和一般的物理网卡工作起来并没有什么区别。
一般来说,在PPP连接建立之后, 远端的ISP设备, 称为BAS(接入服务器),会为PPP链接的客户端赋予一个IP地址. 这个IP地址在几年前一般都是公网IP地址, 现在有很多是NAT过的IP地址. 它们来源于BAS服务器上配置的地址池,通常IP地址池的划分是于区县级的,也有部分城市经过改造,可能是市级,甚至是省级的。
PPP拨号在爬虫对抗中是很可靠的IP来源,因为它与用户的IP段重合,如果服务提供商贸然封杀IP,会导致严重的误杀, 当然局限性也很大,如果想获取一个地区IP地址,就需要在这个地区架设机房。所需要的时间精力比较大。
2.5 4G
4G网是近几年已经迅速成熟的移动通信技术。按照ITU的定义,静态传输速率达到1Gbps,用户在高速移动状态下可以达到100Mbps,就可以作为4G的技术之一。据2018年上半年的统计数据,4G用户总数达到11.1亿户。 比传统的宽带接入方式用户数要大得多, 4G接入方式的IP段与家庭宽带的IP段互不重合,是独立的IP段。与家庭宽带来源相比,4GIP段NAT的情况要更加严重, 与用户的重合度更好。 在爬虫对抗的过程中,误杀率会更高。 是更有效的代理IP来源。
接下来我会介绍其他的的IP层反-反爬虫方案。
目录如下
2.2 VPN
2.3.1 简单 VPN
2.3.2 混合网络VPN
2.3 VPS
2.4 单机PPP拨号
2.5 并发PPP拨号
三、并发PPP连接技术简介
3.1 PPP协议栈简单介绍
3.2 PPP连接和ADSL的关系
3.3 城域网技术简介
3.4 并发PPP连接方案的适用范围
3.5 国内并发PPP连接服务提供商
四、Linux路由
4.1 Linux基础路由简介
4.2 Linux高级路由简介
三、并发PPP连接技术简介
3.1 PPP协议栈简单介绍
3.2 PPP连接和ADSL的关系
3.3 城域网技术简介
3.4 并发PPP连接方案的适用范围
3.5 国内并发PPP连接服务提供商
四、Linux路由
4.1 Linux基础路由简介
4.2 Linux高级路由简介
综上所述,使用代理IP是解决反扒机制的最佳解决方案,也是最简单有效的。
为此,我个人研发了一款代理IP池项目,现欢迎大家内测体验~
传送门:www.2808proxy.com
解决爬虫的IP源问题。
常见爬虫/BOT 对抗技术简介(二)的更多相关文章
- 常见爬虫/BOT对抗技术介绍(一)
爬虫,是大家获取互联网公开数据的有效手段.爬虫.反爬虫技术.反-反爬虫技术随着互联网的不断发展,也在不断发展更新, 本文简要介绍现代的爬虫/BOT对抗技术,如有疏漏,多谢指正! 一.反爬虫/BOT技术 ...
- 2017-2018-2 20155303『网络对抗技术』Final:Web渗透获取WebShell权限
2017-2018-2 『网络对抗技术』Final:Web渗透获取WebShell权限 --------CONTENTS-------- 一.Webshell原理 1.什么是WebShell 2.We ...
- CSS border三角、圆角图形生成技术简介
http://www.zhangxinxu.com/wordpress/?p=794 一.前言 利用CSS的border属性可以生成一些图形,例如三角或是圆角.纯粹的CSS2的内容,没有兼容性的问题, ...
- 2018-2019-2 20165315《网络对抗技术》Exp2 后门原理与实践
2018-2019-2 20165315<网络对抗技术>Exp2 后门原理与实践 一.实验任务 使用netcat获取主机操作Shell,cron启动 使用socat获取主机操作Shell, ...
- 2018-2019-2 网络对抗技术 20165318 Exp2 后门原理与实践
2018-2019-2 网络对抗技术 20165318 Exp2 后门原理与实践 后门的基本概念及基础问题回答 常用后门工具 netcat Win获得Linux Shell Linux获得Win Sh ...
- 2018-2019-2 网络对抗技术 20165318 Exp3 免杀原理与实践
2018-2019-2 网络对抗技术 20165318 Exp3 免杀原理与实践 免杀原理及基础问题回答 实验内容 任务一:正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil- ...
- 2017-2018-2 20155314《网络对抗技术》Exp3 免杀原理与实践
2017-2018-2 20155314<网络对抗技术>Exp3 免杀原理与实践 目录 实验要求 实验环境 预备知识 实验步骤 1 免杀效果实测 1.1 恶意代码生成工具 1.2 免杀效果 ...
- 2017-2018-2 20155303『网络对抗技术』Exp5:MSF基础应用
2017-2018-2 20155303『网络对抗技术』Exp5:MSF基础应用 --------CONTENTS-------- 一.原理与实践说明 1.实践内容 2.预备知识 3.基础问题 二.实 ...
- 2017-2018-2 20155303 『网络对抗技术』Exp3:免杀原理与实践
2017-2018-2 20155303 『网络对抗技术』Exp3:免杀原理与实践 --------CONTENTS-------- 1. 免杀原理与实践说明 实验说明 基础问题回答 2. 使用msf ...
随机推荐
- robotium之webview元素处理
今天写robotium脚本发现,用uiautomatorviewer定位百度贴吧的登录框是无法定位的,如图: 明显无法定位用户名.密码输入框,无法定位元素那就无法对控件无法操作 如何定位webview ...
- sklearn学习笔记
用Bagging优化模型的过程:1.对于要使用的弱模型(比如线性分类器.岭回归),通过交叉验证的方式找到弱模型本身的最好超参数:2.然后用这个带着最好超参数的弱模型去构建强模型:3.对强模型也是通过交 ...
- Python-2d形变 动画 表格
一.形变 /*1.形变参考点: 三轴交界点*/ transform-origin: x轴坐标 y轴坐标; /*2.旋转 rotate deg*/ transform: rotate(720deg); ...
- cf799c 树状数组魔改
这题的树状数组是用来维护区间最大值的!非常神奇 第一次见到这种用法,其实和区间求和也没什么差别 /* 树状数组魔改版 有三种方案:选两种c,选两个d,选一个c一个d 前两种方案需要选出符合条件的魅力值 ...
- java远程工具类
package com.zdz.httpclient; import java.io.BufferedReader; import java.io.IOException; import java.i ...
- 《JavaScript 高级程序设计》第四章:变量、作用域和内存问题
目录 变量的引用 执行环境及作用域 作用域链延长 块级作用域 垃圾回收机制 变量的引用 当一个变量保存了基本数据类型时,此时对于变量的操作(赋值,运算)就是操作这个基本数据的本身,就算是赋值操作,赋值 ...
- URL中带加号的处理
问题起因: 客户订购了一关键字为"e+h 变送器" , 在首页推荐广告中,会根据用户在search 搜索过的关键字进行一个匹配投放.技术实现是UED 通过JS 获取coo ...
- linux shell cut 命令
cut命令 cut命令用于从文件或者标准输入中读取内容并截取每一行的特定部分并送到标准输出. 截取的方式有三种:一是按照字符位置,二是按照字节位置,三是使用一个分隔符将一行分割成多个field,并提取 ...
- [转]使用python来操作redis用法详解
转自:使用python来操作redis用法详解 class CommRedisBase(): def __init__(self): REDIS_CONF = {} connection_pool = ...
- rocketMQ基本架构简介
1.RocketMQ 简介: RocketMQ前身是阿里研发的一个队列模型的消息中间件,后开源给apache基金会成为了apache的顶级开源项目,具有高性能.高可靠.高实时.分布式特点. 2.Roc ...