技术头条 - 一个快速在微博传播文章的方式     搜索本站
您现在的位置首页 --> Linux --> 神探tcpdump第一招

神探tcpdump第一招

浏览:8240次  出处信息

    应 @GamerH2o 博友在微博上提的要求,tcpdump专题会写成一个小型系列文章,力求每篇小文中突出重点,讲解清晰,避免长篇累牍,大家必然昏昏欲睡了。

    其实tcpdump就好像一个神探,它有着夜视的绝技,在毫无光亮的环境中,也可以看到所有的东西。(好像在编美剧hero一般,哈哈)

    在介绍tcpdump之前,要和你确认好几个关键前提,否则的话,往后的内容您看起来会非常困难。

     1 了解和使用过linux

     2 掌握网络七层协议及其作用

     3 熟悉各层协议头,重点是以太网/IP/TCP/UDP

     4 了解交换机、路由器所对应的协议层,并知道两者的异同点。

    如果你有些忘记了,那么强烈建议你翻出《计算机网络》教材,先好好回忆一下,然后再进入到下面的内容…

    

     ==

    正文:

    通俗的说,tcpdump是一个抓包工具,用于抓取互联网上传输的数据包。

     形象的说,tcpdump就好比是国家海关,驻扎在出入境的咽喉要道,凡是要入境和出境的集装箱,海关人员总要打开箱子,看看里面都装了点啥。

     学术的说,tcpdump是一种嗅探器(sniffer),利用以太网的特性,通过将网卡适配器(NIC)置于混杂模式(promiscuous)来获取传输在网络中的信息包。

    【抓人生中的第一个包】

    要用tcpdump抓包,请记住,一定要切换到root账户下,因为只有root才有权限将网卡变更为“混杂模式”。

     然后呢,就是用ifconfig的方法查看好你的服务器的网卡名称。(我的叫做eth0,一般都是这个名字)

    # tcpdump -i eth0 -nn -X ‘port 53′ -c 1

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
23:58:04.688155 IP 116.255.245.206.47172 > 61.139.2.69.53: 15352+ A? www.baidu.com. (31)
0x0000: 4500 003b d596 0000 4011 fa7d 74ff f5ce E..;....@..}t...
0x0010: 3d8b 0245 b844 0035 0027 a48f 3bf8 0100 =..E.D.5.\'..;...
0x0020: 0001 0000 0000 0000 0377 7777 0562 6169 .........www.bai
0x0030: 6475 0363 6f6d 0000 0100 01 du.com.....
1 packets captured
1 packets received by filter
0 packets dropped by kernel

    在此,我重点解释下这个命令:

    -i选项:

     是interface的含义,是指我们有义务告诉tcpdump希望他去监听哪一个网卡。这在我们一台服务器有多块网卡时很有必要。

    -nn选项:

     意思是说当tcpdump遇到协议号或端口号时,不要将这些号码转换成对应的协议名称或端口名称。比如,众所周知21端口是FTP端口,我们希望显示21,而非tcpdump自作聪明的将它显示成FTP。

    -X选项:

     告诉tcpdump命令,需要把协议头和包内容都原原本本的显示出来(tcpdump会以16进制和ASCII的形式显示),这在进行协议分析时是绝对的利器。

    ‘port 53′:

     这是告诉tcpdump不要看到啥就显示啥。我们只关心源端口或目的端口是53的数据包,其他的数据包别给我显示出来。

    -c选项:

     是Count的含义,这设置了我们希望tcpdump帮我们抓几个包。我设置的是1,所以tcpdump不会帮我再多抓哪怕一个包回来。

    【未完待续】

    从混混乱乱的输出中,大家一定隐约的能看到www.baidu.com,是的,我抓到的这个包,其实是DNS解析的第一个包,也就是发出解析请求的包。至于tcpdump输出的内容到底是什么含义,会在后面娓娓道来。敬请期待。

    谢谢!

建议继续学习:

  1. 使用wireshark分析网络报文    (阅读:6644)
  2. 记一次丢包网络故障    (阅读:5312)
  3. 神探tcpdump第六招    (阅读:4183)
  4. 神探tcpdump第四招    (阅读:4113)
  5. 神探tcpdump第三招    (阅读:4071)
  6. ssldump    (阅读:3969)
  7. 神探tcpdump第五招    (阅读:3675)
  8. tcpdump匹配http头    (阅读:2633)
  9. 调试利器之tcpdump详解    (阅读:2297)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
<< 前一篇:Linux IO协议栈框图
后一篇:神探tcpdump第二招 >>
© 2009 - 2024 by blogread.cn 微博:@IT技术博客大学习

京ICP备15002552号-1