没有任何一个程序员在作项目的时候不会遇到网络编程的问题,要解决这些问题除了对各类网络协议深刻了解以外,还须要掌握各类网络分析工具的用法,不用多说wireshark绝对是这方面的翘楚,惋惜的是,wireshark不能对本地接口(loopback,或者127.0.0.1)进行直接抓包。java
wireshark的工做原理
这里面的原理其实很简单,wireshark能够经过操做系统来访问全部的网络adapter,通俗点,就是网卡,并把网卡上的traffic截获,拷贝,用于数据包的分析。因此wireshark的使用前提是:你但愿截获的数据包是经过网卡收发的!而loopback接口上的数据由于其特殊性(本地还回),是在操做系统内部转发的,不会经过网卡,相似于进程间通讯。所以wireshark从工做原理上就不可以得到loopback上的traffice。git
解决方案
百度上有很多解决方案,但不少关键字就是:RawCap或windows无法截取loopback数据包。其实这些方案没有从本质上解决问题。如今一个比较好的解决方案是用npcap,这个工具是北大的一个博士,叫作Luo yang,开发的。源码放在https://github.com/nmap/npcap,还在持续维护中。这个工具的原理大概就是虚拟了一个网卡让操做系统把loopback的数据镜像一份到npcap adapter,而后wireshark能够经过截取这个npcap adatper上的数据包来得到对本地数据包进行分析的一个途径。你们不要小看了这个东西,在npcap adatper上,wireshark抓到的但是本地的全部数据包,这个不得了,用处大了,特别是对于须要深刻了解各类库的工做原理的。它能够抓取各类:程序员
http包,用于web接口的分析(Java程序员各类用soap接口,rest接口的,若是不了解http协议,不知道抓包来看,就无法理解各类mediaType对应的http entity,就无法不受限的使用各类web接口来完成各类场景的开发)
tcp包,用于各类基于tcp的通讯接口/协议的分析(知道吗,这货可以抓各类ejb远程调用,虽然每一个应用服务器的厂商在实现J2EE规范的时候,都有本身的底层通讯协议,可是经过这货,你就能够看到具体是怎么通讯的)
具体安装配置方法
注意事项
1, 这个工具是很好用,可是也有缺陷,若是你装了以后,忽然有某一天发现:
你的wifi竟然无法经过dhcp得到IP了,就是这个家伙搞的鬼。解决方案,目前是在device manger里面把它删了,重启电脑,我会在github上报一个Issue的。
2,另外,请把你的wireshark升级到比较新的版本,不要是1.9.xx如下的版本web