java抓取路由器tcp,Wireshark抓取本地Tcp包(任何数据包)

没有任何一个程序员在作项目的时候不会遇到网络编程的问题,要解决这些问题除了对各类网络协议深刻了解以外,还须要掌握各类网络分析工具的用法,不用多说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, 这个工具是很好用,可是也有缺陷,若是你装了以后,忽然有某一天发现:

6ca1d90975a88b2d04743a13d10f2dca.png

你的wifi竟然无法经过dhcp得到IP了,就是这个家伙搞的鬼。解决方案,目前是在device manger里面把它删了,重启电脑,我会在github上报一个Issue的。

2,另外,请把你的wireshark升级到比较新的版本,不要是1.9.xx如下的版本web

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值