为什么Google不返回我的搜索结果(无状态TCP连接重置)

1、Great Firewall

它的存在会对境外涉及敏感内容的网站、IP地址、关键词、网址等进行过滤

结果就是:国内网络用户无法访问某些国外网站,国外网络用户也无法访问某些国内网站,其中有可以分成2类

  • 永久性无法访问
  • 暂时性无法访问

2、主要技术

  • 域名劫持
  • 特定IP地址封锁
  • 特定IP地址端口封锁
  • 无状态TCP连接重置
  • 特定TLS证书阻断
  • 明文HTTP协议关键字过滤阻断
  • 对破网软件的反制

本文主要介绍无状态TCP连接重置

3、DNS小测试

引入:客户端如何获得Baidu, Bing, Google服务器的IP地址?

打开浏览器,输入网址http://baidu.com/,从wireshark抓包工具抓到以下数据包:

174号数据包源IP地址为172.18.237.245为本机IP地址,通过查询,发现174号和175号数据包的目的地址202.192.18.1和202.192.18.2为DNS服务器地址,结果如下:

178号数据包为本地DNS服务器发回的数据包,它告诉客户端baidu.com的IP地址为111.13.100.91,

而180号数据包则发回一个ICMP数据包表示目的地址不可达。

打开浏览器,输入网址http://bing.com/,从wireshark抓包工具抓到以下数据包:

可以发现326号数据包为DNS请求数据包,它向本地DNS服务器请求bing.com的IP地址,而327号数据包则是本地DNS服务器发回的响应数据包,它告诉客户端bing.com的IP地址为204.79.197.200。

打开浏览器,输入网址http://google.com/,从wireshark抓包工具抓到以下数据包:

可以发现195号数据包为DNS请求数据包,它向本地DNS服务器请求google.com的IP地址,而196号数据包则是本地DNS服务器发回的响应数据包,它告诉客户端google.com的IP地址为216.58.200.238。

通过以上测试,可以发现:客户端是通过发送域名给DNS服务器来获得网站服务器的IP地址的。

 4、TCP连接的过程

接下来研究一下客户端实现Baidu, Bing, Google服务器的TCP连接的过程

在连接baidu.com的过程中捕获以下分组:

观察181、184、185号数据包,它们两端的端口号是分别是20564→80、80→20564、20564→80,发送的报文刚好符合TCP连接的三次握手,具体过程为:

(1)、客户端进程向服务器发送SYN报文段(SYN=1的报文段)请求建立连接;

(2)、服务器收到请求后,如果同意建立连接,就向客户端发送确认报文;

(3)、客户端接收到服务器的确认后,再次向服务器发送确认报文;

(4)、服务器接收到客户端的确认后,TCP连接建立,双方可以相互发送数据。

而连接bing.com和google.com的过程与此相同,捕获的数据包如下:

TCP三次握手对应328、332、333号数据包

TCP三次握手对应449、454、455号数据包

5、无状态TCP连接重置

什么技术导致Google不返回搜索结果?

GFW监控特定IP地址的所有数据包,若发现匹配的黑名单动作(例如 TLS加密连接的握手),其会直接在TCP连接握手的第二步即SYN-ACK之后伪装成对方向连接两端的计算机发送RST包(RESET)重置连接,使用户无法正常连接服务器。这种方法和特定IP地址端口封锁时直接丢弃数据包不一样,因为是直接切断双方连接因此封锁成本很低,故对于Google的多项(强制)加密服务例如Google文件、Google网上论坛、Google+和Google个人资料等的TLS加密连接都是采取这种方法予以封锁

 6、可能发出人造RST包的IP地址及其所属ISP

发出去的数据包ttl=64,Google返回值为50

ttl=53的Reset包?

64-53=11跳左右

而跟踪google.com的结果如下:

第11跳地址为 223.119.30.130

理论上发出的人造RST包来自这或之前的节点,该节点可以监视所有出口的流量!

7 、那有可能使Google返回搜索结果吗?

^-^

END

 

 

 

 

 

 

 

转载于:https://www.cnblogs.com/chuanzi/p/10424991.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值