lsekfe 发表于 2022-3-18 10:33:33

【转】fiddler抓包时候的 tunnel to是什么意思

在抓包的时候,有时候会遇到很多的tunnel to,图标是一把锁的形状,使用的方法是Connect,如下图:

connect是为了建立http tunnel,connect是http众多方法中的其中一种,它跟post、get、put、options方法是并列的。但是它的使用场景很特殊。只有在受限制的网络环境中(防火墙、NAT、代理器)并且是https通信时,客户端使用http connect请求代理服务器,代理服务器使用connect方法与目标服务器建立http tunnel,通道建立后,客户端与服务器进行通信,代理服务器就像透明一样,只是接收、转发tcp stream。
为什么要建立http tunnel呢?
这是因为,网络环境受限,客户端无法直接访问某些网络,所以只能通过代理服务器访问网络,然后,将内容转发给客户端,从宏观上看,客户端与服务器端就像建立了一条隧道一样。
但是由于http tunnnel可控性不强,所以,服务器通常会限制”可connect的端口”(一般只开放SSL的443端口)

那么为什么fiddler抓包时,出现大量connect连接?
因为fiddler是代理,访问百度网页(使用了https协议),满足了使用connect条件,所以客户端会使用connect方法与目标服务器建立http tunnel,一旦connection建立完成,后续fiddler会转发、接收所有的tcp stream。“`
所以如上图所示,访问https://www.baidu.com 之前出现了tunnel to www.baidu.com:443当然,并不是所有的受限网络(restricted network),https通信时,都会使用connect建立http tunnel,如果目标服务器限制connect方法,那么就会使用其它方法来建立通道(post/get);如果服务器不支持http tunnel,那么就需要安装http tunnel server端的程序,客户端不支持http tunnel,那么客户端就需要安装http tunnel client程序;http tunnel程序包含两部分,server端程序和client端程序;如果你看着tunnel to不习惯的话,可以将其隐藏掉,Rules->Hide Connects
页: [1]
查看完整版本: 【转】fiddler抓包时候的 tunnel to是什么意思