没有任何一个程序员在做项目的时候不会遇到网络编程的问题,要解决这些问题除了对各种网络协议深入了解之外,还需要掌握各种网络分析工具的用法,不用多说wireshark绝对是这方面的翘楚,可惜的是,wireshark不能对本地接口(loopback,或者127.0.0.1)进行直接抓包。

wireshark的工作原理

这里面的原理其实很简单,wireshark可以通过操作系统来访问所有的网络adapter,通俗点,就是网卡,并把网卡上的traffic截获,拷贝,用于数据包的分析。所以wireshark的使用前提是:你希望截获的数据包是通过网卡收发的!而loopback接口上的数据因为其特殊性(本地还回),是在操作系统内部转发的,不会通过网卡,类似于进程间通信。因此wireshark从工作原理上就不能够获得loopback上的traffice。

解决方案

百度上有不少解决方案,但很多关键字就是: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规范的时候,都有自己的底层通信协议,但是通过这货,你就可以看到具体是怎么通信的)

具体安装配置方法

废话不多说,后面还可能会在这个方面多写几篇文章,先把最基础的安装配置方法列个各位。(这里只介绍windows下面的用法) 
首先,当然是先要安装npcap。上头我已经给过一个github的地址了,那是源码。你可以在上面找每个release的安装包路径。这里再直接给一个: 
https://github-cloud.s3.amazonaws.com/releases/35855357/bece22ea-9ab5-11e6-88ad-304fd50e2df0.exe?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAISTNZFOVBIJMK3TQ%2F20161031%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20161031T022347Z&X-Amz-Expires=300&X-Amz-Signature=10f67cbca359526bd638004a28e2a3d183a1d68ac755419083cc30676514e742&X-Amz-SignedHeaders=host&actor_id=8413239&response-content-disposition=attachment%3B%20filename%3Dnpcap-0.10-r12.exe&response-content-type=application%2Foctet-stream 
先npcap安装: 
 
 
安装完之后,你可以看到,在你的网络管理中心多了一块网卡(Npcap loopback Adapter): 

打开你的wireshark: 
你会发现,也多了一个可以监听的接口: 

没错,通过这个东东你就可以直接截获本地的Http包了 
来,跑一个试试: 

看到这个127.0.0.1了吗?这可是货真价实的本地http包。 
除了http包,之外,其他的tcp包也给你们瞅瞅: 

看到了没,这是java的远程调用

注意事项

1, 这个工具是很好用,但是也有缺陷,如果你装了之后,突然有某一天发现: 
 
你的wifi居然没法通过dhcp获得IP了,就是这个家伙搞的鬼。解决方案,目前是在device manger里面把它删了,重启电脑,我会在github上报一个Issue的。 
2,另外,请把你的wireshark升级到比较新的版本,不要是1.9.xx以下的版本

Wireshark抓取本地Tcp包(任何数据包)的更多相关文章

  1. Wireshark抓取本地回环接口数据包 RawCap.exe

    Wireshark提供了winpcap可以抓取远程网卡数据包...但我尝试了不成功.后来发现RawCap.exe不仅可以抓取回环接口数据包,远程跑了拿到pcap文件再打开用起来比winpcap更方便最 ...

  2. 利用wireshark抓取远程linux上的数据包

    原文发表在我的博客主页,转载请注明出处. 前言 因为出差,前后准备总结了一周多,所以博客有所搁置.出差真是累人的活计,不过确实可以学习到很多东西,跟着老板学习做人,学习交流的技巧.入正题~ wires ...

  3. RawCap抓取本地回环接口数据包

    RawCap.exe --help ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 D: ...

  4. wireshark抓取本地回环及其问题 转摘:http://www.cnblogs.com/luminji/p/3503464.html

    一:The NPF driver isn’t running 这个错误是因为没有开启NPF服务造成的. NPF即网络数据包过滤器(Netgroup Packet Filter,NPF)是Winpcap ...

  5. wireshark抓取本地数据包

    windows系统中,本地向自身发送数据包没有经过真实的网络接口,而是通过环路(loopback interface)接口发送,所以使用基于只能从真实网络接口中抓数据的winpcap是无法抓取本地数据 ...

  6. wireshark抓取本地回环及其问题

    一:The NPF driver isn't running 这个错误是因为没有开启NPF服务造成的. NPF即网络数据包过滤器(Netgroup Packet Filter,NPF)是Winpcap ...

  7. wireshark抓取本地回环数据包

      linux环境下,用tcpdump,可以用-i lo参数抓取环回接口的包.如果服务端和客户端安装在同一台机器上,调试时是很方便的.linux版的wireshark,选取网卡的菜单里也有lo选项,也 ...

  8. fiddler抓取Android 真机app数据包

    fiddler功能强大 不仅能抓pc上的请求还能抓取手机上的请求.下面以fiddler4 +android手机为例介绍一下 手机抓包. 官网下载fiddler后下一步下一步安装成功. 首先是fiddl ...

  9. Mac 上 Charles 抓取 iso http、https数据包

    一.下载charles包. http://www.charlesproxy.com/download/ 选择mac版本的最新包Charles is 3.11.4. http://www.charles ...

随机推荐

  1. Notepad++ Tidy2 插件的核心配置

    在已有配置的基础上加上这四行: 以免符号被转换成HTML实体了 preserve-entities: yes quote-ampersand: yes quote-marks: no quote-nb ...

  2. Js版json解析

    JsonDecoder={ pos:0, isDigit:function(ch){ return ( ch >= '0' && ch <= '9' )||( ch == ...

  3. python 统计单词出现次数

    #use python3.6 import re from collections import Counter FILESOURCE = './abc.txt' def getMostCommonW ...

  4. shell编程1

    shell编程1 一.shell基础正则表达式 1.正则表达式和通配符 正则表达式是用来在文件中匹配符合条件的字符串,正则式包含匹配.(grep awk sed) 通配符是用来匹配符合条件的文件名,通 ...

  5. ubuntu安装pip和python

    安装pip2sudo apt-get install pip 这样安装的是pip2不支持Python3.x,可以使用如下命令安装pip3 sudo apt-get install python3-pi ...

  6. 关于用JAVA开发短信方面的知识

      现在流行的网络业务莫过于短信了.网易新浪等都因此而盈利,股价上涨.我凭自己的经验和公司支持,也就乘着东风来研究一下了! 首先,你要选择一台移动或者联通的短信服务器做你们的发送短信接口.这是最关键的 ...

  7. Linux平台下贪吃蛇游戏的运行

    1.参考资料说明: 这是一个在Linux系统下实现的简单的贪吃蛇游戏,同学找帮忙,我就直接在Red Hat中调试了一下,参考的是百度文库中"maosuhan"仁兄的文章,结合自己的 ...

  8. 【leetcode刷题笔记】Anagrams

    Given an array of strings, return all groups of strings that are anagrams. Note: All inputs will be ...

  9. 使用 Apache poi 导入Excel

    本文主要记录Excel导入及模板下载,遇到的问题及注意事项. 第一节:Excel导入   1.如何获取Excel中的最大行,也就是最后一行? 2.如何获取有效行?有效行的定义是每一行记录中每一列中值都 ...

  10. bootstraptable的 showFooter属性

    如果想在表格最下面显示统计的信息可以使用这个属性  首先 先在表格加上这个属性 showFooter:true, 然后 在需要的列里面新增属性 footerFormatter  设置列的名称 然后在需 ...